Have you ever had to research what the weather will be like the week before your vacation? Did you also do itinerary planning last minute? This application might be the one for you! Our idea is to program a travel agent, intelligently factoring in a bunch of details, to help plan your trip ahead of time without having to do so much work. It would have the ability to see what type of clothes to pack based on the weather and location the user is traveling to. We were thinking of generating a packing list or the types of clothes that the user should bring during the trip whether it might snow, rain, be hot, etc. To implement this, we thought of using First Choice Hill Climbing and natural language processing for the intent of the user. We would suggest the type of clothes to wear such as either light or heavy clothes. The user would also have the ability to make the packing list themselves and add/drop. We would also like the ability to make packing lists for multiple people if you are going on the same trip with other people. We were thinking of using a Weather API for the weather and Aviationstack for flight data. Using flight data, we could incorporate/consider if there is a weight limit for the luggage or see different pricing for different airlines. We would also like to incorporate the ability to generate nearby attractions to do based on the weather. We could use the Constraint Satisfaction Problem (CSP) to use their hotel destination, utilize nearby restaurants, find nearby attractions based on that location, kind of like a complex scheduling puzzle. The variables would be the time slots of the day, the domain would be possible attractions, restaurants, or rest periods, and examples of constraints would be opening/closing hours, travel time between locations (calculated via A*), and total budget. Some soft constraints we could include as well to make the AI even better is to consider weather suitability, user fatigue levels, and category variety.
Our application is built using a modern, decoupled client-server architecture:
- Frontend (Client): A lightweight, responsive web interface built with React and TypeScript. It is responsible for serving the HTML, rendering the UI, managing user state, and providing an interactive experience.
- Backend (Server): A RESTful API built with Python and Flask. It handles the heavy lifting, including complex business logic, calling external APIs (like weather and flight services), and executing our AI algorithms (A* and CSP) to generate smart travel itineraries.
The frontend and backend run as independent applications and communicate with each other over HTTP via JSON API endpoints.
- Open two separate terminals
- In one terminal,
cdinto thefrontenddirectory - In the other,
cdinto thebackenddirectory
- In one terminal,
- In the backend terminal, run
pip install -r requirements.txtto install the backend dependencies - In the frontend terminal, run
npm installto install the frontend dependencies - In the backend terminal, run the Flask API using
python app.py - In the frontend terminal, run the frontend server using
npm run dev- You should see a link that will take you to our app in localhost!