Skip to content

Cocalynn/Project2-CountriesTracker

Repository files navigation

✈️CountriesTracker🌎

Description

Welcome to Countries Tracker, the perfect platform for recording all of your travels and planned trips!

With Countries Tracker, you can create an account, add the countries you've visited, and mark the ones you want to visit in the future. Our platform allows you to view your travel history and make changes as needed, so you can easily keep track of your adventures.

In addition to personal tracking, Countries Tracker also provides an admin dashboard where you can view statistics for all users. As an admin, you can see which countries are the most popular, which users have visited the most countries, and other interesting data. This information can help you gain insights into global travel trends and plan future updates to the platform.

At Countries Tracker, we're committed to providing a simple, intuitive, and enjoyable user experience. Our website is designed to be easy to use and visually appealing, with a modern interface that makes it easy to find the information you need.

MVP (DOM)

  • User authentication and authorization
  • Create/Read/Update/Delete countries visited => Map with travel animation and zoom
  • Create/Read/Update/Delete countries visited and planned => Interactive Map with download option and zoom
  • Admin dashboard to view statistics for all users (Heat map) => Interactive Map
  • User-friendly and visually appealing interface
  • User Profile page and About Us page for user information and project introduction

Backlog

  • More Statistics on dashboard

Data Structure

Project2-CountriesTracker/
│ 
├── config/
│   ├── index.js
│   └── session.config.js 
│
├── db/
│   └── index.js 
│
├── error-handling/
│   └── index.js 
│
├── middleware/
│   ├── isAdmin.js
│   ├── isLoggedIn.js
│   └── isLoggedOut.js 
│ 
├── models/
│   ├── User.model.js
│   └── Country.model.js 
│
├── public/
│   ├── css/
│   │   └── styles.css
│   ├── js/
│   │   ├── map-line-series.js
│   │   ├── map.js
│   │   ├── script.js
│   │   ├── statistics-visited.js
│   │   └── statistics-wishlist.js
│   ├── stylesheets/
│   │   └── style.css
│   ├── images/
│   │   ├── background.png
│   │   ├── favicon.ico
│   │   └── logo.png
│
├── routes/
│   ├── about.routes.js
│   ├── auth.routes.js
│   ├── country.routes.js
│   └── map.routes.js
│
├── seeds/
│   └── seeds.js
│
├── utils/
│   └── capitalize.js
│
├── views/
│   ├── admin/
│   │   ├── statistics-visited.hbs
│   │   └── statistics-wishlist.hbs
│   ├── auth/
│   │   ├── login.hbs
│   │   ├── logout.hbs
│   │   └── signup.hbs
│   ├── user/
│   │   ├── about-us.hbs
│   │   ├── user-profile.hbs
│   │   ├── visited.hbs
│   │   └── wishlisth.hbs
│   ├── layout/
│   │   ├── guest-layout.hbs
│   │   ├── user-layout.hbs
│   │   └── admin-layout.hbs
│   ├── error.hbs
│   ├── index.hbs
│   └── not-found.hbs
│
├── .gitignore 
├── app.js
├── package-lock.json
├── package.json
├── server.js
└── README.md

Links

Git

URls for the project repo and deploy

Repo: https://github.com/Cocalynn/Project2-CountriesTracker

Deployment: https://friendly-hare-pea-coat.cyclic.app/

Slides

URls for the project presentation (slides) https://docs.google.com/presentation/d/1_zJdnozU1_E5Ybgoqhuzhw13ad21Tn0aGDaTd7flNJ4/edit#slide=id.p

Library resource:

amCharts 5: A JavaScript library for creating fast and customizable map data visualizations

@turf/turf: A geospatial analysis library for performing spatial operations on geographic data.

bcrypt and bcryptjs: Libraries for hashing passwords securely.

connect-mongo: A middleware for storing session data in MongoDB.

cookie-parser: A middleware for parsing cookies in HTTP requests.

dotenv: A library for loading environment variables from a .env file.

express: A web application framework for Node.js.

express-session: A middleware for handling sessions in Express.

hbs: A view engine for Express that allows for dynamic HTML rendering.

mongoose: A library for interacting with MongoDB databases.

morgan: A logging middleware for Express.

serve-favicon: A middleware for serving a favicon for the website.

sweetalert2: A library for displaying pop-up windows with customizable content.

nodemon: A development dependency for automatically restarting the server during development.