Skip to content

가천대학교 2024-2 시스템 아키텍처 <TEAM 4 - 가마고치 (server)>

Notifications You must be signed in to change notification settings

GC-Project-Space/SA_TEAM-4_back

Repository files navigation



0. Getting Started (시작하기)

서버 링크 (배포중지)



1. Project Overview (프로젝트 개요)

  • 프로젝트 이름: 가마고치 리팩토링
  • 프로젝트 설명: 학교 내에서 걸어다니며 포인트를 획득하고, 미션을 수행하여 이동을 수단이 아닌 행동으로, 만드는 어플리케이션
  • 프로젝트 기간 : 2024.10.24 ~ 2024.11.24


2. Team Members (팀원 및 팀 소개)

주성재 이도연 임석현 변영은
주성재 이도연 임석현 변영은
BE DevOps, BE BE BE
GitHub GitHub GitHub GitHub


3. System Architecture (구성도)

수정1차

4. Key Features (주요 기능)

  • 회원가입:

    • 회원가입 시 DB에 유저정보가 등록됩니다.
  • 로그인:

    • JWT를 통해 로그인합니다.
  • 미션 부여:

    • DB에 존재하는 미션을 매일 초기화되도록 하여, 아직 수행하지않은 미션을 부여합니다.
  • 미션 조회:

    • 미션의 내용, 미션의 성공여부 및 좌표가 보여집니다.
  • 미션 수행 및 걸음수 등록:

    • 미션이 수행되면, 완료 표시 됩니다.
    • 프론트 측에서 넘어오는 걸음수를 저장할 수 있습니다.
  • 랭킹 기능:

    • 랭킹에서 학과별 순위를 확인할 수 있습니다.
    • 랭킹에서 개인별 순위를 확인할 수 있습니다.


5. Tasks & Responsibilities (작업 및 역할 분담)

주성재 주성재
  • 팀장
  • 미션 조회 기능
  • 미션 완료 기능
이도연 이도연
  • 젠킨슨 CI/CD
  • AWS 서버 배포
  • nginx blue-green 무중단배포
  • 유저 마이페이지 조회
임석현 임석현
  • 유저 회원 가입
  • JWT 기능구현
변영은 변영은
  • 학과별 랭킹 기능
  • 개인별 랭킹 기능


6. Technology Stack (기술 스택)

5.3 Backend

SpringBoot SpringBoot 3.3.4
SpringSecurity SpringSecurity

7 Cooperation

Git git
Notion Notion

8. Project Structure (프로젝트 구조)

Dockerfile
build.gradle
├── docker-compose.yml
scripts
│   └── deploy.sh
src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── sa_project
    │   │               ├── SaProjectApplication.java
    │   │               ├── api
    │   │               │   ├── controller
    │   │               │   │   ├── home
    │   │               │   │   │   └── HomeController.java
    │   │               │   │   ├── mission
    │   │               │   │   │   ├── MissionController.java
    │   │               │   │   │   └── request
    │   │               │   │   │       ├── ClearRequest.java
    │   │               │   │   │       ├── MissionRequest.java
    │   │               │   │   │       ├── ProgressRequest.java
    │   │               │   │   │       ├── ResetRequest.java
    │   │               │   │   │       └── RewardRequest.java
    │   │               │   │   ├── ranking
    │   │               │   │   │   └── RankingController.java
    │   │               │   │   ├── response
    │   │               │   │   │   └── ErrorResponse.java
    │   │               │   │   └── user
    │   │               │   │       ├── UserController.java
    │   │               │   │       └── request
    │   │               │   │           └── UserRequest.java
    │   │               │   └── service
    │   │               │       ├── mission
    │   │               │       │   ├── MissionService.java
    │   │               │       │   └── response
    │   │               │       │       ├── ClearResponse.java
    │   │               │       │       ├── MissionProgress.java
    │   │               │       │       ├── ProgressResponse.java
    │   │               │       │       ├── ResetResponse.java
    │   │               │       │       ├── RewardResponse.java
    │   │               │       │       └── mission
    │   │               │       │           └── MissionProgressResponse.java
    │   │               │       ├── ranking
    │   │               │       │   ├── RankingService.java
    │   │               │       │   └── response
    │   │               │       │       ├── MajorProgressDTO.java
    │   │               │       │       ├── SetProgressDTO.java
    │   │               │       │       └── UserProgressDTO.java
    │   │               │       └── user
    │   │               │           ├── CustomUserDetailsService.java
    │   │               │           ├── UserService.java
    │   │               │           └── response
    │   │               │               ├── UserResponse.java
    │   │               │               └── UserResponseNoToken.java
    │   │               ├── config
    │   │               │   ├── CustomUserDetails.java
    │   │               │   ├── JwtAuthenticationFilter.java
    │   │               │   └── SecurityConfig.java
    │   │               ├── domain
    │   │               │   ├── mission
    │   │               │   │   ├── Mission.java
    │   │               │   │   ├── MissionRepository.java
    │   │               │   │   ├── MyMission.java
    │   │               │   │   └── MyMissionRepository.java
    │   │               │   ├── ranking
    │   │               │   │   ├── UserProgress.java
    │   │               │   │   └── UserProgressRepository.java
    │   │               │   └── user
    │   │               │       ├── Major.java
    │   │               │       ├── User.java
    │   │               │       └── UserRepository.java
    │   │               └── util
    │   │                   └── JwtUtil.java
    │   └── resources
    │       └── application.yml


9. Development Workflow (개발 워크플로우)

브랜치 전략 (Branch Strategy)

우리의 브랜치 전략은 Git Flow를 기반으로 하며, 다음과 같은 브랜치를 사용합니다.

  • Main Branch

    • 배포 가능한 상태의 코드를 유지합니다.
    • 모든 배포는 이 브랜치에서 이루어집니다.
  • Devlop Branch

    • 만든 기능들이 작동하는지 코드를 합병합니다.
  • {feat} Branch

    • 모든 기능 개발은 feat 브랜치에서 이루어집니다.


10. Coding Convention


type 종류

feat : 새로운 기능 추가
fix : 버그 수정
docs : 문서 수정
style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
refactor : 코드 리펙토링
test : 테스트 코드, 리펙토링 테스트 코드 추가
chore : 빌드 업무 수정, 패키지 매니저 수정

커밋 이모지

== 코드 관련
📝	코드 작성
🔥	코드 제거
🔨	코드 리팩토링
💄	UI / style 변경

== 문서&파일
📰	새 파일 생성
🔥	파일 제거
📚	문서 작성

== 버그
🐛	버그 리포트
🚑	버그를 고칠 때

== 기타
🐎	성능 향상
✨	새로운 기능 구현
💡	새로운 아이디어
🚀	배포

커밋 예시

== ex1
✨Feat: "회원 가입 기능 구현"

SMS, 이메일 중복확인 API 개발

== ex2
📚chore: styled-components 라이브러리 설치

UI개발을 위한 라이브러리 styled-components 설치

11. 수행 결과

스크린샷 2024-12-05 14 57 55

About

가천대학교 2024-2 시스템 아키텍처 <TEAM 4 - 가마고치 (server)>

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •