🗒️ 개요
학교 → 집 → 학교
/ 회사 → 집 → 회사
가 반복되는 일상 속 노잼 시기
를 타파하고 삶에 긍정적인 영향을 불어넣기 위한 미션 클리어 플랫폼
🧑🤝🧑 타겟 유저
- 취미생활이 없거나 찾고있어서 특별한 활동을 하지 않는 누구나
- 똑같은 일상에서도 소소한 행복을 느끼고 싶은 사람
☝️기대 효과
- 반복되는 일상 속 주어지는 미션을 하나씩 해결하면서 스트레스 해소
- 아무 의미가 없다고 생각했던 평범한 행동들도 특별하게 느껴짐
- 사람마다 다르게 겪고 있는 노잼 시기를 YAS를 통해 알게 되고, 그 사람들의 미션 수행 정도를 보면서 YAS 內 소속감, 공감대 형성
🧑💻 기술 스택
eslint
, prettier
(+ husky, lint-staged ??)
- 그 외 사용하면서 추가할 수 있는 라이브러리 등은 협의 후 사용(redux 등)
🌊 서비스 흐름도
📝 기능 구현(요구 리스트)
📌 간단 요약
내용
- YAS 사용자는 매달 혹은 매주 원하는 카테고리(책, 영화, 건강, 여행 등)를 고르고, 카테고리에 해당하는 다양한 미션들을 부여받는다 (미션 추가 가능)
- 미션은 최소 3개 이상 선택해야하며, 3일에 1번, 일주일에 1번 등 자신의 스케쥴에 맞게 수행 기간 선택도 가능하다
- 사용자는 미션 완료 후 스트레스 완화 정도, 행복도 등에 대한 평가와 후기를 작성하게되며, 미션 일정과 후기 내용은 다른 사람들에게 공유된다
✅ 세부적인 요구사항 리스트
내용
- 회원 가입 시 SNS 계정 연동 또는 이메일을 이용하여 가입을 진행하고 로그인을 한다
- 이메일 인증 및 아이디 중복 확인 기능
- 닉네임 중복 확인 기능
- 비밀번호 확인 기능(한번 더 입력)
- 로그인, 로그아웃 기능
- 아이디 또는 비밀번호 찾기 기능
- 최초 접속 여부 확인 후 설명 페이지를 보여준다
- 사용자 접속 기록 확인 기능
- 일정 초 이상이 지나거나, 시작하기 버튼을 누르면 카테고리 선택 페이지로 이동
- 카테고리를 확인하고 해당 카테고리에 어떤 미션들이 존재하는지 미리보기가 가능하다
- 카테고리와 카테고리 별 미션들이 DB에 저장되어 관리
- 카테고리 선택 시 모달로 미션 미리보기 기능(3~4개)
- 현재 인기 카테고리 순으로 정렬 기능(선택 가능)
- 카테고리 선택 후 전체 미션 확인, 추가, 선택이 가능하다
- 미션은 체크 리스트 형식으로 구성, 최소 3개 이상 선택 시 다음으로 버튼 활성화
- 마음에 드는 미션이 없을 경우, 미션 추가 기능 (해당 사용자의 DB에 미션 추가됨)
- 미션 선택 후 나의 스케쥴에 맞춰 일정을 선택한다
- 달력을 이용하여 기간을 정하고, 그 기간동안 몇 번할 지 선택 기능
- 미션의 개수 이상으로 횟수가 선택되어야 다음 페이지로 이동 가능
- 미션 완수 후 평가와 후기를 작성한다
- 스트레스 완화도, 행복도를 별점 또는 점수로 평가 가능
- 사진 업로드 및 후기 글 작성 기능
- 나의 후기 SNS로 공유 기능
- 다른 사람들의 미션 일정과 후기를 확인한다
- 미션 일정 및 후기 상세 조회 기능
- 다른 사람의 미션 나의 미션으로 추가하기, 가져오기 기능
- 🆕 하루에 한 번 일일 랜덤 미션 부여
- 사용자가 선택한 미션 외에 랜덤으로 일일 미션 추가 부여
- 일일 미션을 클리어하면 나의 스케쥴에 해당 미션 클리어된 상태로 추가
- 일일 미션은 내가 선택한 미션과 중복될 수 있음
🤲 프로젝트 컨벤션
- 폴더 구조
┌──── .storybook
├───┬ public
│ ├── index.html
│ ├── favicon.ico
│ └── *
├───┬ src
│ ├─── components
│ ├─── hooks
│ ├─── store (or contexts, redux)
│ ├─── pages
│ ├─── stories
│ ├─── themes → 자주 사용할 대표 색상, 폰트 사이즈
│ ├─── utils → api 로직 등
│ ├─── App.js
│ ├─── index.js
│ ├─── index.css
│ └─── *
├──── .env
├──── .eslintrc
├──── .gitignore
├──── .prettierrc
├──── package.json
├──── readme.md
├──── yarn.lock
└──── *
- Github 협업 방식
- Git-flow 방식(main, develop, release, feature, hotfix)
- Commit Rule (협의 후 선택)
- Type 대문자로 시작 && Commit message 한글
- Type 종류
Feat
: 새로운 기능을 추가할 경우Fix
버그를 고친 경우Design
: CSS 등 사용자 UI 디자인 변경Style
: 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우Refactor
: 프로덕션 코드 리팩토링Comment
: 필요한 주석 추가 및 변경Docs
: 문서를 수정한 경우Test
: 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)Chore
: 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)Rename
: 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우Remove
: 파일을 삭제하는 작업만 수행한 경우
- Jira