Skip to content

Latest commit

 

History

History
565 lines (521 loc) · 20.2 KB

README.md

File metadata and controls

565 lines (521 loc) · 20.2 KB
logo

What's Your Plan

📢 본 프로젝트는 2024 Samsung Software Academy For Youth 10기 특화 프로젝트 일환으로 진행되었습니다.

서비스 소개

단순한 일정 관리를 넘어서, 사용자가 과거의 사건, 경험, 감정 등을 기록하여 영구적으로 보존할 수 있습니다. 이를 통해 사용자는 자신의 삶을 기록하고 추억을 회상할 수 있습니다. 미래에 대한 일정을 기록하고, 다른 사용자와의 공유를 통해 일정 조율이 용이하게 합니다. 이를 통해 사용자는 개인적인 일정 뿐만 아니라, 타인과의 약속도 관리할 수 있습니다.

개발 기간

2024.04.08 ~ 2024.05.24 (7주)

팀원


조다민

김정욱

최민준

이지원

좌소연

한지원
팀장, 프론트엔드
SSE 알림 기능 구현
회고록 작성 페이지, 드래그앤 드롭 로직 구현
풀스택
로그인 기능 구현
그룹 기능 구현
백엔드, 인프라
알림 시스템 구현
Grapana, Prometheus 모니터링 시스템 구축
프론트엔드
일정 생성, 달력 조회 기능 구현
백엔드
일정 생성, 조회 기능
라벨 생성, 조회 기능 구현
백엔드, 인프라
그룹 기능 구현
CI/CD, HTTPS, 리버스 프록시

기술 스택

Front-end

Back-end

Infra

협업Tools


주요 기능


로그인

  • 소셜 로그인을 통해 간단하게 가입, 로그인
  • 소셜 로그인은 구글 로그인 가능 Landing

알림

  • 그룹 초대와 같은 알림 기능 제공

내 정보

  • 왼쪽 사이드바 최하단의 아이콘을 클릭하여 내 정보를 확인 가능
  • 프로필 이미지를 수정 가능
  • 나의 색상을 선택하여 일정의 기본 색상을 선택 가능 Profile

개인 일정

  • 개인 일정 페이지에서는 개인 일정을 월, 주, 일 단위 달력을 통해 확인 가능
  • 아래의 일정 추가 버튼을 통해 일정을 추가할 수 있음 Calendar

일정 등록

  • 일정은 제목, 시작 날짜, 종료 날짜, 설명, 라벨, 반복을 지정 가능
  • 라벨은 색과 라벨 명을 입력하여 생성 가능
  • 반복은 매일, 매 주,매 월 ,매 년으로 설정 가능하며 매 주 설정은 몇 주 마다 반복할 것인지, 무슨 요일에 반복할 것인지 지정 가능 Schedule

그룹 일정

  • 그룹을 생성하여 그룹원을 이메일 검색을 통해 초대 가능
  • 여러 그룹을 생성 가능하고 그룹별로 일정을 등록 가능 Group CreateGroup

회고록

  • 회고록 페이지에서 작성된 회고록을 확인 가능

회고록 작성

  • 일정 상세보기에서 일정에 대한 회고록을 작성할 수 있음
  • 회고록은 상단에는 일정 제목과 일정의 정보를 제공
  • 왼쪽에 회고록을 간편하게 작성할 수 있는 블록 제공(기분, 날씨, 4F, KPT 등...)
  • 양식은 드래그앤 드롭으로 오른쪽 회고록 작성 영역에서 커스터마이징 가능 ReviewWrite

아키텍처 다이어그램

아키텍처

ERD

ERD

CI CD pipeline

아키텍처

Look Aside

아키텍처

디렉토리 구조

