Skip to content

Taehun88/prdoit_Backend

 
 

Repository files navigation

backend

Prdoit 프로젝트

0. 목차

  1. 핵심 기능
  2. 데이터베이스 구조
  3. API 명세서
  4. 패키지 구조

1. 핵심 기능

1.1 프로젝트 생성

사용자가 프로젝트를 생성하면 애자일 방법론 8단계에 맞춰 단계를 저장할 수 있습니다.

1.2 단계별 진행 및 학습

프로젝트를 진행하면서 다른 사용자가 올린 게시글 및 강의글을 보며 학습할 수 있습니다.

1.3 프로젝트 가르치기

사용자는 영상 또는 게시글 형태로 강의를 올릴 수 있습니다.


2. 데이터베이스 구조

2.1 ERD 테이블 설명

id_table

column datatype work
id varchar PK,NN
name varchar NN
email varchar NN
nickname varchar NN
password varchar NN

project_table

column datatype work
project_id int PK,NN
project_name varchar NN
project_idea varchar NN
project_level1 ~ project_level8 boolean NN
id varchar FK,NN

project_level_content_table

column datatype work
level_content_id int PK,NN
project_content varchar NN
project_level int NN
project_id int FK,NN

community_table

column datatype work
community_id uuid PK,NN
community_content varchar NN
community_tag varchar NN
community_date datetime NN
id varchar FK,NN

comment_table

column datatype work
comment_id int PK,NN
comment_content varchar NN
comment_nickname varchar NN
content_id uuid NN

comment_comment_table

column datatype work
comment_comment_id int PK,NN
comment_comment_content varchar NN
comment_id int FK,NN

survey_table

column datatype work
survey_id int PK,NN
survey_num_1 ~ survey_num_4 varchar NN
id varchar FK,NN

certification_table

column datatype work
certification_id int PK,NN
certification_number int NN
certification_email varchar NN

report_table

column datatype work
report_id int PK,NN
report_reason varchar NN
id varchar FK,NN

2.2 ERD 다이어그램

poster


3. API 명세서

Prdoit 프로젝트의 API는 Swagger-UI 기반으로 제공됩니다.

Swagger UI 주소: [API_URL_HERE]

3.1 프로젝트 API

  • POST /project/store - 프로젝트 저장
  • POST /project/content - 프로젝트 콘텐츠 생성
  • DELETE /project/content - 프로젝트 콘텐츠 삭제
  • PATCH /project/content - 프로젝트 콘텐츠 수정
  • GET /project/{projectId} - 특정 프로젝트 조회
  • DELETE /project/{projectId} - 프로젝트 삭제
  • GET /project/list/{userId} - 사용자 프로젝트 목록 조회
  • GET /project/content/{projectId}/ - 프로젝트 콘텐츠 조회
  • GET /project/burndown/{projectId}/{taskId} - 번다운 차트 데이터 조회

3.2 유저 API

  • POST /user/signup - 회원가입
  • POST /user/login - 로그인
  • POST /user/auth/password - 비밀번호 인증
  • PATCH /user/changePassword - 비밀번호 변경
  • GET /user/notification/{userId} - 사용자 알림 조회
  • GET /user/nickname/{userNickname} - 닉네임 조회
  • GET /user/id/{userId} - 사용자 ID 조회
  • GET /user/findId/{email} - 이메일로 ID 찾기
  • GET /user/email/{userEmail} - 이메일 확인
  • GET /user/confirm/{userId}/{email} - 이메일 인증
  • GET /user/information/{userId} - 사용자 정보 조회

3.3 설문조사 API

  • GET /survey - 설문 조회
  • POST /survey - 설문 제출
  • PATCH /survey - 설문 수정

3.4 메일 API

  • POST /mail/send - 메일 발송
  • POST /mail/check - 메일 확인

3.5 콘텐츠 API

  • GET /content - 콘텐츠 조회
  • POST /content - 콘텐츠 생성
  • PATCH /content - 콘텐츠 수정
  • POST /content/like/{contentId} - 콘텐츠 좋아요
  • GET /content/{contentId} - 특정 콘텐츠 조회
  • GET /content/total/{userId} - 사용자 총 콘텐츠 조회

3.6 커뮤니티 API

  • GET /community - 커뮤니티 조회
  • POST /community - 커뮤니티 게시글 생성
  • PATCH /community - 커뮤니티 게시글 수정
  • GET /community/{communityId} - 특정 커뮤니티 게시글 조회
  • DELETE /community/{communityId} - 커뮤니티 게시글 삭제

3.7 댓글 API

  • POST /comments - 댓글 생성
  • PATCH /comments - 댓글 수정
  • POST /comments/reply - 대댓글 생성
  • PATCH /comments/reply - 대댓글 수정
  • POST /comments/community - 커뮤니티 댓글 생성
  • PATCH /comments/community - 커뮤니티 댓글 수정
  • POST /comments/community/reply - 커뮤니티 대댓글 생성
  • PATCH /comments/community/reply - 커뮤니티 대댓글 수정
  • GET /comments/content/{contentId} - 특정 콘텐츠 댓글 조회
  • GET /comments/community/{communityId} - 특정 커뮤니티 댓글 조회

4. 패키지 구조

