Skip to content

fjeos/AILearn

 
 

Repository files navigation

AILearn - AI를 활용한 온라인 영어 학습 서비스

스크린샷 2024-09-09 오후 1 58 59

📚 목차

프로젝트 소개 프로젝트 개요 주요 기능 팀 구성 기술 스택 아키텍처 요구사항 UI/UX ERD API


📌 프로젝트 소개

AILearn은 AI 기술을 활용한 혁신적인 온라인 영어 학습 플랫폼입니다.
Alan AI를 통해 개인화된 학습 경험을 제공하며, 사용자의 영어 실력 향상을 효과적으로 지원합니다.

🚩 프로젝트 개요

  • 프로젝트 이름: AILearn
  • 프로젝트 기간: 2024.08.21 ~ 2024.09.12

🎯 주요 기능

  1. 레벨 테스트: 사용자의 영어 실력을 정확히 진단합니다.
  2. 개인화된 학습 계획: AI가 사용자의 레벨에 맞는 학습 계획을 제공합니다.
  3. 어휘 학습: AI 기반의 개인화된 단어장을 생성합니다.
  4. 문법 및 문장 구조 학습: AI가 생성한 예문을 통해 효과적으로 문법을 학습합니다.
  5. 에세이 작성 연습: AI 첨삭 기능으로 작문 실력을 향상시킵니다.
  6. 게임화 요소: 티어제도, 승급, 강등제도로 학습효과를 극대화합니다.

👥 팀 구성 및 역할

이름 역할 담당 업무
문순려
(팀장)
DevOps / Backend - CI/CD 파이프라인 구축 및 배포 환경 설정
- AlanAI 기능 구현
- 문법 예문 API 개발
이상윤
(서기)
Backend / Frontend - AlanAI 기능 구현
- 에세이 작성 및 수정 기능 개발
- 게시글, 댓글, 좋아요, 문법 예문 API 연동 및 CSS 작업
- 마이페이지 - 회원 정보 페이지 구현
- 에세이 도메인 슬라이스 테스트 작성
강혜주 Backend / Frontend - AlanAI 기능 구현
- 단어장 기능 개발
- 인증, 인가 및 회원 관리 기능 개발
- 단어장 및 유저 도메인 슬라이스 테스트 작성
- 로그인, 회원가입, 비밀번호 찾기 페이지 개발 및 API 연동
- 통합 시나리오 테스트 작성
안정민 Backend / Frontend - 게시글 기능 개발
- 댓글 기능 개발
- 좋아요 기능 개발
- 게시글, 댓글, 좋아요 도메인 슬라이스 테스트 작성
- 통합 시나리오 테스트 작성
유나영 Backend / Frontend - 관리자 기능 개발
- 레벨테스트 기능 개발
- 레벨테스트 페이지(등급 선택, 문제 출제, 결과 확인) 구현
- 관리자 및 레벨테스트 API 연동
- 레벨테스트 도메인 슬라이스 테스트 작성
김성연 Frontend / Design - Figma 디자인 및 웹 퍼블리싱
- 마이페이지(내 게시글, 회원 정보 수정) 페이지 구현
- 관리자 페이지(사용자 및 게시글 조회) 구현
- 로그인, 회원가입, 비밀번호 찾기 페이지 구현
이소정 Frontend / Design - Figma 디자인 및 웹 퍼블리싱
- 홈 페이지 및 자유게시판(게시글 등록, 수정, 조회) 페이지 구현
- 내 단어장 및 문법 예문 목록 조회 페이지 구현
- 에세이 작성, 수정 및 첨삭 페이지 구현

🛠 기술 스택

Backend

Gradle SpringSecurity
JUnit5 Mockito H2 Database

Frontend

Deployment

🌐 아키텍처

스크린샷 2024-09-12 오후 2 34 25

🔗 ERD

ERD 링크✨

스크린샷 2024-09-09 오후 1 51 36

📋 요구사항 정의서

1. 회원 관리

1.1 회원가입

  • 사용자 이름, 이메일, 비밀번호 등의 필수 정보를 입력하여 계정을 생성한다.
  • 이메일 중복 확인 후 가입을 진행한다.

1.2 회원 탈퇴

  • 로그인한 사용자는 본인의 계정을 삭제할 수 있다.

1.3 이메일 및 닉네임 중복 확인

  • 회원가입 시 이메일 및 닉네임의 중복 여부를 확인하고, 중복 시 오류 메시지를 표시한다.

1.4 이메일 인증

  • 회원가입 시 이메일로 인증 코드를 전송하고, 사용자가 해당 코드를 입력하여 계정을 활성화한다.

1.5 회원 정보 조회 및 수정

  • 사용자는 자신의 개인정보(닉네임, 비밀번호 등)를 조회하고 수정할 수 있다.

2. 인증

2.1 로그인 및 로그아웃

  • 사용자는 이메일과 비밀번호로 로그인하고, 로그아웃 시 세션이 만료된다.

