This web application allows users to schedule appointments with consultants. It provides user-facing features for booking appointments and consultant-facing features for managing availability. The application is built using the following technology stack:
- HTML
- CSS
- React
- Node.js
- MySQL
- Users can view a calendar that displays all days of the month with available time slots for appointments. The calendar provides an easy-to-understand view of the entire month.
- Users can select an available time slot and book an appointment with a consultant.
- Upon booking confirmation, the application sends an email to the user confirming the appointment details.
- An event is automatically created in the consultant's Google Calendar upon successful booking, and the user is added as a guest to the event to receive event notifications.
- Consultants have an interface to set their availability, including defining working hours, breaks, and days off.
To run this web application on your local machine, follow these steps:
-
Clone the repository to your local machine.
-
Install the necessary dependencies for both frontend and backend.
- client
- npm install
- cd ../server
- npm install
- Configure the MySQL database:
- Create a MySQL database and import the schema provided in the
database.js
file.
- Set up environment variables:
- Create a
.env
file in theserver
directory and configure it with your database connection details, Google Calendar API credentials, and email service credentials.
-
Start the backend server: with cmd
npm start
-
Start the frontend: with cmd
npm start
-
Access the web application in your browser at
http://localhost:3000
.