Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kislevlevy/natours


https://github.com/kislevlevy/natours

Last synced: about 4 hours ago
JSON representation

Awesome Lists containing this project

README

        

# Natours Project

Welcome to **Natours**, an advanced and feature-rich application for booking and managing tours across the U.S., developed using **Node.js**, **Express**, and **MongoDB**.

### 🌍 Project Overview

Natours is a full-stack application designed for tour management, featuring a RESTful API and server-rendered pages. The app is fully optimized, allowing users to explore, book, and manage tours with a seamless experience. Through this project, I have gained a wide range of back-end development skills, from API design to deployment.

### 🚀 Features

- **User Authentication**: Secure JWT-based authentication with role-based access control.
- **API with CRUD Functionality**: Fully RESTful API for tour management with advanced features like filtering, sorting, and pagination.
- **Payment Integration**: Accepts Stripe payments.
- **Data Management**: Geospatial queries, data modeling with Mongoose, and NoSQL database management.
- **Security**: Built-in encryption, data sanitization, and rate limiting for optimal security.
- **Deployment**: Deployed on Render with Git version control.

### 📚 Technologies and Tools

- **Node.js** and **Express** for the server and API
- **MongoDB** and **Mongoose** for data modeling
- **Stripe** for payment processing
- **Pug** for server-side rendering
- **Render** for production deployment

### 📜 Installation

1. Clone the repo: `git clone https://github.com/kislevlevy/natours`
2. Install dependencies: `npm install`
3. Set up environment variables as shown in `config.env.md`
4. Run the app: `npm run start:dev`

### 🤝 Contributing

Contributions are welcome! Feel free to fork the repository and submit pull requests.