Welcome to the Booking System! This project is designed to facilitate easy and efficient booking management for various types of businesses, with a focus on local businesses, using a robust and scalable technology stack. It includes comprehensive features for user authentication, business and booking management, payment integration, and more.
-
User Registration and Authentication
- Implement a user registration and login system using JWT (JSON Web Token).
-
User Roles
- Define different roles such as Admin, Business Owner, and Customer.
- Each role has access to their respective dashboard:
- Business Owners have access to their own business dashboard.
- Customers have access to their own customer dashboard.
- Admins have access to their own admin dashboard.
-
Business Management
- Allow business owners to register their businesses.
- Enable business profile management including business hours, services offered, and pricing.
- Provide business owners the ability to track customer bookings, including date, day, time, status, and payment status.
- Allow business owners to view and reply to customer reviews.
-
Booking Management
- Enable customers to view available businesses and book services.
- Provide booking confirmation and cancellation features.
- Include a calendar view and available hours for customers to manage bookings.
-
Payment Integration
- Integrate Stripe for customers to make payments.
-
Reviews and Ratings
- Allow customers to leave reviews and ratings for businesses.
-
Admin Dashboard
- Monitor all registered businesses, display user accounts, and track bookings.
- Generate reports and analytics.
- Node.js installed
- PostgreSQL installed
- A Stripe account for payment integration
-
Clone the repository:
git clone https://github.com/chrispsang/Booking-System.git cd Booking-System/booking-system-backend
-
Install dependencies:
npm install
-
Set up the environment variables in a
.env
file:STRIPE_SECRET_KEY= DATABASE_HOST= DATABASE_PORT= DATABASE_USERNAME= DATABASE_PASSWORD= DATABASE_NAME=
-
Run the backend server (default port 3000):
npm run start
-
Navigate to the frontend directory:
cd ../booking-system-frontend
-
Install dependencies:
npm install
-
Set up the environment variables:
- For development: Create a
.env.development
file with the following content:REACT_APP_API_URL=http://localhost:3000 REACT_APP_STRIPE_PUBLIC_KEY=
- For development: Create a
-
Run the frontend server (default port 3001):
npm start
You can access the frontend at http://localhost:3001 for development and https://booking-system-muqm.onrender.com for production. The backend can be accessed at http://localhost:3000 for development and https://booking-system-backend-i7qd.onrender.com for production.
To test payments with Stripe, use the following test card details:
- Card Number: 4242 4242 4242 4242
- Expiry Date: Any future date
- CVC: Any 3 digits
- ZIP Code: Any 5 digits
- Frontend: https://booking-system-muqm.onrender.com
- Backend: https://booking-system-backend-i7qd.onrender.com