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 ornpm 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/
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.
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.