CodeAlarm is a full-stack web application that helps users track upcoming and past coding contests from major platforms, set real-time email reminders, and manage their contest participation. The project is built with a modern stack: Spring Boot for the backend, React.js for the frontend, and MySQL as the database.
- Contest Aggregation: Automatically fetches upcoming and past contests from LeetCode, Codeforces, and CodeChef.
- Real-Time Email Reminders: Users can set reminders for contests and receive real-time email notifications.
- User Management: Register, login, and manage your profile and reminders.
- Backend: Spring Boot (Java)
- Frontend: React.js (Vite)
- Database: MySQL
- Email: SMTP (for real-time reminders)
- APIs: Fetches contest data from LeetCode, Codeforces, and CodeChef
Contest-Tracker/
├── Backend/
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── jadhav/
│ │ │ │ └── contest_tracker/
│ │ │ │ ├── controller/
│ │ │ │ ├── model/
│ │ │ │ ├── repository/
│ │ │ │ ├── service/
│ │ │ │ └── ContestTrackerApplication.java
│ │ │ └── resources/
│ │ └── test/
│ ├── pom.xml
│ └── README.md
├── frontend/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── public/
│ ├── package.json
│ ├── vite.config.js
│ └── README.md
├── README.md
└── .gitignore
SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/contest_tracker
SPRING_DATASOURCE_USERNAME=your_db_user
SPRING_DATASOURCE_PASSWORD=your_db_password
JWT_SECRET=your_jwt_secret_key
SPRING_MAIL_HOST=smtp.example.com
SPRING_MAIL_PORT=587
SPRING_MAIL_USERNAME[email protected]
SPRING_MAIL_PASSWORD=your_email_passwordVITE_API_BASE_URL=http://localhost:8080/api- Java 17+
- Node.js 16+
- MySQL 8.0+
- Maven
-
Clone the repository:
git clone https://github.com/Prathamesh-2005/Code-Alarm.git cd Code-Alarm -
Setup Database:
CREATE DATABASE contest_tracker;
-
Backend Setup:
cd Backend # Configure your DB and email settings in application.properties or .env ./mvnw clean install ./mvnw spring-boot:run
The backend will start on
http://localhost:8080. -
Frontend Setup:
cd frontend npm install npm run devThe frontend will start on
http://localhost:3000.
POST /api/auth/register— Register a new userPOST /api/auth/login— Login and receive JWTGET /api/auth/profile— Get current user profile
GET /api/contests/upcoming— List all upcoming contestsGET /api/contests/past— List all past contests
GET /api/reminders— List user remindersPOST /api/reminders— Create a reminderDELETE /api/reminders/{id}— Delete a reminder
This project is licensed under the MIT License.
Prathamesh Jadhav
GitHub | LinkedIn
⭐️ If you like this project, give it a star!




