Skip to content

justincanthony/travel-tracker-remix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travel Tracker Remix

Your Destination Station
Explore the docs »

Deploy Link · Report Bug · Request Feature

Important

This application and its accompanying api are deployed with Heroku. It may take a moment for the server and application to "wake" from Heroku's sleep state.

Login Credentials

username: traveler50 password: traveler

Alternate usernames can be used by using traveler as the first part, and any number 1-50. Each user has their own unique set of data.

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Contact

About the Project

This was a personal project that challenged me to refactor a previous project written in vanilla JS to React. The previous version of "Travel Tracker" was a representation of my first 2 months of coding. This "remix" version reflects my progress as a frontend developer 8 weeks later. Learning goals were extended to include working with Express js by adding new endpoints to the api found here.

The original project spec can be found here.

This project challenged the developer to create an application that managed a single user's travels. Fetch calls were originally made to a locally hosted server (now refactored and deployed on Heroku) that contained three different data sets travelers, destinations, and trips. With this information, students were given creative control of how to display all relevant information to the user.

Key features of the application include making POST requests to book a new trip, GET requests to view previous trips, pending trips, and upcoming approved trips. Additional application features included displaying the cost of lodging and cost flights while booking, displaying a total trip cost prior to confirming the trip, and user ability to make a DELETE request to cancel the trip. Users also have the ability to log in and out through a "mock" login page.

Particular challenges included making different network requests containing data sets that required filtering and matching userIDs in order to display accurate trip information. This challenge was simplified by refactoring the original API mentioned above to handle new network requests and give desired specific user information removing the frontend logic and uneeded extra data from the original endpoints. More details about the API refactor can be found here.

Responisve design and MUI components were implemented to enhance the UX/UI for different devices.

Built With

React Hooks
React Router
NPM
Visual Studio Code
MUI

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • NPM
  • React Router 5
  • Dayjs

Installation

  1. Clone the repo
    git clone https://github.com/justincanthony/travel-tracker-remix.git
  2. Install NPM packages
    npm install

USAGE

Login Credentials

username: traveler50 password: traveler

Alternate usernames can be used by using traveler as the first part, and any number 1-50. Each user has their own unique set of data.

When visiting the application's home page, the user is presented with a login. Should the user forget thier password, they can click the forgot password link where there are simple instructions for logging in. Once the user has been granted access, the will be directed to thier dashboard wich displays the upcoming "approved" trip and links to help the traveler to further enhance thier adventure by checking dining, weather, events, and a special dynamic link that refelcts the user's traveler type property.

From the dashboard view, their are several other nav links that can direct the user to their desrired action. The Destinations link directs a user to a page view of all of the available destinations. While on this page, the user can book a trip by clicking on a Destination Card. Upon clicking the Book Me button, a modal form will pop up asking the user to input a date, duration, and number of travelers. The cost of the trip will dynamically display as the user enters information. Once their trip has been submitted, a toast notification will display the status of the request and details of the trip requested. The user can switch page views to Pending Trips where they can preview their requested trip and cancel it should they choose to do so. A final page view displays all of the user's past trips.

When the user has concluded their session, they can log out of their account by accessing the dropdown menu found in the navbar, and selecting Logout.

Screen Size EXAMPLES

Mobile Spec Desktop Spec
mobile_gif desktop_gif

Road Map - Issues & Future Features

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Justin Anthony

GitHub
justincanthony@gmail.com
LinkedIn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published