Coder Social home page Coder Social logo

one-day-class's Introduction

📑 목차

  1. 프로젝트 개요
  2. 프로젝트 기술 스택
  3. Use Case / 유저 시나리오
  4. Flow Chart
  5. 기능 구조도
  6. 메뉴 구조도
  7. 서버 구조도
  8. ERD
  9. 프로토 타입

📚 프로젝트 개요

본 프로젝트에서는 원데이 클래스 서비스를 제공하는 시스템을 개발합니다. 원데이 클래스 서비스는 기본적으로 HOST가 클래스를 개설하면 GUEST가 가능한 일자에 예약(신청)하는 서비스입니다. 원데이 클래스란 하루 몇 시간 동안 일회성으로 이뤄지는 수업을 말하며 자신이 관심 있는 분야를 직접 선택해서 체험해볼 수 있다는 장점이 있습니다.

원데이 클래스 서비스를 이용하는 사용자는 GUEST, HOST, ADMIN으로 나뉩니다. GUEST와 HOST는 일반 회원으로 서비스를 이용하기 위해 회원가입이 필요하며, ADMIN은 관리자로 관리자 계정을 통해서 서비스를 관리하는 역할을 수행합니다. GUEST는 원데이 클래스 수강자로서 클래스 신청, 후기 작성, 피드 조회 등의 활동을 수행하며, HOST는 원데이 클래스 개설, 수강생 관리 등의 활동을 수행합니다.

📡 프로젝트 기술 스택

  1. JDK 17
  2. Spring Boot 2.6.8
  3. MyBatis 3
  4. MySQL
  5. Gradle
  6. IntelliJ

💻 Use Case / 유저 시나리오

몇 가지 대표 케이스만 기입되어 있습니다. 모든 케이스를 확인하려면 WIKI - Use Case / 시나리오를 참고해주세요.

1. GUEST

USE CASE 6 - 클래스 신청

  1. 유저가 로그인한다.
  2. 클래스 목록을 조회한다.
    • 2-1. 카테고리로 조회한다.
      • 2-1-1. 조회하고자 하는 지역을 선택한다.
      • 2-1-2. 최상위 카테고리 목록(카테고리명)과 카테고리 대표 사진이 유저에게 보여진다.
      • 2-1-3. 조회하고자 하는 카테고리를 선택한다.
      • 2-1-4. 선택된 카테고리의 하위 카테고리(카테고리명)들을 보여 준다.
      • 2-1-5. 최하위 카테고리를 선택할 때까지 상기 2-1-2 ~ 2-1-3번의 흐름을 반복한다.
      • 2-1-6. 선택된 최하위 카테고리에 포함된 클래스들의 목록을 보여준다.
      • 2-1-7. 3번 흐름으로 이동한다.
    • 2-2. 클래스명 검색으로 조회한다.
      • 2-2-1. 조회하고자 하는 지역을 선택한다.
      • 2-2-2. 검색어를 입력하고 검색 버튼을 클릭한다.
      • 2-2-3. 해당 지역에 개설돼있고, 해당 검색어를 포함한 클래스 목록이 보여진다.
      • 2-2-4. 3번 흐름으로 이동한다.
  3. 상세한 정보를 알고 싶은 클래스 하나를 선택한다.
  4. 클래스 상세 정보가 보여진다.
  5. 클래스 신청하기 버튼을 클릭한다.
  6. 신청 가능한 일자들이 보여지고 신청하고 싶은 일자를 선택한다.
  7. 해당 일자에 신청 가능한 시간대들이 보여지고 신청하고 싶은 시간대를 선택한다.
  8. 신청하기 버튼을 클릭한다.
    • 8-1. 신청을 성공하면 신청이 완료되었다는 메세지와 함께 신청이 완료된다.
    • 8-2. 5~7번 흐름 사이에 정원이 가득차면 정원이 가득 찼다는 메세지와 함께 신청이 실패하고 4번 흐름으로 이동한다.

2. HOST

USE CASE 1 - HOST 회원가입

  1. 로그인 화면에서 HOST로 가입을 선택한다.
  2. HOST용 회원가입 폼이 보여진다.
  3. 아이디를 입력 후 중복확인 버튼을 클릭한다.
    • 3-1. 존재하는 아이디가 있으면 중복 아이디 존재 메세지를 응답한다.
    • 3-2. 존재하는 아이디가 없으면 사용 가능 메세지를 응답한다.
  4. 비밀번호와 검증 비밀번호를 입력한다.
  5. 전화번호를 입력 후 인증번호 발송 버튼을 클릭한다.
  6. 유저는 3분 내에 수신한 인증번호를 입력하고 인증하기 버튼을 클릭한다.
  7. 유저의 생년월일을 입력한다.
  8. 주 분야(카테고리)를 선택한다.
  9. 해당 분야의 전문가임을 입증할 수 있는 서류를 첨부한다.
  10. 회원가입 버튼을 클릭하면 HOST 회원가입을 완료한다.
  11. 로그인 화면으로 이동한다.
  12. 관리자 승인 이후 회원가입이 완료된다.