2.2 비밀번호 찾기

  • 사용자는 이메일을 통해 임시 비밀번호를 받을 수 있다.

3. 게시글

3.1 게시글 작성 및 수정

  • 사용자는 게시글을 작성하고, 본인이 작성한 게시글을 수정할 수 있다.

3.2 게시글 조회 및 삭제

  • 사용자는 모든 게시글 목록과 특정 게시글의 상세 내용을 확인할 수 있다.
  • 게시글 작성자는 본인의 게시글을 삭제할 수 있다.

3.3 내 게시글 목록 조회

  • 사용자는 본인이 작성한 게시글 목록을 조회할 수 있다.

4. 좋아요

4.1 게시글 좋아요 기능

  • 사용자는 게시글에 '좋아요'를 추가하거나 취소할 수 있다.

4.2 좋아요한 게시글 목록 조회

  • 사용자는 자신이 좋아요를 누른 게시글 목록을 확인할 수 있다.

5. 댓글

5.1 댓글 작성 및 삭제

  • 사용자는 게시글에 댓글을 작성하고, 본인이 작성한 댓글을 삭제할 수 있다.

5.2 댓글 목록 조회

  • 사용자는 특정 게시글에 달린 모든 댓글을 조회할 수 있다.

5.3 내 댓글 목록 조회

  • 사용자는 본인이 작성한 댓글 목록을 조회할 수 있다.

6. 단어장

6.1 단어장 관리

  • 사용자는 단어장을 생성, 조회, 수정, 삭제할 수 있다.
  • 단어 추가 및 삭제 기능을 통해 단어장을 업데이트할 수 있다.
  • 시스템은 스케줄러와 Alan API를 활용하여 자동으로 단어를 수집하고 단어장에 추가할 수 있다.
    • 스케줄러는 정기적으로 단어 수집 작업을 실행한다.
    • Alan API를 통해 새로운 단어와 관련 정보를 가져온다.
    • 수집된 단어는 사용자의 승인을 거쳐 추가될 수 있다.
    • 시스템은 중복 단어 체크를 통해 이미 존재하는 단어의 중복 추가를 방지한다.

7. 레벨테스트

7.1 레벨테스트 조회 및 제출

  • 사용자는 레벨테스트의 문제를 조회하고, 정답을 제출할 수 있다.

7.2 승급 테스트

  • 사용자는 승급 테스트를 통해 상위 레벨로 승급할 수 있다.

8. 문법예문

8.1 문법 예문 관리

  • 사용자는 문법 예문을 작성, 조회, 추가할 수 있으며, 예문에 대한 채점 기능이 제공된다.
  • 시스템은 스케줄러와 Alan API를 활용하여 자동으로 문법 예문을 수집할 수 있다.
    • 스케줄러는 정기적으로 예문 수집 작업을 실행한다.
    • Alan API를 통해 새로운 예문과 설명을 가져온다.

9. 에세이

9.1 에세이 관리

  • 사용자는 에세이를 작성, 수정, 조회할 수 있다.

🖥 화면 구성

홈화면 회원가입
홈화면 회원가입
메일인증 비밀번호찾기
이메일 인증 비밀번호찾기
회원정보수정 회원탈퇴
회원정보수정 회원탈퇴
로그인 로그아웃
로그인 로그아웃
초기 레벨테스트 승급테스트 조건
레벨테스트조회 승급테스트-조건
결과 확인(통과) 결과확인(실패)
레벨테스트-통과(결과) 레벨테스트-실패(하락)
승급테스트 (승급) 승급테스트 (실패)
승급테스트 -승급 승급테스트- 강등
에세이 작성 에세이 첨삭
에세이 작성 에세이 첨삭
에세이 수정 에세이 삭제
에세이 수정 에세이-삭제
게시글 작성, 내 게시글 조회 게시글 상세 조회, 목록조회
마이페이지-내 게시글 게시글 조회
게시글 수정 게시글 삭제
게시글 수정 게시글 삭제
댓글작성, 내댓글 조회 댓글삭제
마이페이지 -내 댓글 댓글삭제
좋아요, 내가 좋아요한 게시물 내 단어장만들기
마이페이지-좋아요 단어장만들기
단어 추가 단어 삭제
단어추가 단어삭제
문법예문 추가 문법예문 정답확인
문법예문추가 문법예문정답확인
관리자기능 (정지) 관리자기능 (회원탈퇴)
사용자 계정 정지 사용자 계정 탈퇴

📜 API 명세서

회원 관리

기능 메소드 엔드포인트
회원 가입 POST /api/signup
회원 탈퇴 DELETE /api/withdrawal
이메일 중복확인 GET /api/email-duplication?email={email}
닉네임 중복확인 GET /api/nickname-duplication?nickname={nickname}
이메일 인증코드 전송 POST /api/request-verification?email={email}
이메일 인증코드 확인 POST /api/verify-email?email={email}&code={code}
회원정보 조회 GET /api/me
회원정보 수정 PUT /api/me

