Overview
Pure‑Java Spring Boot REST API that lets travellers mix & match flights, stays and activities—think PCPartPicker for itineraries. The project secured 1st place at the 2025 Singtel Information Systems & Programming Awards.
Tech Stack
- Java 17 + Spring Boot 3 (Web, Data JPA, Security JWT)
- Gradle (Groovy DSL) build with ModelMapper & MapStruct
- MySQL 8 backend (latest schema scripts in
sql_docs_v*
) - Dotenv‑java for environment configs
Infrastructure & Deployment
- On‑prem dev box — Debian laptop running MySQL + API for early demos.
- Raspberry Pi 3 router/AP — isolated test subnet bridged to school LAN.
- GCP migration — Compute Engine VM, hardened SSH, Java 17 + MySQL; deployed via Gradle and systemd.
- Everything wired together with
vim
,tmux
,scp
and done through SSH.
Key Features
- JWT login & role‑based auth (
/login
) - Itinerary CRUD + activity recommendations
- E‑commerce style cart, checkout & rating logic
- Global exception handler for clean JSON errors
Running Locally
- Clone:
git clone https://github.com/rpeky/50.001_1D_backend.git
cd 50.001_1D_backend/api
- Edit
src/main/resources/application.properties
(DB creds) - Launch:
./gradlew bootRun