Welcome to the Pala Marathon website! This project aims to provide an online platform for participants to register for the marathon, process payments, and receive confirmation via email.
- User registration with personal details and medical questions
- Club membership validation with discount coupon code
- Payment processing via Razorpay
- Confirmation email sent upon successful registration
- User can download their registration ticket from the frontend
- Admin access for event organizers to view registration details
- Frontend: React, Vite
- Backend: Node.js, Express, MongoDB (Mongoose)
- Payment Gateway: Razorpay
- Email Notifications: Nodemailer
- Deployment: AWS Lightsail, Nginx, PM2
- Testing: Jest (to be implemented)
To set up the project locally, follow these steps:
-
Clone the Repository:
git clone https://github.com/tomsabu444/pala-marathon-website.git cd pala-marathon-website
-
Install Dependencies: Install the required dependencies for both the client and server using the command:
npm install npm run ci:all
-
Set Up Environment Variables: Create a
.env
file in theserver
andclient
directory and add your environment variables:server/.env client/.env
-
Start the Application: To run both the frontend and backend, use:
npm start
- Navigate to the frontend URL in your browser.
- Fill out the registration form with your details.
- If applicable, enter your club membership and coupon code.
- Complete the payment process.
- A confirmation email will be sent to your registered email address.
- You can download your registration ticket from the frontend.
Testing will be added later. To run existing tests (if any), use:
npm run test
You can run frontend and backend tests separately using:
npm run test:frontend
npm run test:backend
Contributions are welcome! If you would like to contribute, please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.