Skip to content

Tours project server: Node.js server applying MVC architecture, utilize express for routing and middleware implementation, server-side rendering, MongoDb NoSQL implementation. Authentication through best practices encryption and cookie sessions. Data modeling and design. Geo-spatial aggregation pipelines and query.

Notifications You must be signed in to change notification settings

panch8/tours-server

Repository files navigation

Tour e-commerce. Server & Site.

Lovely project to implement every Node js feature i've learned. App running locally.

Clone the main branch repo and run:

  • npm install to download all dependencies.
  • npm start to run server with nodemon.
  • npm run watch:js to run parcel bundler for a dev bundle or npm run build:js for a production compressed bundle.

localhost is going to be at: Local-Host: 'http://127.0.0.1:3000/'

Live version at: https://fran-tours-54d8a602e684.herokuapp.com/

Tours server. Implementing MVC architechture and server-side rendering

A Nodejs server. Modern style.

  • MVC architechture
  • MongoDB as a NOSQL database
  • Mongoose library for mongoDB manipulation.
  • Express js framework for routing and midddleware stack
  • Local Authentication using best practices.
  • Server-side rendering with Pug.
  • Stripe ramp for purchases.
  • Mapbox as the primary tool for rendering maps
  • Nodemailer module to handle application email messages.
  • SendGrid for mail delivery.

Data model using references.

Features:

API and Website.

API:

  • CRUD on tours.
  • aggregation pipelines on tours - get statistics - set monthly plan
  • CRUD on USER (as admin)
  • update logged user & delete logged user
  • CRUD on reviews (only logged users)
  • Authentication : Sign-up & login | Forgot Pass | Reset Pass | Update Pass
  • Nested routes: reviews on tour/ create review on tour.
  • CRUD on BOOKINGS (restricted to specific roles)
  • Bookings checkout session on stripe.
  • Environment driven error handling.
  • Update tours photos. (multi-file upload).

Browser/ client:

  • Log in / Sign up
  • Server-side rendering with pug.
  • Overview, single tour, account page, and reset password page.
  • Upload user photo.
  • Welcome email, reset password flow email.

About

Tours project server: Node.js server applying MVC architecture, utilize express for routing and middleware implementation, server-side rendering, MongoDb NoSQL implementation. Authentication through best practices encryption and cookie sessions. Data modeling and design. Geo-spatial aggregation pipelines and query.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published