Skip to content

야놀자 파이널 프로젝트 쿨피스팀의 백엔드 레포지토리입니다.

Notifications You must be signed in to change notification settings

CoolPeace-yanolza/backend

Repository files navigation

사장님 비서ya - B2B Self-coupon Backoffice 서비스

Logo

사장님 비서 ya

GitHub contributors GitHub Actions Workflow Status API site

쿨피스 팀의 JAVA Spring Boot 기반 REST API 서버 개발용 백엔드 레포지토리입니다.

배포된 API 서버 / 데모 웹사이트

🧑‍🤝‍🧑 BE 팀 조원

프로필 이름 역할
avatar 권주환 팀장, 쿠폰 대시보드, Batch, 정산 관리
avatar 김종훈 데이터 관리 & 생성, 숙박, 객실 , 인프라
avatar 한상우 시큐리티(로그인,회원가입), 쿠폰 CRUD , 인프라

📝 프로젝트 요약

cool-peace-website.png

야놀자에 등록된 숙박업소 사장님들이 이용할 수 있는 셀프 쿠폰 발급 서비스입니다.

이용자(숙박업소 사장님)는 쿠폰을 조회,발급,수정,삭제,상태변경을 할 수 있으며, 사용된 쿠폰의 정산 내역도 확인할 수 있습니다. 또한, 대시보드(메인)화면에서 사용자는 다양한 쿠폰에 대한 정보들을 확인해볼 수 있습니다.

⭐️ 핵심 기능

회원

  • 숙박업소 사장님들은 야놀자에 등록된 계정으로 회원가입을 할 수 있습니다.
  • 로그인 시간에 만료 시간을 두어 일정 시간이 지나면 서비스 사용을 위해 재로그인을 해야 합니다.
  • 아이디와,비밀번호를 통하여 인증을 진행하며 일치하지 않을 경우 서비스 사용을 할 수 없습니다.

쿠폰

  • 사용자는 쿠폰을 다양한 상태 값으로 발급할 수 있습니다.
  • 사용자가 발급한 쿠폰들을 조회할 수 있습니다.
  • 쿠폰 조회 화면에서 쿠폰 수정 및 삭제를 할 수 있습니다.

정산

  • 사용자는 지난달 사용된 쿠폰의 정산금액, 이번달 정산 예정 금액을 조회할 수 있습니다.
  • 날짜를 입력하여, 원하는 날짜의 과거 정산내역을 조회할 수 있습니다.

대시보드

  • 쿠폰,예약,정산에 대한 일별 통계 데이터, 월별 통계 데이터, 연도별 통계 데이터, 누적 데이터와 같은 데이터들을 확인할 수 있습니다.
  • 같은 지역구, 다른 숙소들의 다운로드가 많은 쿠폰, 평균 쿠폰 사용량과 같은 정보들을 확인할 수 있습니다.

🚀 프로젝트 일정

프로젝트 기간 : 2024년 1월 2일 ~ 2024년 1월 29일

gantt.png

🛠️ 개발 환경

  • 자바 버전 : 17
  • 스프링 버전 : Spring Boot 3
  • 데이터베이스 : Mysql, Redis (+ docker-compose)
  • 문서화 도구 : RestDocs + Swagger UI
  • 주요 의존성 (자세한 내용은 build.gradle을 참고해주세요!)
    • Validation
    • Security
    • Batch
    • Data-JPA
    • Data-Redis
    • QueryDSL

✨실행환경 설정 방법

아래 실행환경 설정은 Java 17 버전docker가 개인 개발 환경에서 설치되어 있다는 가정 하에 작성되었습니다.

  1. .env 파일을 만들어야 합니다.

env 파일은 다음 env 예제 파일(.env.example)의 형식을 참고해주세요.

# MYSQL 설정
# !주의: USERNAME에 root를 입력하시면 안됩니다. root 외의 다른 이름을 입력해주세요.
MYSQL_USER=<개인 개발 환경의 MYSQL DB username>
MYSQL_PASSWORD=<개인 개발 환경의 MYSQL DB password>
MYSQL_VOLUME_PATH=./bin/mysql # MySQL 데이터를 저장할 개인 개발 환경의 경로
MYSQL_URL=localhost # 개인 개발 환경에서 사용할 MySQL URL
MYSQL_PORT=3306 # 개인 개발 환경에서 사용할 MySQL PORT
# JWT 설정
JWT_SECRET_KEY=<your-jwt-secret-key> # BASE64로 인코딩된 JWT 시크릿 키
JWT_ACCESS_EXPIRATION=36000000 # 액세스 토큰의 만료시간 (기본 1시간)
JWT_REFRESH_EXPIRATION=864000000 # 리프레시 토큰의 만료시간 (기본 24시간)
# Redis 설정
LOCAL_REDIS_VOLUME_PATH=./bin/redis # REDIS 데이터를 저장할 개인 개발 환경의 경로
LOCAL_REDIS_PORT=6379 # 개인 개발 환경에서 사용할 REDIS PORT
  1. docker compose를 사용하여 mysql과 redis 데이터베이스 환경을 만들어야 합니다.

인텔리제이의 docker plugin 기능을 사용하시거나, 다음 명령어를 입력해서 데이터베이스 환경을 구성하세요.

docker compose up -d

⚙ API 문서

API 문서는 데모 웹사이트 API 서버에서 확인해 보실 수 있습니다. 또는 프로젝트를 다운로드 받으신 후 서버를 구동한 뒤 테스트 진행 후 로컬 Swagger 사이트에서도 확인해 보실 수 있습니다.

# 사전에 실행환경 설정을 한 상태여야 합니다.
./gradlew build
./build/libs/coolPeace-0.0.1-SNAPSHOT.jar

# 이후 아래 웹사이트 접속
# http://localhost:8080/swagger-ui/index.html

📐 ERD 설계도

erd.png

🏗 인프라 구조

infra.png

About

야놀자 파이널 프로젝트 쿨피스팀의 백엔드 레포지토리입니다.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages