멋쟁이 사자처럼 백엔드 스쿨 8기에서 진행한 2차 종합 프로젝트 입니다.
운동 전문가가 집으로 방문하여 운동 프로그램을 제공하도록 매칭 해주는 플랫폼입니다. PT, 요가, 산전/산후 관리 등 여러 카테고리의 프로그램을 제공합니다.
기간: 2024.04.11 ~ 2024.05.03
- Back-end : Java 17, Spring Boot 3.2.4, Spring Data JPA, Spring Security, Spring Mail, JWT, OAuth2, Toss
- Front-end : Javascript, HTML/CSS, Thymeleaf, BootStrap
- Database : MySQL, H2, Redis
- infra : docker, NGiNX, NCP
- tool : Notion, google docs, GitHub
- design : 피그마
- 인증 방식
- JWT 토큰을 활용한 인증
- 유저
- 카카오 로그인을 통해 회원가입, 로그인
- 로그인 하지 않은 사용자는 메인 페이지와 강사 소개 페이지를 볼 수 있음
- 일반 사용자는 수업을 신청하고 결제할 수 있음
- 회원 탈퇴 후 탈퇴 유저에 등록 후 유저 정보 보관
- 강사
- 강사 회원가입을 진행하면 관리자가 강사를 검증한 뒤 신청을 승인
- 강사 페이지에서 수업과 수강생을 관리
- 관리자
- 모든 권한을 가진다.
- 수업 신청
- 강사의 프로그램을 검색하여 신청
- 가능한 일정 선택 후 결제
- 강사가 수업을 수락하면 매칭 완료, 거절하면 결제 취소
- 회원 페이지
- 수업 찜(즐겨찾기) 기능
- 수업 정보 확인
- 수업 후기 작성(별점, 사진)
- 수업
- 수업 생성, 수정, 삭제 신청이 가능(관리자의 최종 승인 필요)
- 회원 목록 확인, 수업 일지 작성(수업일지 작성 시 회원의 회원권에서 1회 차감)
- 후기 확인 및 답글 작성
- 수업 수익 정산 신청(관리자 확인 후 계좌로 입금)
- 가능한 지역과 시간대를 설정하여 검색 필터 등록
- 유저, 강사, 수업의 목록과 정보 확인
- 수익 확인, 메달 수여, 정산 지급
- 회원가입 및 탈퇴, 수업 생성, 수정, 삭제 승인
- 카카오 채널 api를 사용해 1:1 채팅으로 문의를 해결
- 메인 화면에서는 인기 강사와 회원의 후기를 볼 수 있습니다.
- 강사는 수익에 따라 메달을 부여받으며, Gold 메달인 강사가 메인에 랜덤으로 추천됩니다.
- 회원 후기는 별점이 높은 순으로 나열됩니다.
- 카카오 로그인 API를 통해 회원가입 및 로그인합니다.
- 로그인 후 유저 페이지에서는 수업 목록과 찜 목록을 볼 수 있습니다.
- 하트를 눌러 찜 목록에 들어가 있는 수업을 확인하고 삭제할 수 있습니다.
- 내 수업 목록에서 아직 작성하지 않은 후기를 작성할 수 있습니다.
- 후기 사진을 올릴 수 있으며, 별점을 줄 수 있습니다.
- 별점은 강사의 점수에 반영됩니다.
- 유저는 지역과 카테고리를 설정하여 강사와 매칭할 수 있습니다.
- 강사의 정보와 프로그램, 가능한 시간을 확인하고 강사에게 작성된 회원 후기를 볼 수 있습니다.
- 유저는 가능한 요일, 시간대와 회차권을 선택하고 수업을 신청할 수 있습니다.
- Toss Payment API를 통해 결제 시스템을 구현하였습니다.
- 강사 회원가입은 관리자의 강사 검증이 필요하기 때문에 일반 회원가입으로 구현하였습니다.
- 강사가 회원 등록을 신청하면 관리자가 따로 이메일을 보내 경력과 자격증 증명, 범죄이력 등을 확인한 후 회원가입을 승인합니다.
- Redis로 이메일 인증을 구현하였습니다.
- 강사는 프로필 사진을 등록할 수 있고, 유저에게 공개됩니다.
- 아이디 비밀번호로 로그인합니다.
- 마이페이지에서 수업, 유저 등을 관리할 수 있습니다.
- 강사가 수업을 생성하면 관리자에게 신청이 전달되고, 관리자 승인 후 최종 생성됩니다.
- 수업 수정, 삭제 신청이 가능합니다.
- 강사는 수업 후 수업일지를 작성합니다. 수업 일지가 작성되면 회원의 회차권에서 1회가 차감됩니다.
- 회차가 모두 완료되면 수업 완료한 회원 목록으로 이동시킵니다.
- 강사는 가능한 지역과 시간을 저장할 수 있습니다. 강사 매칭 시 필터에 반영됩니다.
- 유저에게 받은 리뷰를 모아 볼 수 있고, 답글을 작성, 수정, 삭제할 수 있습니다.
- 유저가 결제한 금액은 강사의 정산금에 저장됩니다.
- 강사는 원하는만큼 정산 신청을 할 수 있습니다.
- 관리자가 확인 후 계좌에 입금하고 정산금 지급을 완료합니다.
- 강사는 프로필 정보를 수정하거나 탈퇴 신청을 할 수 있습니다.
- 유저의 수업 신청을 확인하고 카카오톡을 통해 연락하여 세부 사항을 논의할 뒤 수락하거나 거절할 수 있습니다.
- 강사가 승인한다면 수업의 유저목록에 추가되고, 거절한다면 유저의 결제가 환불됩니다.
- 주어진 아이디와 비밀번호로 로그인 합니다.
- 메인 페이지에서 유저와 강사 목록을 확인할 수 있습니다.
- 유저가 결제한 회차권을 부분, 전액 환불하거나 회차를 수정할 수 있습니다.
- 카카오 1:1 채팅을 통해 유저의 문의를 받고 환불을 진행하게 됩니다.
- 관리자가 금액만큼 입금한 뒤 사이트에서 회차권을 수정, 삭제합니다.
- 강사 정보(매출, 평점 등)를 확인하고 강사에게 메달을 수여할 수 있습니다.
- Gold 메달의 경우 메인 페이지에 인기 강사로 소개됩니다.
- 강사 신청, 회원 탈퇴 등을 승인, 반려합니다.
- 프로그램 신청, 수정, 삭제를 승인, 반려합니다.
- 강사의 정산 신청을 볼 수 있고, 정산금을 입금한 뒤 확인합니다.
- 카카오싱크를 통해 카카오 채널을 만들었습니다.
- 채털 메시지, 알림톡 등 다양한 기능을 사용할 수 있습니다.
- 1:1 채팅으로 유저의 상담 문의에 답변할 수 있습니다.
- 도커와 MySql, redis를 AWS EC2에 올려서 배포를 진행했습니다.
- Docker network로 각각의 컨테이너를 같은 네트워크로 묶어주었습니다.
- 서버가 계속 다운되는 오류가 있었는데 메모리 용량 때문이었고, NCP로 변경하여 진행했습니다.
- 도메인과 HTTPS 설정을 해주고 https://homegym.site 로 접속할 수 있었습니다.