본 프로젝트는 학생과 강사를 위한 학습 관리 플랫폼으로, 강의 등록, 퀴즈 및 과제 관리, 성적 평가 등 효율적인 학습 진행 및 평가를 지원합니다. 학생들은 강의를 수강하고 퀴즈와 과제를 제출할 수 있으며, 강사는 학습 자료를 업로드하고 과제 및 퀴즈 점수를 관리할 수 있습니다.
기능명 | 설명 | 연관 테이블 및 컬럼 |
---|---|---|
회원 관리 | 학생과 강사의 회원가입 및 로그인 기능 제공 | student , instructor |
강의 등록 | 강사가 새로운 강의 및 강의 자료(동영상, 문서 등)를 업로드할 수 있는 기능 | course , lecture , content |
강의 수강 신청 | 학생이 특정 과정을 수강 신청할 수 있는 기능 | registration |
수강 현황 관리 | 학생별 수강 신청 현황 및 수강 상태를 확인할 수 있는 기능 | registration |
퀴즈 생성 및 관리 | 강사가 퀴즈를 생성하고 문제를 추가할 수 있는 기능 | quiz , question , answer |
퀴즈 제출 | 학생이 퀴즈 문제에 대한 답변을 제출할 수 있는 기능 | answer |
퀴즈 성적 관리 | 퀴즈 점수를 자동 또는 수동으로 채점하여 성적을 등록할 수 있는 기능 | quiz_grade |
과제 등록 및 관리 | 강사가 과제를 생성하고 과제 설명, 제출 기한 등을 설정할 수 있는 기능 | assignment |
과제 제출 | 학생이 과제를 제출할 수 있는 기능 (파일 업로드 가능) | submission |
과제 성적 평가 | 강사가 제출된 과제를 평가하고 점수를 등록할 수 있는 기능 | assignment_grade |
강의 자료 업로드 | 강사가 강의 자료(파일 등)를 업로드 및 관리할 수 있는 기능 | content |
강의 시간 및 설명 관리 | 강의 제목, 강의 설명, 강의 시간, 강의 URL 등을 설정 및 수정할 수 있는 기능 | lecture |
코스(과정) 관리 | 강사가 학습 코스를 생성하고 설명 및 시작/종료 일자를 설정할 수 있는 기능 | course |
학생-강의 성적 조회 | 학생과 강사가 해당 강의 및 퀴즈, 과제 성적을 확인할 수 있는 기능 | quiz_grade , assignment_grade |
로그 기록 및 시간 관리 | 데이터 생성 및 수정 시간을 자동으로 기록 | created_at , updated_at 컬럼 |
수강 상태 변경 | 수강 신청 상태를 등록 , 승인 , 취소 등으로 변경할 수 있는 기능 |
registration |
Team leader | member | member | member | member |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
|
이신행 | 김효민 | 성현아 | 정태민 | 조영무 |
- 이신행: 팀장, 문서화, 배포, 프로젝트 구성
- 성현아: 퀴즈 도메인
- 김효민: 과정 도메인
- 조영무: 유저 도메인
- 정태민: 과제 도메인
Git Flow 을 사용합니다.
-
main:
- 프로덕션 배포용 브랜치입니다.
- 안정된 코드만 병합되며, 실제 서비스에 반영되는 코드입니다.
- 직접적으로 작업하지 않고,
release
브랜치 또는hotfix
브랜치에서 병합됩니다.
-
dev:
- 개발 중인 브랜치입니다.
feature
브랜치에서 작업이 완료되면dev
브랜치로 병합합니다.
-
feature:
- 기능 개발 브랜치입니다. (* 큰 기능이 아닌 작은 단위의 기능을 말합니다.)
- 새로운 기능, 개선사항, 또는 버그 수정을 작업할 때 사용합니다.
- 작업이 완료되면
dev
브랜치로 병합합니다. - 브랜치명은
feature/기능명
형식으로 작성합니다.
태그 | 설명 | 세부 내용 |
---|---|---|
feat |
기능 (새로운 기능 추가) | 새로운 기능을 추가할 때 사용 |
fix |
버그 (버그 수정) | 버그를 수정할 때 사용 |
refactor |
리팩토링 | 비즈니스 로직 변경 없이 코드 구조를 개선할 때 사용 |
design |
사용자 UI 디자인 변경 | CSS 등 사용자 UI 디자인을 변경할 때 사용 |
comment |
주석 추가 및 변경 | 필요한 주석을 추가하거나 변경할 때 사용 |
style |
스타일 변경 | 코드 형식, 세미콜론 추가 등 비즈니스 로직에 영향 없는 변경 |
docs |
문서 수정 | 문서 추가, 수정, 삭제 (README 등 문서 관련 작업) |
test |
테스트 코드 작업 | 테스트 코드 추가, 수정, 삭제 (비즈니스 로직 변경 없음) |
chore |
기타 변경사항 | 빌드 스크립트 수정, assets 추가, 패키지 매니저 설정 변경 등 |
init |
초기 생성 | 프로젝트 초기 설정 및 파일 생성 작업 |
rename |
파일/폴더명 변경 | 파일 또는 폴더명을 수정하거나 이동했을 때 사용 |
remove |
파일 삭제 | 파일을 삭제한 경우 |
- (ex) feat: 설명 #이슈번호
- (ex)
- main에서 feature/기능1 merge할 때 : merge: main <- feature/기능1 #이슈번호
- feature/기능1에서 main merge할 때 : merge: main -> feature/기능1
- 이슈 템플릿 양식에 맞추어 작성합니다.(양식 등록 완료)
- 이슈 작성 시 라벨을 넣어 이슈 타입을 표현합니다.
- pr 템플릿 양식에 맞추어 작성합니다.(양식 등록 완료)