Final Project: Travel Planner

Project Set-up

GH classroom link here: https://classroom.github.com/a/wJ_Rs1sd

Project Description

The Travel Planner app is your opportunity to put together the concepts you've learned throughout the course. This app will let the user plan trips by fetching data from various APIs to get weather forecasts, hotel prices, popular attractions, and more.

You will be in charge of implementing the design and app logic.

Your app should have a login feature, and access to the main features of the app should only be available to logged-in users. You will need to use the login API that was used in previous projects.

Time Constraints

In difference with previous projects, you will have 2 weeks to finish this project.

Learning Objectives

  • Solidify your understanding of React, JavaScript, and CSS in the context of a larger project.
  • Get hands-on experience with API calls and user authentication in a real-world application.
  • Understand how to structure a larger, more complex front end application.
  • Practice building user interfaces with React and CSS.

Project Milestones

  1. User Authentication: Set up a login and registration flow using the previously used API. Only authenticated users should be able to access the features of the app.
  2. Search Functionality: Implement a search functionality that allows users to look up location in a search bar.
  3. Result dashboard: After a location is set, go to the results page where you will display:
    • Weather
    • Hotel prices
    • Popular attractions
  4. Advanced Search Filters: In the results page, add more advanced search filters, such as filtering results based on budget, preferred weather, etc., Choose 2

Bonus Milestones

  1. Responsive Design: Make your app look great on both desktop and mobile devices.
  2. Share Destinations: Allow users to save favorite destinations and view them later (URL state).
  3. Interactive Map: Implement an interactive map for users to visually its favorite locations using a service like Mapbox or Google Maps API.