USE CASE 3 - 클래스 개설

  1. 유저가 HOST로 로그인한다.
  2. 클래스 관리 탭으로 이동한다.
  3. 개설중인 클래스 버튼을 클릭한다.
  4. 개설할 클래스의 카테고리(대분류)를 선택한다.
  5. 개설할 클래스의 카테고리(소분류)를 선택한다.
  6. 클래스 정보를 입력한다.
  7. 클래스 개설 완료 버튼을 클릭한다.
    • 7-1. 현재 HOST가 개설중인 다른 클래스와 시간대가 겹치면 겹치는 클래스명과 일자, 시간대와 함께 오류 메세지를 응답한다.
    • 7-2. 클래스 최대 개설 가능 개수를 초과하여 개설하고자 하는 경우에는 오류 메세지를 응답한다.
  8. 클래스 개설을 완료한다.

3. ADMIN

USE CASE 1 - HOST 가입 심사

  1. ADMIN으로 로그인한다.
  2. 회원 관리 탭으로 이동한다.
  3. HOST 전문분야 관리 탭으로 이동한다.
  4. 전문분야 카테고리(대분류) 신규 등록을 원하는 HOST를 선택한다.
  5. HOST가 작성한 신청서와 서류를 확인한다.
  6. 해당 HOST의 전문 분야를 심사한다.
    • 6-1. 승인한다.
    • 6-2. 거절한다.
  7. HOST 전문 분야 심사를 완료한다.
  8. 심사 결과를 HOST에게 전송한다.

USE CASE 3 - 대분류 카테고리(전문 분야) 등록

  1. ADMIN으로 로그인한다.
  2. 카테고리 관리 탭으로 이동한다.
  3. 카테고리(대분류) 관리 버튼을 클릭한다.
  4. 카테고리(대분류) 목록이 관리자에게 보여진다.
  5. 카테고리(대분류) 추가 버튼을 클릭한다.
  6. 등록하고자 하는 카테고리명, 카테고리 설명, 카테고리 대표 사진을 입력하고 등록 버튼을 클릭한다.
  7. 카테고리명 중복 여부를 체크한다.
    • 7-1. 이미 존재하는 카테고리명이면 존재하는 카테고리명이라는 메세지를 응답하고 6번 흐름으로 이동한다.
    • 7-2. 이외에는 8번 흐름으로 이동한다.
  8. 신규 카테고리가 등록되고 이를 포함한 카테고리 목록이 관리자에게 보여진다.

📌 Flow Chart

몇 가지 대표 케이스만 기입되어 있습니다. 모든 케이스를 확인하려면 WIKI - Flow Chart를 참고해주세요.

1. GUEST

클래스 신청

2. HOST

HOST 회원가입


클래스 개설

3. ADMIN

HOST 가입 심사

🔨 기능 구조도

기능 구조도는 WIKI - 기능 구조도를 참고해주세요.

🎏 메뉴 구조도

GUEST 메뉴 구조도


HOST 메뉴 구조도


ADMIN 메뉴 구조도

💻 서버 구조도

(TODO)

✏️ ERD

ERD

📱 프로토 타입

백엔드 개발에 집중하기 위해 프론트엔드는 카카오 오븐을 활용해 디자인하는 정도로 마무리하였습니다.

아래 URL에서 UI 기획안을 확인하실 수 있습니다.

UI 기획안 보기

GUEST

02_GUEST 회원가입 04_카테고리 목록 05_클래스 목록 06_검색한 클래스 목록 07_클래스 상세 08_클래스 신청 09_클래스 신청 완료 10_피드 12_GUEST 마이 페이지 13_수강 예정 클래스 14_수강 완료 클래스 15_일반 후기 작성 16_사진 후기 작성

HOST

03_HOST 회원가입 21_HOST 클래스 관리 탭 22_개설중인 클래스 23_클래스 수정 24_클래스 폐지 25_마감된 클래스 26_클래스 개설 27_카테고리(소분류) 신청 내역 28_카테고리(소분류) 신청 29_HOST 마이 페이지 30_전문분야 심사 신청

GUEST, HOST 공통

01_로그인 11_알림 센터 17_비밀번호 입력 18_회원탈퇴 확인 19_회원정보 수정 20_비밀번호 변경

ADMIN

31_ADMIN 회원 관리 탭 32_HOST 가입 신청 내역 33_HOST 가입 신청 정보 34_HOST 전문분야 신청 내역 35_ADMIN 카테고리 관리 탭 36_카테고리(대분류) 목록 37_카테고리(대분류) 등록 38_카테고리(소분류) 관리

브랜치 관리 전략

Git Flow

(TODO)

one-day-class's People

Contributors

haan823 avatar f-lab-bot avatar f-lab-nolan avatar

Stargazers

Eunyoung avatar  avatar

Watchers

James Cloos avatar  avatar

one-day-class's Issues

회원 가입 기능 구현

  • GUEST 회원 가입 기능 구현
  • HOST 회원 가입 기능 구현
  • 파일 업로드 기능 구현
  • Sms 인증 기능 구현

로그인 기능 개발

  • Guest, Host, Admin 로그인 기능 개발(해당하는 권한 부여)
  • 로그인 테스트 페이지(로그인 폼 화면) 개발

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.