This project is a full-stack web application that allows users to book car services online. Built with Node.js as the backend framework, Handlebars (HBS) as the view engine, and Bootstrap for dynamic and responsive design, this application provides a seamless experience for users to book specific services on desired dates and times. The project also includes user authentication, an admin dashboard to manage bookings and user information, and a contact form for users to get in touch with the service owner.
- Service Booking: Users can book specific car services on a selected date and time.
- User Authentication: Users can register, log in, and log out securely.
- Admin Dashboard: Admins can view booking details and user information.
- Contact Form: Users can send messages or inquiries directly to the service owner.
- Responsive Design: The application is fully responsive, thanks to Bootstrap, ensuring it works well on all devices.
- Backend: Node.js, Express.js
- View Engine: Handlebars (HBS)
- Frontend: HTML, CSS, Bootstrap
- Database: MySQL with Sequelize ORM
- Authentication: JSON Web Tokens (JWT)
- Emailing: Nodemailer for sending emails
- Environment Management: dotenv for managing environment variables
- Cookie Parsing: cookie-parser for handling cookies
The following libraries and packages are used in this project:
"cookie-parser": "^1.4.6"- For parsing cookies in the application."dotenv": "^16.0.1"- For loading environment variables from a.envfile."express": "^4.18.1"- The web framework used for routing and middleware."hbs": "^4.2.0"- Handlebars view engine for rendering HTML templates."jsonwebtoken": "^8.5.1"- For creating and verifying JSON Web Tokens used in user authentication."mysql2": "^2.3.3"- MySQL client for connecting and querying the MySQL database."nodemailer": "^6.7.5"- For sending emails, such as contact form submissions."sequelize": "^6.20.1"- Promise-based ORM for MySQL, handling data models and queries."sequelize-cli": "^6.4.1"- CLI tool for Sequelize to manage migrations and models.
To get a local copy up and running, follow these simple steps.
- Node.js (v14 or higher)
- MySQL Database
git clone https://github.com/yourusername/car-service-booking.gitcd Amazing-Car-Company
npm install
PORT=3000
DB_HOST=your_db_host
DB_USER=your_db_user
DB_PASSWORD=your_db_password
DB_NAME=your_db_name
JWT_SECRET=your_jwt_secret
EMAIL_HOST=your_email_smtp_host
EMAIL_PORT=your_email_smtp_port
EMAIL_USER=your_email_address
EMAIL_PASS=your_email_password
npx sequelize-cli db:migrate
Node server
http://localhost:4000
- User Registration: Sign up to create an account.
- Login: Log in using your credentials.
- Book a Service: Select a service, date, and time to book.
- Admin Dashboard: Admin users can view all bookings and user details.
- Contact Form: Submit inquiries or messages via the contact form.
Contributions are welcome! Feel free to open issues or submit pull requests to contribute to the project.
This project is licensed under the MIT License - see the LICENSE file for details.
- Facebook-Talha khan
- Instagram-Talha khan
- Linkedin-Talha khan
- Github - Talha Khan
- Frontend Mentor - @Talhakhan-Developer
- Twitter - @i_am_Talhakhan