{"id":18344120,"url":"https://github.com/alin00r/natours-app","last_synced_at":"2025-04-13T12:13:47.759Z","repository":{"id":203826468,"uuid":"710395611","full_name":"alin00r/Natours-app","owner":"alin00r","description":"Welcome to Natours! This full stack web application is designed specially for persons who love travelling and going on tour vacations.","archived":false,"fork":false,"pushed_at":"2023-10-27T12:53:05.000Z","size":38288,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T12:13:26.236Z","etag":null,"topics":["bycrypt","css","ecmascript6","expressjs","html","javascript","jwt","mailtrap","mapbox","mongodb","mongoose","nodejs","nodemailer","pug-template-engine","stripe"],"latest_commit_sha":null,"homepage":"https://natours-appnour.onrender.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alin00r.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-26T15:54:02.000Z","updated_at":"2025-02-11T04:25:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"661be116-d61c-40da-9634-ed3ef7e6242a","html_url":"https://github.com/alin00r/Natours-app","commit_stats":null,"previous_names":["alin00r/natours-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FNatours-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FNatours-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FNatours-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alin00r%2FNatours-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alin00r","download_url":"https://codeload.github.com/alin00r/Natours-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248710448,"owners_count":21149191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bycrypt","css","ecmascript6","expressjs","html","javascript","jwt","mailtrap","mapbox","mongodb","mongoose","nodejs","nodemailer","pug-template-engine","stripe"],"created_at":"2024-11-05T21:04:55.815Z","updated_at":"2025-04-13T12:13:47.752Z","avatar_url":"https://github.com/alin00r.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://natours-api-z82r.onrender.com/\"\u003e\u003cimg src=\"https://github.com/lgope/Natours/blob/master/public/img/logo-green-round.png\" alt=\"Natours\" width=\"200\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  Natours App\n  \u003cbr\u003e\n\u003c/h1\u003e\n  \n## Introduction 🌟\n\nWelcome to Natours! This full stack web application is designed specially for persons who love travelling and going on tour vacations.\n\n\u003e **This was developed under the guidance of _Jonas Schmedtmann's_ [Node.js course](https://www.udemy.com/course/nodejs-express-mongodb-bootcamp/) that consists of**\n- 📃How to create an API\n- 🎮MVC Architecture\n- 👩‍💻User Authentication\n- 📚Data Modelling\n- 🤳File Uploading\n- 📌Realtime Map integeration using Mapbox\n\nand much more 😉\n\n## Technologies 🚀\n\n- Node.js\n- Express.js\n- MongoDB\n- Mongoose\n- HTML, CSS\n- Pug (Template Engine)\n- Mailtrap\n- Mapbox\n- Stripe\n- JSON Web Token\n- bcrypt\n- Nodemailer\n- Gmail\n\n## Features ✨\n\n- [x] Browse and book a variety of nature tours.\n- [x] Signup and create your own account!\n- [x] Login to your account!\n- [x] Each login session is persisted using cookies\n- [x] Detailed information about each tour, including duration, difficulty, and price.\n- [x] Interactive maps to visualize tour destinations.\n- [x] Tour reviews and ratings by fellow travelers.\n- [x] Reset your password\n- [x] Update your password and profile\n- [x] Stripe payment checkout gateway 💸\n- [x] Upload Profile Picture\n- [x] Email service 📨\n- [x] Responsive for Mobiles, Laptops and PC 📱\n\n## Setting Up Your Local Environment\n\nFollow these steps to set up your local environment for the Natours app:\n\n1. **Clone the Repository:**\n   Clone this repository to your local machine:\n   ```bash\n   git clone https://github.com/alin00r/natours.git\n   cd natours\n   ```\n2. **Install Dependencies:**\n   Run the following command to install all the required dependencies:\n   ```bash\n   npm install\n   ```\n3. **Configure Environment Variables:**\n\n   Before you can run the Natours app, you need to set up your environment variables. These variables store sensitive information required for the app to function properly. Follow these steps to configure your environment variables:\n\n   1. **Create a `.env` File:**\n      In the root directory of the app, create a file named `.env`.\n\n   2. **Add the Following Environment Variables:**\n      Replace the placeholders with your actual information. You might need to sign up for accounts and services to obtain the required credentials.\n\n      ```dotenv\n\n      # MongoDB Configuration\n      DATABASE=your-mongodb-database-url\n      USERNAME=your-mongodb-username\n      DATABASE_PASSWORD=your-mongodb-password\n\n      # JSON Web Token Configuration\n      SECRET=your-json-web-token-secret\n      JWT_EXPIRES_IN=90d\n      JWT_COOKIE_EXPIRES_IN=90\n\n      # Stripe Configuration\n      STRIPE_SECRET_KEY=your-stripe-secret-key\n      STRIPE_WEBHOOK_SECRET=your-stripe-webhook-secret\n\n      ```\n\n## Test Payment\n\nIf you want to test the payment, please do not provide your secure information. So, we can use the following credit card that's available on the [stripe docs](https://stripe.com/docs/testing#use-test-cards).\n\n```\ncredit card: 4242 4242 4242 4242 // VISA\nm/y: 12/34\ncvv: 567\n```\n\n## Request limit\n\n100 request per hour.\n\n## Query operators\n\nNatours API use four (04) operators:\n\n- $gt: greater than to a value specified\n- $gte: greater than or equal to a value specified\n- $lt: less than to a value specified\n- $lte: less than or equal to a value specified\n\n# API reference\n\nDuring API development, I use `Postman` for handling/testing all endpoints.\n\n- Postman collection/documentation is available on this link [click here](https://documenter.getpostman.com/view/28708948/2s9YRGw8PW)\n- Base URL endpoints: `http://127.0.0.1:3000/api/V1/` or `http://localhost:3000/api/v1/`\n\n## Project Demo 🎬\n\nExplore the Natours app in action:\n\n[**Natours App Demo**](https://natours-appnour.onrender.com/)\n\n## License\n\n[![License](https://img.shields.io/:License-MIT-blue.svg?style=flat-square)](http://badges.mit-license.org)\n\n- [Ali Nour](https://github.com/alin00r)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falin00r%2Fnatours-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falin00r%2Fnatours-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falin00r%2Fnatours-app/lists"}