AILearn은 AI 기술을 활용한 혁신적인 온라인 영어 학습 플랫폼입니다.
Alan AI를 통해 개인화된 학습 경험을 제공하며, 사용자의 영어 실력 향상을 효과적으로 지원합니다.
- 프로젝트 이름: AILearn
- 프로젝트 기간: 2024.08.21 ~ 2024.09.12
- 레벨 테스트: 사용자의 영어 실력을 정확히 진단합니다.
- 개인화된 학습 계획: AI가 사용자의 레벨에 맞는 학습 계획을 제공합니다.
- 어휘 학습: AI 기반의 개인화된 단어장을 생성합니다.
- 문법 및 문장 구조 학습: AI가 생성한 예문을 통해 효과적으로 문법을 학습합니다.
- 에세이 작성 연습: AI 첨삭 기능으로 작문 실력을 향상시킵니다.
- 게임화 요소: 티어제도, 승급, 강등제도로 학습효과를 극대화합니다.
| 이름 | 역할 | 담당 업무 |
|---|---|---|
| 문순려 (팀장) |
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 디자인 및 웹 퍼블리싱 - 홈 페이지 및 자유게시판(게시글 등록, 수정, 조회) 페이지 구현 - 내 단어장 및 문법 예문 목록 조회 페이지 구현 - 에세이 작성, 수정 및 첨삭 페이지 구현 |
1.1 회원가입
- 사용자 이름, 이메일, 비밀번호 등의 필수 정보를 입력하여 계정을 생성한다.
- 이메일 중복 확인 후 가입을 진행한다.
1.2 회원 탈퇴
- 로그인한 사용자는 본인의 계정을 삭제할 수 있다.
1.3 이메일 및 닉네임 중복 확인
- 회원가입 시 이메일 및 닉네임의 중복 여부를 확인하고, 중복 시 오류 메시지를 표시한다.
1.4 이메일 인증
- 회원가입 시 이메일로 인증 코드를 전송하고, 사용자가 해당 코드를 입력하여 계정을 활성화한다.
1.5 회원 정보 조회 및 수정
- 사용자는 자신의 개인정보(닉네임, 비밀번호 등)를 조회하고 수정할 수 있다.
2.1 로그인 및 로그아웃
- 사용자는 이메일과 비밀번호로 로그인하고, 로그아웃 시 세션이 만료된다.
2.2 비밀번호 찾기
- 사용자는 이메일을 통해 임시 비밀번호를 받을 수 있다.
3.1 게시글 작성 및 수정
- 사용자는 게시글을 작성하고, 본인이 작성한 게시글을 수정할 수 있다.
3.2 게시글 조회 및 삭제
- 사용자는 모든 게시글 목록과 특정 게시글의 상세 내용을 확인할 수 있다.
- 게시글 작성자는 본인의 게시글을 삭제할 수 있다.
3.3 내 게시글 목록 조회
- 사용자는 본인이 작성한 게시글 목록을 조회할 수 있다.
4.1 게시글 좋아요 기능
- 사용자는 게시글에 '좋아요'를 추가하거나 취소할 수 있다.
4.2 좋아요한 게시글 목록 조회
- 사용자는 자신이 좋아요를 누른 게시글 목록을 확인할 수 있다.
5.1 댓글 작성 및 삭제
- 사용자는 게시글에 댓글을 작성하고, 본인이 작성한 댓글을 삭제할 수 있다.
5.2 댓글 목록 조회
- 사용자는 특정 게시글에 달린 모든 댓글을 조회할 수 있다.
5.3 내 댓글 목록 조회
- 사용자는 본인이 작성한 댓글 목록을 조회할 수 있다.
6.1 단어장 관리
- 사용자는 단어장을 생성, 조회, 수정, 삭제할 수 있다.
- 단어 추가 및 삭제 기능을 통해 단어장을 업데이트할 수 있다.
- 시스템은 스케줄러와 Alan API를 활용하여 자동으로 단어를 수집하고 단어장에 추가할 수 있다.
- 스케줄러는 정기적으로 단어 수집 작업을 실행한다.
- Alan API를 통해 새로운 단어와 관련 정보를 가져온다.
- 수집된 단어는 사용자의 승인을 거쳐 추가될 수 있다.
- 시스템은 중복 단어 체크를 통해 이미 존재하는 단어의 중복 추가를 방지한다.
7.1 레벨테스트 조회 및 제출
- 사용자는 레벨테스트의 문제를 조회하고, 정답을 제출할 수 있다.
7.2 승급 테스트
- 사용자는 승급 테스트를 통해 상위 레벨로 승급할 수 있다.
8.1 문법 예문 관리
- 사용자는 문법 예문을 작성, 조회, 추가할 수 있으며, 예문에 대한 채점 기능이 제공된다.
- 시스템은 스케줄러와 Alan API를 활용하여 자동으로 문법 예문을 수집할 수 있다.
- 스케줄러는 정기적으로 예문 수집 작업을 실행한다.
- Alan API를 통해 새로운 예문과 설명을 가져온다.
9.1 에세이 관리
- 사용자는 에세이를 작성, 수정, 조회할 수 있다.
| 홈화면 | 회원가입 |
|---|---|
| 메일인증 | 비밀번호찾기 |
|---|---|
| 회원정보수정 | 회원탈퇴 |
|---|---|
| 로그인 | 로그아웃 |
|---|---|
| 초기 레벨테스트 | 승급테스트 조건 |
|---|---|
| 결과 확인(통과) | 결과확인(실패) |
|---|---|
| 승급테스트 (승급) | 승급테스트 (실패) |
|---|---|
| 에세이 작성 | 에세이 첨삭 |
|---|---|
| 에세이 수정 | 에세이 삭제 |
|---|---|
| 게시글 작성, 내 게시글 조회 | 게시글 상세 조회, 목록조회 |
|---|---|
| 게시글 수정 | 게시글 삭제 |
|---|---|
| 댓글작성, 내댓글 조회 | 댓글삭제 |
|---|---|
| 좋아요, 내가 좋아요한 게시물 | 내 단어장만들기 |
|---|---|
| 단어 추가 | 단어 삭제 |
|---|---|
| 문법예문 추가 | 문법예문 정답확인 |
|---|---|
| 관리자기능 (정지) | 관리자기능 (회원탈퇴) |
|---|---|
| 기능 | 메소드 | 엔드포인트 |
|---|---|---|
| 회원 가입 | 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} |
| 기능 | 메소드 | 엔드포인트 |
|---|---|---|
| 홈 화면 | 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} |