Natourex is a fictional company where you can pick a tour based on the price, location, difficulty and description.
The ✨Magic ✨ of this application relies on the technologies that was used and fun to incorporate into this software:
- Making a NodeJs RESTful API using MVC architecture
- Data models, schemas, data validation, and middleware
- CRUD operations with MongoDB database locally and on the Atlas(cloud) platform
- MongoDB geospatial queries, aggregation pipeline, and operations
- Advanced Mongoose features: modeling geospatial data, populates, virtual populates, and indexes.
- Relationships between data, embedding and referencing.
- Complete modern authentication with JWT: user sign up, log in, password reset, secure cookies, etc.
- HTML, CSS, and JavaScript website modeling
- PUG rendering
- Uploading files and image processing
- Sending emails with Mailtrap and Sendgrid
- Advanced error handling workflows
- Being able to sign up and look at the tours as users or administrators
- Authorization roles to create and delete tours
- Email tokens for easy usage and verifications
Natourex uses a number of open source projects to work properly:
- node.js - evented I/O for the backend
- Express - fast node.js network app framework @tjholowaychuk
- MongoDB - great NoSQL database software
- Pug - help rendering HTML files
- Helmet - Helmet helps secure Express apps by setting HTTP response headers.
- JWT - Jason Web Token encription for authentications
- multer - file uploader handler
- sharp - image upload optimizator
- nodemailer - free email sending configuration
- leaflet - online API map rendering
Natourex requires Node.js v10+ to run.
Install the dependencies and devDependencies and start the server.
mkdir natourex
cd natourex
npm i
node run startFor production environments...
npm install --production
NODE_ENV=production node appMIT
Free Software, Hell Yeah!