ReactJS based Web Application to book slots for Gym. This app was created and hosted on AWS for Gym at Shiv Nadar University to replace manual booking every sunday
- FrontEnd: ReactJS
- BackEnd: Python FastAPI https://github.com/rahul-madaan/phone-one-server
- Database: MySQL
- Hosting: AWS Amplify
- Users can book a slot for 1 week
- Admin can control the number of slots availble at a time
- To avoid race condition, once user has clicked on select slot button it is temporarily reserved for 15 minutes
- User can mark attendance using the web app
- Only one user can mark attendance for a device
- User needs to be present inside the gym to mark attendance (Collects location data)
- Admin can contol the number of missed days after which user will not be allowed to book slot for the next week.
- Install Node and NPM - Follow steps here: https://radixweb.com/blog/installing-npm-and-nodejs-on-windows-and-mac
- Download and install MySQL - Follow steps here: https://www.javatpoint.com/how-to-install-mysql
- Clone the repo using
git clone https://github.com/rahul-madaan/IDmyPhone.git
command - Open the project in IntelliJ Idea(preferred)
- Open terminal/command prompt and cd into the project folder
- Run commands
npm install
andnpm start
(npm install will take time for initial setup) - Start MySQL server on your machine.
- Run create schema script from
./SQL scripts
- Populate database with seed data using the
./SQL scrips/data
folder commands. - Run https://github.com/rahul-madaan/phone-one-server python FastAPI on local machine (port 8000).
- Run command
npm start
to start the ReactJS server on port 3000 - Open http://localhost:3000/ on your browser.