Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rijoksd/turfspot
A turf booking app using mern stack
https://github.com/rijoksd/turfspot
cloudinary daisyui express fullstack-development javascript mern-stack nodemailer qrcode-generator react real-time tailwindcss turf turf-booking
Last synced: about 1 month ago
JSON representation
A turf booking app using mern stack
- Host: GitHub
- URL: https://github.com/rijoksd/turfspot
- Owner: RijoKsd
- Created: 2024-07-25T17:47:40.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-29T05:56:40.000Z (4 months ago)
- Last Synced: 2024-08-29T13:52:42.382Z (4 months ago)
- Topics: cloudinary, daisyui, express, fullstack-development, javascript, mern-stack, nodemailer, qrcode-generator, react, real-time, tailwindcss, turf, turf-booking
- Language: JavaScript
- Homepage: https://turf-spot.vercel.app
- Size: 6.63 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TurfSpot
TurfSpot is a comprehensive turf booking application with three modules: Admin, Owner, and User. This app allows users to view and book turf grounds, owners to manage their turfs and bookings, and admins to oversee all activities within the platform.
## Features
### User Module
- **Browse Turfs**: Users can view various turfs, check their details, and select time slots for booking.
- **Slot Booking**: Purchase time slots using Razorpay. After booking, users receive a confirmation email with all the booking details, including price, turf name, start time, end time, and a QR code containing all these details.
- **Rate Turfs**: Users can provide ratings for the turfs they have booked.
- **Become Owner**: Users can apply to become turf owners by filling out a form. Admins will review the application and send an approval or rejection email accordingly.### Owner Module
- **Turf Management**: Owners can add new turfs, manage their existing turfs, and view all related booking details.
- **Dashboard**: Owners have access to a dashboard where they can view transactions and booking statistics in a graphical format.
- **Review Management**: Owners can view and manage reviews left by users for their turfs.### Admin Module
- **Owner Requests**: Admins can approve or reject requests from users who wish to become owners. If approved, the user will receive an email with a registration link to the owner section.
- **User and Owner Management**: Admins can view all users and owners registered on the platform.
- **Turf Management**: Admins can view all turfs listed by owners and manage them as necessary.
- **Transaction Overview**: Admins have access to all transactions on the platform and can view transaction data on a monthly basis in graph format.## Technologies Used
- **Frontend**: React, Tailwind CSS, DaisyUI, Redux
- **Backend**: Node.js, Express.js
- **Database**: MongoDB
- **Payments**: Razorpay
- **Image Hosting**: Cloudinary## Installation
1. Clone the repository
```bash
git clone https://github.com/RijoKsd/TurfSpot.git
```
2. Install dependencies for both client and server
```bash
cd TurfSpot
npm install
cd server
npm install
cd ../client/owner
npm install
cd ../user
npm install
```
3. Create a `.env` file in the `server` directory and add the following environment variables:```env
PORT = your_port
MONGO_URI=your_mongo_uriCLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secretOWNER_URL = your_owner_url
USER_URL = your_user_urlEMAIL = your_email for sending emails
PASSWORD = your_password for sending emails(you will get from app password in google account)RAZORPAY_KEY_ID = your_razorpay_key_id
RAZORPAY_SECRET_KEY = your_razorpay_secret_key
JWT_SECRET = your_jwt_secret```
4. Run the application
```bash
# To run the backend
cd server
npm run server# To run the owner client
cd ../client/owner
npm run dev# To run the user client
cd ../user
npm run dev
```## Contributing
1. Fork the repository
2. Create a new branch (`git checkout -b feature/your-feature`)
3. Commit your changes (`git commit -m 'Add some feature'`)
4. Push to the branch (`git push origin feature/your-feature`)
5. Create a new Pull Request## License
This project is licensed under the MIT License.
## Contact
For any inquiries or questions, please contact us at [[email protected]](mailto:[email protected]).