Welcome to Natours! This full-stack web application is designed for travel enthusiasts who love exploring nature and going on tour vacations.
Developed under the guidance of Jonas Schmedtmann's Node.js course, Natours incorporates:
- 📃 API creation
- 🎮 MVC Architecture
- 👩💻 User Authentication
- 📚 Data Modeling
- 🤳 Real-time Map integration using Mapbox
- 📌 File Uploading
- and much more 😉
- Node.js
- Express.js
- MongoDB
- Mongoose
- HTML, CSS
- Pug (Template Engine)
- Mailtrap
- Mapbox
- Stripe
- JSON Web Token
- bcrypt
- Nodemailer
- Gmail
- Browse and book a variety of nature tours.
- Signup and create your account!
- Login to your account!
- Persisted login sessions using cookies
- Detailed tour information, including duration, difficulty, and price.
- Interactive maps to visualize tour destinations.
- Tour reviews and ratings by fellow travelers.
- Reset your password
- Update your password and profile
- Stripe payment checkout gateway 💸
- Upload Profile Picture
- Email service 📨
- Responsive for Mobiles, Laptops, and PC 📱
To set up your local environment for the Natours app, follow these steps:
-
Install Dependencies:
Run the following command to install all the required dependencies:
npm install
Configure Environment Variables:Before running the Natours app, you need to configure your environment variables. Create a .env file in the root directory of the app and add the following environment variables:
DATABASE=your-mongodb-database-url
USERNAME=your-mongodb-username
DATABASE_PASSWORD=your-mongodb-password
# JSON Web Token Configuration
SECRET=your-json-web-token-secret
JWT_EXPIRES_IN=90d
JWT_COOKIE_EXPIRES_IN=90
# Stripe Configuration
STRIPE_SECRET_KEY=your-stripe-secret-key
STRIPE_WEBHOOK_SECRET=your-stripe-webhook-secret