frontend
📦frontend
 ┣ 📂dev-dist
 ┣ 📂dist
 ┣ 📂node_modules
 ┣ 📂public
 ┃  ┣ 📂fonts
 ┃  ┣ 📜favicon.ico
 ┃  ┣ 📜icon-192.png
 ┃  ┣ 📜icon-256.png
 ┃  ┣ 📜icon-512.png
 ┃  ┗ 📜logo.png
 ┣ 📂src
 ┃ ┣ 📂@types
 ┃ ┣ 📂assets
 ┃ ┃ ┣ 📂icons
 ┃ ┃ ┃ ┣ 📂emoji
 ┃ ┃ ┃ ┣ 📂weather
 ┃ ┃ ┣ 📂images
 ┃ ┃ ┣ 📂lottie
 ┃ ┃ ┗ 📂styles
 ┃ ┣ 📂components
 ┃ ┃ ┣ 📂animation
 ┃ ┃ ┣ 📂calendar
 ┃ ┃ ┃ ┣ 📂Daily
 ┃ ┃ ┃ ┣ 📂Monthly
 ┃ ┃ ┃ ┣ 📂Weekly
 ┃ ┃ ┣ 📂color
 ┃ ┃ ┣ 📂common
 ┃ ┃ ┣ 📂group
 ┃ ┃ ┃ ┣ 📂create
 ┃ ┃ ┃ ┣ 📂invited
 ┃ ┃ ┃ ┣ 📂list
 ┃ ┃ ┃ ┣ 📂member
 ┃ ┃ ┃ ┣ 📂update
 ┃ ┃ ┣ 📂label
 ┃ ┃ ┣ 📂navbar
 ┃ ┃ ┃ ┣ 📂common
 ┃ ┃ ┃ ┣ 📂NavEventBar
 ┃ ┃ ┃ ┣ 📂sheet
 ┃ ┃ ┃ ┃ ┣ 📂member
 ┃ ┃ ┃ ┃ ┣ 📂notification
 ┃ ┃ ┣ 📂notification
 ┃ ┃ ┣ 📂review
 ┃ ┃ ┃ ┣ 📂thumbnail
 ┃ ┃ ┃ ┣ 📂view
 ┃ ┃ ┃ ┗ 📂write
 ┃ ┃ ┣ 📂schedule
 ┃ ┃ ┣ 📂toast
 ┃ ┃ ┣ 📂tooltip
 ┃ ┃ ┗ 📂widget
 ┃ ┣ 📂constants
 ┃ ┣ 📂hooks
 ┃ ┃ ┣ 📂api
 ┃ ┣ 📂objects
 ┃ ┣ 📂pages
 ┃ ┃ ┣ 📂Landing
 ┃ ┃ ┃ ┣ 📂button
 ┃ ┃ ┣ 📂Main
 ┃ ┃ ┃ ┣ 📂Calendar
 ┃ ┃ ┃ ┣ 📂Group
 ┃ ┃ ┃ ┣ 📂Review
 ┃ ┃ ┣ 📂OAuth
 ┃ ┣ 📂routes
 ┃ ┣ 📂services
 ┃ ┃ ┣ 📂auth
 ┃ ┃ ┣ 📂calendar
 ┃ ┃ ┣ 📂group
 ┃ ┃ ┣ 📂label
 ┃ ┃ ┣ 📂member
 ┃ ┃ ┣ 📂notification
 ┃ ┃ ┣ 📂review
 ┃ ┃ ┣ 📂schedule
 ┃ ┃ ┣ 📂todo
 ┃ ┃ ┣ 📂widget
 ┃ ┣ 📂stores
 ┃ ┗ 📂utils
 ┣ 📜.eslintrc.cjs
 ┣ 📜.gitignore
 ┣ 📜.prettierrc
 ┣ 📜index.html
 ┣ 📜package-lock.json
 ┣ 📜package.json
 ┣ 📜pnpm-lock.yaml
 ┣ 📜postcss.config.js
 ┣ 📜tailwind.config.js
 ┣ 📜tsconfig.json
 ┣ 📜tsconfig.node.json
 ┗ 📜vite.config.ts

