Skip to content

A full-stack application for booking tours that combines a RESTful API and server-side rendering using Node.js, Express, and MongoDB.

License

Notifications You must be signed in to change notification settings

m7moudGadallah/Tour-Booking-App-using-express-mongoDB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Tour Booking APP Using Express & MongoDB

A full-stack application for booking tours that combines a RESTful API and server-side rendering using Node.js, Express, and MongoDB.

Table of content

Introduction

Welcome to the Tour Booking App! This project provides both a RESTful API for programmatic access and server-side rendering using Pug for a seamless user experience. It is built using Express.js, Node.js, and MongoDB as the database. This application for users who want to book tours, leave reviews, and interact with the platform, as well as administrators and lead tour guides who need specialized dashboards for management.

💡Note: This project is currently a work in progress.

↑ Top

key Features

  • Authentication & Authorization: Secure user authentication and authorization system.
  • Exploring Tours (client): Users can browse and search for available tours.
  • Booking Tours (client): Users can book tours they are interested in.
  • Rating and Reviewing Tours: Clients can leave reviews and ratings for tours they've booked.
  • Payment for Booked Tours: Integration with Stripe for secure payment processing.
  • Admin Dashboard: A powerful admin dashboard for managing tours, bookings, reviews, and users.
  • Lead-Tour-Guide Dashboard: Specialized dashboard for lead tour guides displaying their tours and relevant statistics.

↑ Top

Technologies

  • Node.js
  • Express.js
  • MongoDB (Database)
  • Mongoose (ODM)
  • Pug (for server-side rendering)
  • JWT (JSON Web Tokens)
  • Stripe (for payments)
  • Jest (for unit and integration testing)
  • Supertest (for testing HTTP endpoints)

↑ Top

Getting Started

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js installed.
  • MongoDB installed and running.
  • Git installed (if you plan to clone the repository).

↑ Top

Installation

  1. Clone the repository:

    git clone https://github.com/m7moudGadallah/Tour-Booking-App-using-express-mongoDB.git

  2. Navigate to the project directory:

    cd app

  3. Install the project dependencies:

    npm install

  4. Rename .env.env to .env and set the actual values for your environment variables in the .env file.

  5. Start the application in development mode:

    npm run start:dev

The application should now be accessible at http://localhost:3000.

  1. To run the application in production mode, use:

    npm run start:prod

↑ Top

Testing

We ensure the reliability of this application through unit and integration testing using Jest and Supertest.

Running Tests

  1. Ensure that you have installed all project dependencies, including development dependencies:

    npm install

  2. Run the unit and integration tests:

    npm test

Test Coverage

We maintain a high level of code coverage to ensure that our application functions correctly and securely. You can view the test coverage report by running:

npm run test:coverage

The coverage report will be available in the coverage directory.

↑ Top

Designs and Documentation

Designs and documentation for this project can be found in the docs directory.

↑ Top

License

This project is licensed under the MIT License - see the LICENSE file for details.

↑ Top

About

A full-stack application for booking tours that combines a RESTful API and server-side rendering using Node.js, Express, and MongoDB.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published