인천대학교 정보기술대학 티켓팅 시스템을 위한 Spring Boot REST API
CodIN Ticketing API 는 인천대학교 정보기술대학의 다양한 이벤트(간식 나눔, 행사 등) 에 대한 티켓팅 시스템 을 제공 서버입니다.
- 이벤트 관리: 티켓팅 이벤트 생성, 조회, 수정, 삭제
- 사용자 프로필: 수령자 정보 관리 (학과, 학번)
- 티켓팅 참여: 실시간 티켓팅 참여 및 교환권 발급
- 전자 서명: 수령 확인을 위한 전자 서명 기능
- 관리자 기능: 이벤트 관리, 수령 확인, 통계
- 엑셀 다운로드: 참여자 정보 엑셀 내보내기
- Backend: Spring Boot 3.5.3, Spring Security, Spring Data JPA, SSE
- Database: MySQL 8.0
- MQ: Redis Stream
- Authentication: JWT
- Event: 티켓팅 이벤트 정보
- Participation: 이벤트별 참여자 정보 및 수령 상태
- Stock: 티켓팅 이벤트 재고 정보
Enum Class
- Campus: 캠퍼스 구분 (송도캠퍼스, 미추홀캠퍼스)
- Department: 학과 정보 (컴퓨터공학부, 정보통신공학과 등)
- CodIN Main API : https://github.com/CodIN-INU/BACKEND
GET /api/users: 유저 조회 엔드 포인트
GET /api/users/ticketing-participation: 유저 티켓팅 참여자 정보 조회PUT /api/users/ticketing-participation: 유저 티켓팅 참여자 정보 수정
- JWT 토큰 기반 인증
- JWT 토큰에서 User Email 추출 ->
SecurityContextHolder - SecurityUtils 클래스로 SecurityContextHolder 사용
- 유저 검증 과정에서
UserClientService를 호출해야함. - User Role:
USER: 일반 사용자 - 이벤트 조회, 티켓팅 참여MANAGER: 관리자 - 이벤트 관리, 수령 확인ADMIN: 최고 관리자 - 모든 권한
- JWT 토큰에서 User Email 추출 ->
-
도커 이미지 실행
./docker/codin-db/docker-compose.yml: MySQL, Redis 실행 도커 컴포즈 스크립트
-
환경 변수 설정
# .env.example 파일을 복사해 필요한 값들을 수정 cp .env.example .env