A full-stack gaming leaderboard system that enables users to:
- Submit scores
- View a dynamic leaderboard (Top 10)
- Check a player's rank
The backend is built with Java + Spring Boot, the frontend with Vue 3 + Quasar, and the system is fully integrated with PostgreSQL and New Relic APM for monitoring.
- ✅ Score submission API
- ✅ Top 10 leaderboard API
- ✅ Player rank lookup API
- ✅ PostgreSQL database with test data (10k users, 50k sessions)
- ✅ Full Vue 3 + Quasar frontend
- ✅ New Relic monitoring with real traffic
- ✅ Load testing with Python script
Load testing was done using a custom Python script simulate_load.py that:
- Submits 1000+ randomized scores across users
- Generates traffic to
/submitendpoint - Triggers live leaderboard and rank updates
New Relic was integrated using the Java Agent. Metrics observed:
- Application throughput
- Average response time
- Endpoint performance (
/submit,/top,/rank/{userId}) - Database activity
All monitoring visuals are stored in:
docs/newrelic-screenshots/
Click here to view the New Relic Dashboard
- Backend: Java 17, Spring Boot, JPA, PostgreSQL (Docker)
- Frontend: Vue 3, Quasar CLI, Composition API
- Monitoring: New Relic APM
- Testing: Postman, Python load script
gaming-leaderboard/
├── backend/ # Spring Boot backend
│ └── docker-compose.yml # PostgreSQL & pgAdmin
├── frontend/ # Vue + Quasar frontend
├── simulate_load.py # Load testing script
├── docs/
│ ├── newrelic-screenshots/ # New Relic APM screenshots
│ └── ui-screenshots/ # Gaming leaderboard UI screenshots
└── README.md # Project documentation (this file)
-
Start PostgreSQL with Docker:
cd backend docker-compose up -d -
Run backend with New Relic agent:
cd backend JAVA_OPTS="-javaagent:./newrelic/newrelic-agent.jar" ./mvnw spring-boot:run
-
Run backend without New Relic (alternative):
cd backend ./mvnw spring-boot:run -
Run Quasar frontend:
cd frontend quasar dev -
Run load script:
python simulate_load.py
Made with ❤️ by Mallikarjunaiah B M LinkedIn | vpmallikarjuna03@gmail.com | +91 7619413484