Table of Contents
- About the Project
- Built with
- Getting started
- Prerequisites
- Project structure
- List of APIs
- Contribute
Our idea is to create a Gym / sport club slot booking application for employees. The application will be booking & subscription platform that enables employees to browse and book fitness & wellness services across partnered gyms / sports clubs in India (or any local campus for now) making it a holistic destination for all things fitness and sports.
YouTube video explaining the project as on 23rd May, 2021 (may not include newly updated features): https://youtu.be/oyxZlfoSnPs
This web application uses the following technology
To run this application locally
-
Clone the repo
-
Install NPM packages in client directory and server directory
cd client npm install cd ../server npm install
-
Create a firebase firestore database with collection name
event
-
Add your firebase service account API key in
server/serviceAccountKey.json
-
Add your Stripe API keys in
/client/.env
file.
You need to have the following Prerequisite to get started
- NodeJS
- Firebase Account
- Stripe test API
Folder Path | Description |
---|---|
client | This directory contains all the files needed for Client Side Rendering. |
client/public | This directory contains all static content for the web app |
client/src | This directory contains all the dynamic content for the web app |
client/assets | This directory contains CSS and images required for each component of the web app |
client/components | This directory contains all the components for each web page |
client/timezones | This file contains all the strings of timezone as per the latest IANA database |
server | This directory contains all the files needed for server side rendering |
server/routes | This directory contains all the files to routes to API Calls |
server/staticConfig | This file contains all the static configuration variables used throughout the backend |
API Routes | Parameters | Description |
---|---|---|
/freeSlots | Date, Timezone | Return all the free slots available for a given date converted to whatever timezone we pass. |
/createEvent | DateTime, Duration | All the data passed will create the event and store that into the firestore document, if the event already exists for that time you need to return status code 422 or else just store it and return with status 200. |
/getEvents | startDate, endDate | Return all the events between given StartDate & EndDate |
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request