Skip to content

Jeong-Ryeol/BeautiFlow_BE

 
 

Repository files navigation

BeautiFlow_BE

주요 기능

인증 및 유저 관리

  • Kakao OAuth2 기반 JWT 로그인
  • 고객 / 디자이너 / 사장님 역할(Role) 분리
  • 샵별 전용 로그인 링크로 매장/디자이너 단위 로그인 처리
  • OAuth 콜백 → loginKey(단기 Redis) → 프론트 교환 → 일회성 삭제 흐름 적용

실시간 채팅 시스템

  • STOMP 기반 WebSocket
  • Redis Pub/Sub로 멀티 서버 브로드캐스트
  • 기능: 채팅방 생성/입장/나가기/재입장, 실시간 메시지, 참여자 목록 반영
  • 메시지 템플릿 자동 전송 지원

예약 시스템

  • 임시 예약 → 확정 예약의 2단계 구조
  • 하나의 통합 API로 다중 요청 처리
  • Redis 분산 락으로 시간/디자이너 단위 예약 충돌 방지

알림 시스템

  • 조건 기반 예약/채팅 알림
    • 예: 읽지 않은 메시지 1시간 이상 시 SNS 알림
    • 채팅방 생성 시 자동 환영 메시지
    • 예약 전/후 시점에 템플릿 자동 발송

고객 관리 & 메시지 템플릿

  • 고객 리스트, 고객별 채팅/예약 히스토리 조회
  • 사용자 그룹(VIP, 자주 방문 등) 기반 그룹 메시지 발송
  • 예약 조건·시점(N일 전/후) 템플릿 자동/수동 발송

아키텍처 개요

image

내가 구현한 기능 (정원렬)

예약 관리 API

  • 날짜 기반 예약 리스트 조회 (페이징)
  • 월별 예약 리스트 조회 (페이징)
  • 예약 상세 조회
  • 예약 상태 변경 API

고객 관리 API

  • 고객 상세 조회 / 정보 수정 / 삭제
  • 고객 그룹 목록 조회
  • 시술별 고객 조회
  • 디자이너별 고객 리스트 조회
  • 예약 상세 조회 시 고객 자동 등록 기능

커스텀 그룹 시스템

  • 커스텀 그룹 CRUD API
  • 시스템 기본 그룹 자동 초기화 컴포넌트

엔티티 설계

  • 디자이너-고객 관계 매핑 엔티티 (DesignerCustomer)
  • 복합키 클래스 (DesignerCustomerId)

기술 스택

  • Language/Framework: Java 17, Spring Boot 3.x, Spring Security, Spring Data JPA
  • Realtime: STOMP over WebSocket, Redis Pub/Sub
  • Storage: RDBMS (Prod: RDS), Redis
  • Build/Deploy: Gradle, GitHub Actions, systemd, Nginx, EC2
  • Observability: Micrometer, Prometheus, Discord 알림

Members

Backend Backend Backend Backend Backend

이동준

장수연

정원렬

정성훈

황지은

About

미용실 예약·채팅·고객관리 플랫폼 백엔드 (Spring Boot + Redis + WebSocket)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 98.6%
  • Shell 1.4%