Welcome to the Marathon Management System! This platform helps organize and manage marathon events by connecting event organizers with participants. Users can create marathons, sign up for events, and manage their registrations through a personal dashboard.
- User Authentication: Email/password-based login and registration with Google or GitHub login options.
- Add/Update/Delete Marathon Events: Organizers can manage marathon events, including creating new ones, updating details, or deleting events.
- Search Marathons: Participants can browse and apply for marathons based on different filters like location and date.
- Dynamic Dashboard: Personalized dashboard for users to manage their marathon registrations and view their applied marathons.
- Countdown Timer: Shows the time remaining until the marathon begins.
- Mobile-First Design: Fully responsive design optimized for mobile, tablet, and desktop views.
- JWT Authentication: Secure user authentication using JWT tokens for private routes.
- Sorting and Pagination: Marathons can be sorted by creation date and displayed in paginated cards.
-
Frontend:
- React.js
- Tailwind CSS
- React Router
- React-Countdown-Circle-Timer
-
Backend:
- Node.js
- Express.js
- MongoDB (via MongoDB Atlas)
- JWT for authentication
-
Hosting:
- Firebase (for frontend hosting)
- Vercel (for backend API hosting)
To run the project locally, follow the steps below.
- Node.js and npm installed
- MongoDB account and Firebase setup
- Vercel CLI for backend deployment