QCONTEST is a backend system built using Core Java that simulates a coding contest platform similar to CodeChef or LeetCode. It allows users to create contests, participate, solve questions, and view leaderboards.
The project follows clean architecture principles and uses the Command Design Pattern to handle different operations.
- 👤 User Management (Create Users)
- 🏆 Contest Creation & Management
- 🙋 Participate / Withdraw from Contests
- ❓ Question Management with Difficulty Levels
- 📊 Leaderboard Ranking System
- 🧩 Command Pattern Implementation
- 🧪 Unit Testing with JUnit
- Language: Java (Core Java)
- Build Tool: Gradle
- Architecture: Layered Architecture
- Design Pattern: Command Pattern
- Testing: JUnit
src/
├── main/java/com/crio/qcontest/
│ ├── commands/ # Command Pattern classes
│ ├── entities/ # Models (User, Contest, Question)
│ ├── repositories/ # Data storage layer
│ ├── services/ # Business logic
│ └── App.java # Entry point
│
├── test/java/com/crio/qcontest/
│ ├── commands/ # Command tests
│ └── services/ # Service tests
git clone https://github.com/code-with-nabeel/qcontest-backend.git
cd qcontest-backend
./gradlew build
./gradlew run
- Implemented Command Design Pattern for scalable operations
- Designed modular backend architecture using Core Java
- Built contest logic including participation and leaderboard ranking
- Wrote unit tests for services and commands
- Convert into Spring Boot REST API
- Add database (MySQL/PostgreSQL)
- Add authentication (JWT)
- Add web UI (React)
Nabeel Khan GitHub: https://github.com/code-with-nabeel
If you like this project, give it a ⭐ on GitHub!