BDD 1기 프로젝트 두레(DOORE)의 Backend Repository입니다.
두레(DOORE)는 팀이 함께 협업하여 다른 팀과 경쟁하기 위한 팀간 경쟁 서비스로, 주민들이 마을 단위로 둔 공동 노동 조직 '두레'에서 이름을 따왔습니다.
- 경쟁: Github의 잔디를 모티브로 한 '텃밭'이 팀별로 존재 하며, 이를 지표로 팀 랭킹이 매깁니다.
- 협업: 팀원들은 스터디, 학습자료 업로드 등의 활동을 통해 팀의 '텃밭'에 기여할 수 있습니다.
운영서버: https://doore.pnu.app/
Rest Docs: https://doore.pnu.app/api/docs/doore.html
─ src
├─ main
│ ├─ java
│ │ └─ doore
│ │ ├─ DooreApplication.java
│ │ ├─ base
│ │ │ ├─ BaseEntity.java
│ │ │ ├─ BaseException.java
│ │ │ └─ BaseExceptionType.java
│ │ ├─ config
│ │ ├─ document
│ │ ├─ exception
│ │ ├─ file
│ │ ├─ garden
│ │ ├─ login
│ │ ├─ member
│ │ ├─ resolver
│ │ ├─ study
│ │ ├─ team
│ │ │ ├─ api
│ │ │ ├─ application
│ │ │ │ ├─ convenience
│ │ │ │ └─ dto
│ │ │ ├─ domain
│ │ │ │ └─ repository
│ │ │ └─ exception
│ │ │ ├─ TeamException.java
│ │ │ └─ TeamExceptionType.java
│ │ └─ util
│ └─ resources
│ ├─ application.yml
│ └─ schema.sql
└─ test
- 구글 계정을 통한 소셜 로그인을 지원합니다. 구글 계정만 있다면 누구나 두레에 가입할 수 있습니다.
- 텃밭: Github의 잔디를 모티브로 한 '텃밭'이 팀별로 주어지며, 이를 지표로 팀 랭킹이 매겨집니다.
- 협업: 팀원들은 스터디, 학습자료 업로드 등의 팀 활동을 통해 팀의 '텃밭'에 기여할 수 있습니다.
- 1위부터 10위까지의 팀이 메인 페이지에 표시됩니다.
- 팀원 목록: 해당 팀에 참여하고 있는 회원 목록을 제공합니다.
- 초대: 팀장은 초대 버튼을 통해 팀에 새로운 회원을 초대할 수 있습니다.
- 스터디: 팀에서 진행중인 스터디 목록과 그 진행률을 확인할 수 있습니다.
- 학습자료: 팀에 업로드된 학습자료 목록을 확인할 수 있습니다.
- 팀 공개 학습자료는 팀원만 확인 가능하며, 전체 공개 학습자료는 회원이라면 모두 확인할 수 있습니다.
- 참여자 목록: 해당 스터디에 참여하고 있는 회원 목록을 제공합니다.
- 스터디 진행률: 모든 팀원의 진척도를 합산하여 스터디 진행률을 계산합니다. 스터디 진행률에 따라 작물 일러스트가 성장합니다. 새로 들어온 스터디원이 있다면 반영해서 진행률이 조정됩니다.
- 스터디 진행 기간: 스터디가 진행되는 기간을 확인할 수 있습니다.
- 스터디 커리큘럼: 개인별로 진행한 커리큘럼을 완료 처리, 커리큘럼 내용 수정, 커리큘럼 삭제, 커리큘럼의 순서를 바꿀 수 있습니다. 커리큘럼 관리는 스터디장만 가능합니다.
- 학습자료: 학습자료는 팀 학습자료와 스터디 학습자료로 구분되며, 스터디 학습자료는 스터디원만 열람할 수 있습니다.
- 학습자료는 이미지, 파일, 링크의 형태로 업로드 가능합니다.
- 나의 스터디: 소속된 스터디를 확인 가능합니다. 진행중인 스터디와 종료된 스터디를 나누어 확인할 수 있습니다.
- 나의 학습자료: 내가 업로드한 학습자료를 확인할 수 있습니다.
- 스터디 카드: 종료된 스터디에서의 나의 활동을 정리된 레이아웃으로 제공합니다.
- 스터디에서의 커리큘럼을 확인할 수 있습니다.
- 나의 진행률을 확인할 수 있습니다.
- 스터디에서 내가 업로드한 학습자료만 모아 확인할 수 있습니다.
- 스터디 카드 공유: 스터디 카드를 정적 페이지로 공유하여 포토폴리오로 사용할 수 있습니다.
- 공유하고 싶은 스터디 카드를 선택할 수 있습니다.
- FK를 사용하지 않는 전략을 선택했습니다.
- schema.sql 자세히 보기












