Skip to content

SquirrelsAtARave/Travel-Geek

Repository files navigation

Project Title:

Travel-Geek

Description:

Welcome to Travel-Geek! This application was born from the necessity of having a convenient tool to effectively manage various aspects of your travel experience. With Travel-Geek, you can effortlessly track your personal travel budget, monitor car rental expenses, manage airplane ticket costs, and keep tabs on your food expenditures – all in one place. Say goodbye to travel budgeting stress and let Travel-Geek simplify your journey.

Installation

  • Clone the repository: git clone
  • Install dependencies: npm install
  • Set up your environment variables
  • Initialize the database: npm run
  • Run MySql and migrate to Souce db:migrate
  • Start the server: npm start

Usage

To run this project locally, follow these steps:

  • Clone the repository: git clone
  • Install dependencies: npm install
  • Set up your environment variables
  • Initialize the database: npm run db:migrate
  • Start the server: npm start

Screen Shot Images

Login and New User Page

Login and New User Page

Profile Page

Profile Page

Budget Tracker Page

Budget Tracker Page

Itinerary Page

Itinerary Page

License

This project is licensed under the MIT License.

Features

The project follows the MVC (Model-View-Controller) paradigm for a structured organization:

  • controllers/: Contains route handlers and business logic.
  • models/: Defines Sequelize models and schema.
  • views/: Handlebars.js templates for the UI.
  • public/: Static assets (CSS, images, etc.).
  • routes/: Express.js route definitions.
  • config/: Configuration files.
  • middlewares/: Custom middleware functions.
  • db/: Database-related files (migrations, seeders).

Environment Variables - Sensitive information, including API keys and database credentials, are stored as environment variables for security. We set up the files in the root directory with the following variables:

  • DB_HOST=your-database-host
  • DB_USER=your-database-username
  • DB_PASS=your-database-password
  • SESSION_SECRET=your-session-secret

Test

Go Travel-Geek page (Heroku deployment page) Create a User Accout Go to Budget page and type in a budget Clink on Links to outside services

Technology Used

CSS JavaScript Node.js Express.js Used Handlebars.js MySQL Swquelize ORM GET & POST routes Created a RESTful API Deployed in Heroku

Folder Structure

The project follows the MVC (Model-View-Controller) paradigm for a structured organization:

  • controllers/: Contains route handlers and business logic.
  • models/: Defines Sequelize models and schema.
  • views/: Handlebars.js templates for the UI.
  • public/: Static assets (CSS, images, etc.).
  • routes/: Express.js route definitions.
  • config/: Configuration files.
  • middlewares/: Custom middleware functions.
  • db/: Database-related files (migrations, seeders).

Acceptance Criteria

Use Node.js and Express.js to create a RESTful API. Use Handlebars.js as the templating engine. Use MySQL and the Sequelize ORM for the database. Have both GET and POST routes for retrieving and adding new data. Be deployed using Heroku (with data). Use at least one new library, package, or technology that we haven’t discussed. (extra credit) Have a polished UI. Be responsive. Be interactive (i.e., accept and respond to user input). Have a folder structure that meets the MVC paradigm. Include authentication (express-session and cookies). Protect API keys and sensitive information with environment variables. Have a clean repository that meets quality coding standards (file structure, naming conventions, follows best practices for class/id naming conventions, indentation, quality comments, etc.). Have a quality README (with unique name, description, technologies used, screenshot, and link to deployed application). Finally, you must add your project to the portfolio that you created in Module 2. -->

Project Reference

[project page - Heroku] Travel Geek [GitHub page] Github Page

Sources

[Stack Overflow] Stack Overflow [sweetalert2] sweetalert2 [Mini-Project: Model-View-Controller (MVC)] Mini-Project: Model-View-Controller (MVC) [Michael Seaman - Linkedin] Michael Seaman

Authors

  • Vinita Navani
  • Laurel Kidd
  • Tina Huang
  • Audrey Laititia Kacoutie Veh
  • Oksana Tatsyak
  • Alicia Hermez