https://github.com/n3wzd/locaquest-backend-core
LocaQuest-Backend-Core
https://github.com/n3wzd/locaquest-backend-core
java junit kafka mysql redis spring spring-boot
Last synced: 2 months ago
JSON representation
LocaQuest-Backend-Core
- Host: GitHub
- URL: https://github.com/n3wzd/locaquest-backend-core
- Owner: n3wzd
- Created: 2025-01-12T10:29:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-07T09:34:23.000Z (over 1 year ago)
- Last Synced: 2025-03-07T10:31:09.591Z (over 1 year ago)
- Topics: java, junit, kafka, mysql, redis, spring, spring-boot
- Language: Java
- Homepage:
- Size: 290 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# LocaQuest - Backend - Core
**LocaQuest**는 Redis와 Kafka를 활용한 실시간 데이터 분석을 통해 사용자에게 경험치, 레벨, 도전 과제 등 게임화된 요소를 제공하고, 마이크로서비스 아키텍처로 높은 성능을 구현하는 위치 기반 게임화 플랫폼입니다.
## Features
### 1. 실시간 데이터 처리
- **Redis**: 데이터 캐싱 시스템으로 사용합니다.
- **Kafka**: 서버 간 실시간 데이터 스트리밍 및 메시징 시스템으로 사용합니다.
### 2. 게임화 요소
- **경험치 시스템**: 사용자의 활동에 따른 경험치, 걸음수, 이동 거리를 날짜 별로 관리합니다.
- **도전 과제 시스템**: 사용자 활동에 따른 도전 과제 달성 여부와 달성 날짜를 저장합니다.
### 3. 사용자 관리
- **사용자 관리 API**: 회원가입, 로그인, 프로필 수정 등 REST API를 제공합니다.
- **OAuth 2.0 기반 인증**: JWT 토큰을 사용하여 인증 및 권한 부여를 처리합니다.
- **이메일 인증**: 회원 가입 및 비밀번호 변경시, 이메일 인증을 요구하여 보안을 높입니다.
- **프로필 이미지 업로드**: 사용자가 직접 프로필 사진을 업로드할 수 있습니다.
### 4. 데이터베이스 및 서버
- **MySQL**: 사용자 정보, 활동 내용, 도전 과제 등을 MySQL에 저장합니다.
- **로깅 시스템**: 서버의 활동 로그 기록을 통해 문제 발생 시 추적 및 유지보수를 용이하게 합니다.
## Stack
- **Spring Boot**
- **Spring Security**
- **Spring Data JPA**
- **Java**
- **Redis**
- **Kafka**
## Structure
```
src/
├── annotation/ # 커스텀 어노테이션
├── component/ # 동적 유틸리티 싱글톤
├── config/ # 설정 (Security, DB, CORS 등)
├── constant/ # 상수 데이터
├── controller/ # 클라이언트 요청 응답
├── dto/ # Data Transfer Object 정의
├── exception/ # 예외 처리 클래스
├── lib/ # 외부 라이브러리 래퍼
├── model/ # 엔티티, 도메인 모델
├── repository/ # DB 상호작용
├── service/ # 비즈니스 로직
├── util/ # 정적 유틸리티 함수
└── validator/ # 커스텀 유효성 검사
```