backend
📦backend
 ┣ 📂gradle
 ┃ ┗ 📂wrapper
  📂src
   ┣ 📂main
   ┃ ┣ 📂java
   ┃ ┃ ┗ 📂com
   ┃ ┃   ┗ 📂butter
   ┃ ┃     ┗ 📂wypl
   ┃ ┃       ┣ 📂auth
   ┃ ┃       ┃ ┣ 📂annotation
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂mock
   ┃ ┃       ┃ ┣ 📂properties
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┣ 📂calendar
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂response
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┗ 📂service
   ┃ ┃       ┣ 📂file
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┗ 📂response
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┣ 📂global
   ┃ ┃       ┃ ┣ 📂annotation
   ┃ ┃       ┃ ┣ 📂common
   ┃ ┃       ┃ ┃ ┣ 📂controller
   ┃ ┃       ┃ ┃ ┣ 📂interceptor
   ┃ ┃       ┃ ┣ 📂config
   ┃ ┃       ┃ ┃ ┣ 📂dev
   ┃ ┃       ┃ ┃ ┣ 📂local
   ┃ ┃       ┃ ┃ ┃ ┗ 📂redis
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┃ ┗ 📂controller
   ┃ ┃       ┃ ┣ 📂utils
   ┃ ┃       ┃ ┗ 📂validator
   ┃ ┃       ┣ 📂group
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┗ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┃ ┗ 📂query
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┣ 📂infrastructure
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂ouath
   ┃ ┃       ┃ ┃ ┣ 📂google
   ┃ ┃       ┃ ┗ 📂weather
   ┃ ┃       ┃ ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┗ 📂properties
   ┃ ┃       ┣ 📂label
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┗ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┣ 📂member
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┣ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┃ ┣ 📂query
   ┃ ┃       ┃ ┃ ┃ ┗ 📂data
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┣ 📂notification
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┣ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┗ 📂service
   ┃ ┃       ┣ 📂review
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┗ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┗ 📂service
   ┃ ┃       ┣ 📂schedule
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┣ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂respository
   ┃ ┃       ┃ ┃ ┣ 📂query
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┣ 📂scheduler
   ┃ ┃       ┃ ┗ 📂service
   ┃ ┃       ┣ 📂sidetab
   ┃ ┃       ┃ ┣ 📂controller
   ┃ ┃       ┃ ┣ 📂data
   ┃ ┃       ┃ ┃ ┣ 📂request
   ┃ ┃       ┃ ┃ ┗ 📂response
   ┃ ┃       ┃ ┣ 📂domain
   ┃ ┃       ┃ ┃ ┣ 📂cache
   ┃ ┃       ┃ ┃ ┣ 📂embedded
   ┃ ┃       ┃ ┣ 📂exception
   ┃ ┃       ┃ ┣ 📂repository
   ┃ ┃       ┃ ┣ 📂service
   ┃ ┃       ┃ ┗ 📂utils
   ┃ ┃       ┗ 📂todo
   ┃ ┃         ┣ 📂controller
   ┃ ┃         ┣ 📂data
   ┃ ┃         ┃ ┣ 📂request
   ┃ ┃         ┃ ┗ 📂response
   ┃ ┃         ┣ 📂domain
   ┃ ┃         ┣ 📂exception
   ┃ ┃         ┣ 📂repository
   ┃ ┃         ┣ 📂service
   ┃ ┃         ┗ 📂utils
   ┃ ┗ 📂resources
   ┃   ┣ 📂db
   ┃   ┃ ┗ 📂migration
   ┃   ┣ 📂security
   ┃   ┗ 📂static
   ┃     ┗ 📂swagger-ui
   ┗ 📂test
     ┣ 📂java
     ┃ ┗ 📂com
     ┃   ┗ 📂butter
     ┃     ┗ 📂wypl
     ┃       ┣ 📂auth
     ┃       ┃ ┣ 📂annotation
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂service
     ┃       ┃ ┗ 📂utils
     ┃       ┣ 📂calendar
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┗ 📂service
     ┃       ┣ 📂file
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂service
     ┃       ┣ 📂global
     ┃       ┃ ┣ 📂annotation
     ┃       ┃ ┣ 📂common
     ┃       ┃ ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂config
     ┃       ┃ ┣ 📂utils
     ┃       ┃ ┗ 📂validator
     ┃       ┣ 📂group
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┣ 📂service
     ┃       ┃ ┗ 📂utils
     ┃       ┣ 📂infrastructure
     ┃       ┃ ┣ 📂ouath
     ┃       ┃ ┃ ┗ 📂google
     ┃       ┃ ┗ 📂weather
     ┃       ┣ 📂label
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┗ 📂service
     ┃       ┣ 📂member
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┃ ┗ 📂query
     ┃       ┃ ┣ 📂service
     ┃       ┃ ┗ 📂utils
     ┃       ┣ 📂notification
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┗ 📂service
     ┃       ┣ 📂review
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┗ 📂service
     ┃       ┣ 📂schedule
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┃ ┗ 📂embedded
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┣ 📂respository
     ┃       ┃ ┃ ┗ 📂query
     ┃       ┃ ┣ 📂service
     ┃       ┃ ┗ 📂utils
     ┃       ┣ 📂scheduler
     ┃       ┃ ┗ 📂service
     ┃       ┣ 📂sidetab
     ┃       ┃ ┣ 📂controller
     ┃       ┃ ┣ 📂domain
     ┃       ┃ ┃ ┣ 📂embedded
     ┃       ┃ ┣ 📂fixture
     ┃       ┃ ┣ 📂repository
     ┃       ┃ ┗ 📂service
     ┃       ┗ 📂todo
     ┃         ┣ 📂controller
     ┃         ┣ 📂fixture
     ┃         ┣ 📂repository
     ┃         ┗ 📂service
     ┗ 📂resources
       ┣ 📂image
       ┗ 📂security