─src
    ├─main
    │  ├─java
    │  │  └─com
    │  │      └─example
    │  │          └─prdoit
    │  │              │  PrdoitApplication.java
    │  │              │
    │  │              ├─config
    │  │              │      BacklogEnum.java
    │  │              │      EmailConfig.java
    │  │              │      SecurityConfig.java
    │  │              │      SwaggerConfig.java
    │  │              │      WebConfig.java
    │  │              │
    │  │              ├─controller
    │  │              │      CommentController.java
    │  │              │      CommunityController.java
    │  │              │      ContentController.java
    │  │              │      MailController.java
    │  │              │      ProjectController.java
    │  │              │      SurveyController.java
    │  │              │      testController.java
    │  │              │      UserController.java
    │  │              │
    │  │              ├─dto
    │  │              │  │  SurveyDto.java
    │  │              │  │
    │  │              │  ├─comment
    │  │              │  │      CommentPatchDto.java
    │  │              │  │      CommentReplyPatchDto.java
    │  │              │  │      CommentReplyRequestDto.java
    │  │              │  │      CommentReplyResponseDto.java
    │  │              │  │      CommentRequestDto.java
    │  │              │  │      CommentResponseDto.java
    │  │              │  │      CommunityCommentPatchDto.java
    │  │              │  │      CommunityCommentPostDto.java
    │  │              │  │      CommunityCommentReplyPatchDto.java
    │  │              │  │      CommunityCommentReplyPostDto.java
    │  │              │  │      CommunityCommentReplyResponseDto.java
    │  │              │  │      CommunityCommentResponseDto.java
    │  │              │  │
    │  │              │  ├─community
    │  │              │  │      CommunityDetailResponseDto.java
    │  │              │  │      CommunityPatchDto.java
    │  │              │  │      CommunityRequestDto.java
    │  │              │  │      CommunityResponseDto.java
    │  │              │  │      CommunityTagPatchDto.java
    │  │              │  │      CommunityTagResponseDto.java
    │  │              │  │
    │  │              │  ├─content
    │  │              │  │      ContentDetailDto.java
    │  │              │  │      ContentRequestDto.java
    │  │              │  │      ContentResponseDto.java
    │  │              │  │      ContentTitleDto.java
    │  │              │  │      ContentUpdateDto.java
    │  │              │  │      TotalContentDto.java
    │  │              │  │
    │  │              │  ├─notification
    │  │              │  │      NotificationResponseDto.java
    │  │              │  │
    │  │              │  ├─project
    │  │              │  │  │  ProjectCreateDto.java
    │  │              │  │  │  ProjectResponseDto.java
    │  │              │  │  │
    │  │              │  │  ├─backlog
    │  │              │  │  │      BacklogAddDto.java
    │  │              │  │  │      BacklogListDto.java
    │  │              │  │  │      BacklogPatchDto.java
    │  │              │  │  │      BacklogPutDto.java
    │  │              │  │  │      BacklogPutListDto.java
    │  │              │  │  │      BacklogResponseDto.java
    │  │              │  │  │
    │  │              │  │  ├─burndown
    │  │              │  │  │      BurndownDto.java
    │  │              │  │  │      BurndownListDto.java
    │  │              │  │  │      BurndownPatchDto.java
    │  │              │  │  │      BurndownPostDto.java
    │  │              │  │  │      BurndownPostListDto.java
    │  │              │  │  │      BurndownResponseDto.java
    │  │              │  │  │
    │  │              │  │  └─content
    │  │              │  │          ContentDeleteDto.java
    │  │              │  │          ContentDto.java
    │  │              │  │          ContentPatchDto.java
    │  │              │  │          ContentResponseDto.java
    │  │              │  │          ProjectContentResponseDto.java
    │  │              │  │
    │  │              │  └─user
    │  │              │          ChangePasswordDto.java
    │  │              │          InformationDto.java
    │  │              │          LoginDto.java
    │  │              │          UserDto.java
    │  │              │
    │  │              ├─exception
    │  │              │      CustomException.java
    │  │              │
    │  │              ├─model
    │  │              │      BacklogTable.java
    │  │              │      CertificationTable.java
    │  │              │      CommentCommentTable.java
    │  │              │      CommentTable.java
    │  │              │      CommunityTable.java
    │  │              │      CommunityTagTable.java
    │  │              │      ContentTable.java
    │  │              │      IdTable.java
    │  │              │      NotificationTable.java
    │  │              │      ProjectLevelContentTable.java
    │  │              │      ProjectTable.java
    │  │              │      SurveyTable.java
    │  │              │
    │  │              ├─repository
    │  │              │      BacklogTableRepository.java
    │  │              │      CertificationTableRepository.java
    │  │              │      CommentCommentTableRepository.java
    │  │              │      CommentTableRepository.java
    │  │              │      CommunityTableRepository.java
    │  │              │      CommunityTagTableRepository.java
    │  │              │      ContentTableRepository.java
    │  │              │      IdTableRepository.java
    │  │              │      NotificationTableRepository.java
    │  │              │      ProjectLevelContentTableRepository.java
    │  │              │      ProjectTableRepository.java
    │  │              │      SurveyTableRepository.java
    │  │              │
    │  │              └─service
    │  │                  ├─comment
    │  │                  │      CommentService.java
    │  │                  │      CommentServiceImpl.java
    │  │                  │
    │  │                  ├─community
    │  │                  │      CommunityService.java
    │  │                  │      CommunityServiceImpl.java
    │  │                  │
    │  │                  ├─content
    │  │                  │      ContentService.java
    │  │                  │      ContentServiceImpl.java
    │  │                  │
    │  │                  ├─mail
    │  │                  │      MailService.java
    │  │                  │      MailServiceImpl.java
    │  │                  │
    │  │                  ├─notification
    │  │                  │      NotificationService.java
    │  │                  │      NotificationServiceImpl.java
    │  │                  │
    │  │                  ├─project
    │  │                  │      ProjectService.java
    │  │                  │      ProjectServiceImpl.java
    │  │                  │
    │  │                  ├─survey
    │  │                  │      SurveyService.java
    │  │                  │      SurveyServiceImpl.java
    │  │                  │
    │  │                  └─user
    │  │                          UserService.java
    │  │                          UserServiceImpl.java
    │  │
    │  └─resources
    │          application.properties

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%