본문 바로가기

프로젝트/글로런

[글로런] 프로젝트 개요

2월부터 공부 겸 만들어보고 싶은 서비스가 있어 개발해왔는데, 완성하기 급급해서 진행한 내용을 정리하지 못했습니다.

현재 UI/UX 수정과 배포 정도만 남았지만, 지금이라도 프로젝트를 되돌아보고 있었던 이슈들을 정리해두려고 합니다. 

1. 프로젝트 개요

  • 프로젝트 명: 글로런
  • 개요: 텍스트와 이미지로 된 강의를 수강하거나 등록할 수 있는 웹 플랫폼
  • 개발 인원: 개인 프로젝트
  • 개발 기간: 23/02 ~ 23/03
  • 깃허브: https://github.com/LimYooyeol/glolearn
  • 링크: 글로런 (PC 환경에서 정상적으로 이용할 수 있습니다)

2. 개발 환경

  • 백엔드
    • Java 17, Spring Boot 2.7.8
    • JPA
    • MySQL
  • 프론트엔드
    • HTML, CSS, JavaScript
    • Thymeleaf
    • Bootstrap 4.4.1
  • 클라우드
    • AWS RDS
    • AWS S3
    • AWS EC2

3. 주요기능

(1) 회원

  • 소셜로그인

(2) 코스 - 일반회원

  • 하나의 코스는 여러 개의 강의로 이뤄져있다.
  • 출시된 코스는 자유롭게 조회할 수 있다.
  • 코스를 결제하고, 코스의 강의를 수강할 수 있다.

(3) 코스 - 강사

  • 코스를 출시/수정/삭제할 수 있다.
  • 출시된 코스는 삭제할 수 없다.

(4) 강의 - 일반회원

  • 코스마다 미리보기가 제공된다.
  • 수강한 코스의 강의는 모두 볼 수 있다.
  • 이어보기 기능이 제공된다.

(5) 강의 - 강사

  • 강의를 등록/삭제/수정/조회할 수 있다.

(6) 질의응답

  • 각 강의마다 묻고 답하기가 제공된다.

 

4. DB 설계

 

5. 세부기능 및 API

(1) 회원

기능 URL METHOD RETURN
로그인 페이지 '/login’ GET login.html
OAuth 가입, 인증 '/oauth/{provider}/token’ GET redirect:/
로그아웃 ‘/oauth/token’ DELETE redirect:/
마이페이지 '/mypage’ GET member/myPage.html
닉네임 변경 요청 ‘/member/me/nickname’ PUT String: change status
회원 탈퇴 요청 '/member/me’ DELETE redirect:/

(2) 코스 - 회원

기능 URL METHOD RETURN
코스 단건 조회 /course/{courseId} GET /course/details.html
전체 코스 조회 /courses/{category} GET /course/list.html
수강 코스 목록 조회 /courses/enroll/{category} GET /course/list.html
이어보기 /course/{courseId}/lecture/continue GET redirect: /lecture/{lectureId}

(3) 코스 - 강사

기능 URL METHOD RETURN
코스 단건 조회 (관리) /course/{courseId}/manage GET /course/manage.html
강의 중인 코스 목록 /courses/mine/{category} GET /course/list.html
코스 등록 페이지 /course/register GET /course/registerForm.html
코스 등록 /course POST redirect: /course/{courseId}/manage
코스 수정 페이지 /course/{courseId}/modify GET /course/modifyForm.html
코스 수정 (소개 등 정보) /course/{courseId} PUT redirect:/course/{courseId}/manage
코스 삭제 /course/{courseId} DELETE redirect:/course/mine
코스 출판 /course/publish POST redirect:/course/{courseId}/manage

(4) 강의 - 회원

기능 URL METHOD RETURN
강의 조회 /lecture/{lectureId} GET /lecture/details.html

(5) 강의 - 강사

기능 URL METHOD RETURN
강의 조회 (관리) /lecture/{lectureId}/manage GET /lecture/manage.html
강의 등록 페이지 /course/{course-id}/lecture/register GET /lecutre/registerForm
강의 등록 /course/{courseId}/lecture POST redirect:/ /lecture/{lectureID}/manage
강의 수정 페이지 /lecture/{lectureId}/modify GET /lecture/modifyForm
강의 수정 /lecture/{lectureId} PUT redirect:/ /lecture/{lectureId}/manage
강의 삭제 /lecture/{lectureId} DELETE redirect:/course/{courseId}/manage

(6) 수강(결제)

기능 URL METHOD RETURN
PG 사 결제 성공 시 redirect /enrollment/{courseId}?
amount, orderId, paymentKey
GET redirect:/ /course/{courseId}
PG 사 결제 실패 시 redirect /enrollment/{courseId}/failure GET redirect:/ /error/paymentFailure.html
무료 결제 /enrollment/{courseId}/free POST redirect:/ /course/{courseId}

(7) 질의응답

기능 URL METHOD RETURN
댓글 작성 '/{lectureId}/comment’ POST redirect:/ lecture/{lectureId}/comments
댓글 수정 '/comments/{commentId}’ PUT redirect:/ lecture/{lectureId}/comments
댓글 삭제 '/comments/{commentId}’ DELETE redirect:/ lecture/{lectureId}/comments
댓글 목록 조회 '/lecture/{lectureId}/comments’ GET /comment/list.html

(8) 기타

기능 URL METHOD RETURN
메인 페이지 '/’ GET index.html
이미지 얻기 '/image/{memberId}/{filename}’ GET void
이미지 추가 '/image’ POST file url