MS Marathon is a full-stack marathon event management application built with the MERN stack + Firebase Authentication. It allows users to create and manage marathon events, register as participants, view statistics, and interact through a secure and dynamic dashboard.
π Live Website: https://ms-marathon.netlify.app/
- π Create, update, and delete marathon events
- π₯ Register and manage participant information
- π Secure authentication using Firebase with role-based access
- π Dashboard to track total marathons and registrations
- π Search and filter marathon and participant data
- β Firebase token-based protected routes
- β‘ Fast and responsive UI with TailwindCSS & DaisyUI
| Package | Version |
|---|---|
| React | ^19.1.0 |
| Vite | ^6.3.5 |
| Tailwind CSS | ^4.1.8 |
| DaisyUI | ^5.0.43 |
| React Router | ^7.6.1 |
| Axios | ^1.9.0 |
| SweetAlert2 | ^11.22.0 |
| Lottie React | ^2.4.1 |
| React Hot Toast | ^2.5.2 |
| React Countdown Timer | ^3.2.1 |
| Swiper | ^11.2.8 |
| React Datepicker | ^8.4.0 |
| React Helmet Async | ^2.0.5 |
| React Icons | ^5.5.0 |
| LDRS (Loaders) | ^1.1.7 |
| Package | Version |
|---|---|
| Node.js | β₯18.x |
| Express | ^5.1.0 |
| MongoDB (native) | ^6.17.0 |
| Firebase Admin | ^13.4.0 |
| Dotenv | ^16.5.0 |
| CORS | ^2.8.5 |
| Nodemon | ^3.1.10 |
git clone https://github.com/tahmid122/m11-assignment11-client.git
cd ms-marathon-client
npm install
npm run devgit clone https://github.com/tahmid122/m11-assignment11-server.git
cd ms-marathon-server
npm installCreate a .env file in the root:
PORT=5000
DB_USER=your_db_username
DB_PASS=your_db_password
SERVICE_KEY=your_firebase_service_account_key_in_base64
Then run:
npm start| Method | Endpoint | Description |
|---|---|---|
| GET | /marathons | Get marathons for a specific user |
| GET | /limited-marathons | Get limited number of marathons |
| GET | /all-marathons | Get all marathons |
| GET | /specific-marathons | Get details of a specific marathon |
| POST | /marathons | Create new marathon |
| PUT | /marathons | Update marathon details |
| DELETE | /marathons | Delete a marathon |
| GET | /participants | Get participant details |
| GET | /marathon/participants | Get participants details for marathon |
| POST | /participants | Register as a participant |
| PUT | /participants | Update participant info |
| DELETE | /participants | Delete participant registration |
| GET | /total-numbers | Get total marathon & registration data |
- Firebase Admin SDK is used for verifying tokens and securing routes.
- Middleware functions
verifyTokenandverifyEmailprotect sensitive endpoints.
- Name: Tahmid Alam
- GitHub: @tahmid122
- Email: mdtahmidalam122@gmail.com