codesejin / micro-commerce

Read Me 참고용 Fork 레포지토리입니다.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

micro-commerce

목차

  1. 프로젝트 개요
  2. 시스템 구성도
  3. 프로젝트 기술 스택
  4. Use Case / 유저 시나리오
  5. Flow Chart
  6. 기능 구조도
  7. 메뉴 구조도
  8. ERD
  9. Git Branch Strategy

📜 프로젝트 개요

header

본 프로젝트는 버스킹 서비스를 제공하는 시스템을 개발합니다. 버스킹 서비스는 기본적으로 HOST가 지도에 버스킹 장소와 날짜를 지정하면, 서비스 이용자 모두가 볼 수 있게 합니다. 이를 통해 자유롭게 사람들이 모여 버스킹 활동을 합니다. 버스킹은 '거리 공연'을 의미하나, 서비스에선 공연이 아닌, 사람들이 모여 할 수 있는 모든 모임 활동을 의미합니다.

버스킹 서비스를 이용하는 사용자는 GUEST, USER, HOST, ADMIN으로 나뉩니다. GUEST는 비가입회원으로 버스킹 조회 및 검색만 가능합니다. USER는 가입회원으로 버스킹 조회, 검색, 참여, 개설, 후기 작성, HOST 검색 등 서비스를 이용할 수 있습니다. HOST버스킹을 한 번 개설한 적이 있는 USER로, HOST 검색 시 노출됩니다. ADMIN은 관리자로, 서비스를 관리합니다.

📑 시스템 구성도

µ'us - system architecture

🖥 프로젝트 기술 스택

  • Spring Boot
  • Swagger
  • MyBatis
  • Spring Data JPA
  • MySQL
  • Gradle
  • IntelliJ
  • Redis AWS

🎭 Use Case / 유저 시나리오

대표 케이스만 기입되어 있습니다. 모든 케이스를 확인하려면 WIKI - Use Case / 유저 시나리오를 참고합니다.

1. COMMON

USE CASE 1 - 버스킹 조회

  1. 애플리케이션이 실행되면 홈 화면이 표시된다
  2. 홈 화면에 지도가 표시된다
    • 지도는 현재 위치를 기준으로 표시되어 있다
  3. 지도에 사용자 중심으로 개설된 버스킹이 표시된다
  4. 지도의 특정 버튼을 통해 확장하거나, 이동시키면 표시된 지도를 기준으로 버스킹이 표시된다

2. GUEST

USE CASE 1 - 회원가입

  1. 마이 페이지 탭을 누른다
  2. 회원가입 버튼을 누르면 아이디와 비밀번호를 입력하는 UI가 표시된다
  3. 아이디를 입력한다
    • 아이디는 영문과 숫자 조합 6~15자로 제한한다
    • 존재하는 아이디가 있으면 중복 아이디 존재 메시지를 응답한다
    • 존재하는 아이디가 없으면 사용 가능 메시지를 응답한다
  4. 비밀번호를 입력한다
    • 비밀번호는 6~20자로 제한하며, 특수 문자는 ~,!,@,#,$,%,^,&,*만 포함한다
  5. 아이디와 비밀번호가 입력이 완료되고 다음을 누르면 닉네임을 입력하는 UI가 표시된다
  6. 닉네임을 입력한다
    • 닉네임은 2~15자로 제한하며, 특수 문자는 포함할 수 없다
    • 존재하는 닉네임이 있으면 중복 아이디 존재 메시지를 응답한다
    • 존재하는 닉네임이 없으면 사용 가능 메시지를 응답한다
  7. 닉네임 입력이 완료되고 다음을 누르면 전화번호 인증 UI가 표시된다
  8. 이메일을 입력하고 인증 번호 발송 버튼을 누른다
  9. 3분 내에 수신한 인증번호를 입력하고 인증하기 버튼을 누른다
  10. 회원가입이 성공적으로 마치면 자동으로 로그인되어 홈 화면으로 돌아간다

3. USER / HOST

