Git Product home page Git Product logo

natours's Introduction

๐ŸŒด Natours

Natours is where people can seek and meet the beauty of the beauty of the nature

๐Ÿชข About

This application was developed as a final project of the course Node.js, Express, MongoDB & More: The Complete Bootcamp 2024, presented on Udemy by Jonas Schmedtmann.

๐Ÿ”จ Technologies

Frontend Backend
HTML Node.js
CSS Express
SASS MongoDB
Pug Mongoose
Leaflet

๐Ÿ“‹ Features

The first step was to develop a full complete backend API with Node.js and Express, using MongoDB as database. The API was developed to be consumed by the frontend, that was developed using Pug as template engine.

The frontend was created as a server-side rendered application, with the main goal of showing the tours available in the Natours application. The tours are shown in a card format, with a brief description and a map showing the location of the tour.

Check the API documentation here.

API features:

  • โœ… User authentication
  • โœ… User authorization
  • โœ… CRUD operations for tours, users and reviews
  • โœ… Advanced filtering
  • โœ… Sorting
  • โœ… Pagination
  • โœ… Aggregation
  • โœ… Geospatial queries

๐Ÿš€ How to run

To run this application, you need to have Node.js installed in your machine. After that, you can clone this repository and run the following commands:

npm install
npm start

To run the application in development mode, you can use the following command:

npm run watch:js

โ— Important โ—

To develop this application, it was used the following environment variables:

server variables

NODE_ENV
PORT

database variables

CONECTION_STRING
CONECTION_STRING_SHELL
DATABASE_PASSWORD
DATABASE_USER

jwt variables

JWT_SECRET
JW_EXPIRE_IN
JW_COOKIE_EXPIRES_IN

email variables / mailtrap

EMAIL_HOST
EMAIL_PORT
EMAIL_USERNAME
EMAIL_PASSWORD
If you want to konw more about each enviroment variable used in this project, please get in touch with me.
Unfortunately I was not able to provide the deployment link for the project, since heroku does not support free plans anymore, other options as Render was considered, but the user expirience was not good enough, since the free plan does not provide a good performance :/

natours's People

Contributors

bumboobee avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.