인증

기능 메소드 엔드포인트
로그인 POST /login
로그아웃 GET /logout
비밀번호 찾기 GET /api/auth/password

게시글

기능 메소드 엔드포인트
게시글 작성 POST /api/posts
게시글 목록 조회 GET /api/posts
게시글 단일 조회 GET /api/posts/{id}
게시글 수정 PUT /api/posts/{id}
게시글 삭제 DELETE /api/posts/{id}
내 게시글 목록 조회 GET /api/me/posts

좋아요

기능 메소드 엔드포인트
좋아요 생성 POST /api/posts/{postId}/like
좋아요 취소 DELETE /api/posts/{postId}/like
좋아요 조회 GET /api/posts/{postId}/like
좋아요 누른 게시글 목록 조회 GET /api/me/likes

댓글

기능 메소드 엔드포인트
댓글 목록 조회 GET /api/posts/{postId}/comments
댓글 작성 POST /api/posts/{postId}/comments
댓글 삭제 DELETE /api/posts/{postId}/comments/{id}
내 댓글 목록 조회 GET /api/me/comments

단어장

기능 메소드 엔드포인트
내 단어장 조회 GET /api/me/vocabulary-list
내 단어장 생성 POST /api/vocabulary-list
내 단어장에 단어 추가 POST /api/vocabulary-list/me/vocabularies
내 단어장에 단어 삭제 DELETE /api/vocabulary-list/me/vocabularies/{id}

레벨테스트

기능 메소드 엔드포인트
레벨테스트 문제 조회 GET /tests/level-tests?grade={grade}
레벨테스트 정답 제출 POST /grade
승급테스트 문제 조회 GET /upgrade-tests
승급테스트 정답 제출 POST /api/upgrade
사용자 등급 A1으로 지정 POST /grade/A1

문법예문

기능 메소드 엔드포인트
문법 예문 생성 POST /api/grammar-examples
문법 예문 조회 GET /api/me/grammar-examples
문법 예문 채점 POST /api/grammar-examples/{id}/grading
문법 예문 추가 생성 POST /api/grammar-examples/more

에세이

기능 메소드 엔드포인트
에세이 생성 POST /api/essays
에세이 수정 PUT /api/essays/{id}
에세이 삭제 DELETE /api/essays/{id}
에세이 검색 GET /api/essays/search
에세이 첨삭 POST /api/essays/{id}/review
에세이 작성 가이드 조회 GET /api/essay-guides
내 에세이 조회 GET /api/me/essays
내 에세이 상세조회 GET /api/me/essays/{id}

관리자

기능 메소드 엔드포인트
전체 사용자 조회 GET /api/admin/users?nickname={nickname}
사용자 계정 상태 변경 PUT /api/admin/users/{id}
사용자 계정 삭제 DELETE /api/admin/users/{id}
전체 게시글 조회 GET /api/admin/posts?keyword={keyword}
게시글 단일 조회 GET /api/admin/posts/{id}
게시글 삭제 DELETE /api/admin/posts/{id}
특정 게시글의 특정 댓글 삭제 DELETE /api/admin/posts/{id}/comments/{id}

페이지 API

기능 메소드 엔드포인트
홈 화면 GET /
로그인 화면 GET /login
회원가입 GET /signup
비밀번호 찾기 GET /find-password
마이페이지 - 회원 정보 GET /my
마이페이지 - 내 게시글 목록 GET /my/posts
마이페이지 - 회원정보 변경 GET /my/edit
레벨테스트 - 등급 선택 GET /tests
레벨테스트 - 문제 GET /tests/level-test?grade={grade}
승급테스트 - 문제 GET /tests/upgrade-test
테스트 - 결과 GET /test-result
자유게시판 - 게시글 등록 GET /posts/new
자유게시판 - 게시글 수정 GET /posts/{id}/edit
자유게시판 - 게시글 목록 조회 GET /posts
자유게시판 - 게시글 상세 조회 GET /posts/{id}
내 단어장 GET /vocabulary-list
문법예문 - 목록 조회 GET /grammar-examples?keyword=
에세이 - 생성페이지 GET /essays/new
에세이 - 목록 조회 GET /essays
에세이 - 상세조회 GET /essays/{id}
에세이 - 수정페이지 GET /essays/{id}/edit
에세이 - 첨삭 GET /essays/review
에세이 - 작성 가이드 조회 GET /essays/guide
관리자 - 전체 사용자 조회 GET /admin/users
관리자 - 전체 게시글 조회 GET /admin/posts
관리자 - 게시글 단일 조회 GET /admin/posts/{id}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 55.5%
  • JavaScript 19.5%
  • HTML 13.4%
  • CSS 11.4%
  • Dockerfile 0.2%