USE CASE 2 - 버스킹 참여

  1. 지도에 표시되거나 검색한, 시작 전 또는 진행 중인 버스킹을 선택한다
  2. 버스킹에 대한 정보 UI가 표시된다
  3. 버스킹 참여 버튼을 누른다
    • 인원이 가득찬 경우, 인원이 가득찼다는 응답을 한다
    • 참석에 성공한 경우, 참석에 성공했다는 응답을 한 후 4번 흐름으로 간다
  4. 홈 화면으로 돌아가며 진행 중인 버스킹이 표시된다
  5. HOST에게 해당 USER가 참석했다는 알림을 전송한다

USE CASE 4 - 버스킹 생성

  1. 홈 화면에 있는 + 버튼을 누른다
  2. 지도를 움직여 생성할 위치를 선택한다
  3. 제목을 적는다
  4. 사진을 등록하고 내용을 적는다(Opt.)
  5. 시작 날짜 및 시간을 적는다
  6. 생성 버튼을 누르면 정말 생성하겠는지 응답한다
    • 취소를 누르면 4번 흐름으로 이동한다
    • 확인을 누르면 6번 흐름으로 이동한다
  7. 홈 화면으로 돌아가고 생성한 버스킹이 표시된다

USE CASE 6 - 버스킹 종료(자동)

  1. 생성한 진행 중인 버스킹 진행 시간이 만료된다
  2. 애플리케이션이 활성화되었을 때 또는 홈 화면에서 생성한 진행 중인 버스킹을 선택했을 때 버스킹 종료 여부를 묻는다
    • 취소를 누르면 홈 화면으로 돌아가 모임이 계속 진행된다
    • 확인을 누르면 3번 흐름으로 진행한다
  3. 버스킹 후기를 작성한다
    • 사진을 등록하거나 내용을 적는다
    • 중간에 취소를 누르면 개인 피드에 USER만 볼 수 있는 피드로 등록된다
    • private 설정 값에 따라 공개 피드로 등록된다
  4. 홈 화면으로 돌아간다

USE CASE 7 - 버스킹 종료(수동)

  1. 생성한 진행 중인 버스킹을 선택한다
  2. 버스킹에 대한 정보 UI가 표시된다
  3. 버스킹 종료 버튼을 누르며 종료할 것인지 응답한다
    • 취소를 누르면 홈 화면으로 돌아가 모임이 계속 진행된다
    • 확인을 누르면 3번 흐름으로 진행한다
  4. 버스킹 후기를 작성한다
    • 사진을 등록하거나 내용을 적는다
    • 중간에 취소를 누르면 개인 피드에 USER만 볼 수 있는 피드로 등록된다
    • private 설정 값에 따라 공개 피드로 등록된다
  5. 홈 화면으로 돌아간다

USE CASE 10 - HOST 구독

  1. 검색한 HOST 또는 참여한 HOST의 프로필을 선택한다
  2. HOST에 대한 정보 UI가 표시된다

4. ADMIN

USE CASE 3 - 공지사항 등록

  1. 마이 페이지 탭을 클릭한다
  2. 공지사항 추가를 누른다
  3. 공지사항을 입력하고 확인을 누른다
    • 즉시 공지 속성을 선택 후 누르면 즉시 모든 USER에게 공지사항이 전송되고 마이 페이지 탭으로 이동한다
    • 선택하지 않으면 4번 흐름으로 진행한다
  4. 마이 페이지 탭으로 이동한다
  5. 대기 중인 공지사항을 누르면 전송 안된 공지사항 목록이 보인다
  6. 공지사항 우측에 보내기 버튼을 누른다
  7. 모든 USER에게 공지사항이 전송된다

🎞 Flow Chart

대표 케이스만 기입되어 있습니다. 모든 케이스를 확인하려면 WIKI - Flow Chart를 참고합니다.

1. COMMON

버스킹 조회

버스킹 조회

2. GUEST

회원가입

회원가입

3. USER/HOST

버스킹 참여

버스킹 참여

버스킹 생성

버스킹 생성

버스킹 종료

버스킹 종료

4. ADMIN

공지사항 등록

공지사항 등록

📑 기능 구조도

WIKI - 기능 구조도를 참고하시면 됩니다.

📱 메뉴 구조도

μ'us - 메뉴 구조도-1

📄 ERD

µ'us - ERD

🌲 Git Branch Strategy

About

Read Me 참고용 Fork 레포지토리입니다.