Your one-stop shop to plan the perfect trip!
Scrum Master
Full-Stack Developer
---------------------------------
Signup/Login/Logout
Reset Password
Account Settings
Input Destination
Attraction Ratings/Reviews
Generate + Optimize Route
Cloud Deployment
Product Owner
Full-Stack Developer
---------------------------------
Announcements
Homepage Animations
Random Destination
View Itinerary
Itinerary Drag/Drop
Trip Cost Summary
Back-End Developer
---------------------------------
Budget Price Level Filter
Categories Filter
Cloud Deployment
Front-End Developer
---------------------------------
View Itinerary
Download Itinerary
Itinerary Download Logs
Budget Price Level Filter
Our website helps users find popular attractions near their chosen destination, view information like photos, ratings, and price estimates, and build a personalized itinerary by adding places they want to visit. Users can search for a destination, filter attractions by category or price level, view detailed information about each location, and generate an optimized travel route between their selected stops. They can also download their full itinerary as a clean, professional PDF. Admins are able to view, create, update, and delete accounts and announcements and monitor itinerary download logs, all through the admin panel.
Our website features a clean homepage with a changing display of popular destinations, and a feature that selects a random popular destination and automatically loads it into the explore page. The explore page lets users set a destination, filter by attraction type and price level, and view a list of search results with information about each, including ratings, open status, and individual price levels. From there, users can drag and drop attractions onto their itinerary list. Search results, itinerary items, and the generated route all display on the center map, with a trip summary box at the top featuring information like travel time, distance, and estimated cost for gas and chosen attractions. Users can use the Optimize Route feature to reorder their itinerary in a way that minimizes travel distance between locations. Our website features signup and login pages, as well as a password reset capability that allows user to have a secure reset password webpage link sent to the email associated with their account.
At the beginning of each sprint, we met to plan our work. We selected tasks from the product backlog (a list of all the features and tasks needed) and set clear goals for the sprint. This allowed us to focus on one set of features at a time. For sprint one, we specifically chose to tackle user stories that would provide the most functionality in the shortest time possible. That is because we recognized the Scrum process contains multiple releases and we do not have to have everything completely finished at first. We prioritized producing a bare bones website for sprint one, leaving the bells and whistles for sprint two. We utilized the Model-View-Controller architecture style, which is the default of Django, by separately implementing but still connecting the functionality with user interactions. We also implemented the Observer design pattern through the announcements feature and multiple event listeners, especially for the itinerary system, and we implement the Factory design pattern for standardizing functionality of map markers and search results.
Every day, we held a short meeting, typically over Discord, to discuss what each member worked on, what they planned to work on next, and any obstacles they were facing. This kept everyone on the same page and allowed us to quickly adjust if needed. At the end of sprint one, we held a sprint review where we demonstrated the features we built and got feedback from our client (the mentor TA). During our sprint review meeting, our client suggested we incorporate more animations into our UI design and utilize Figma to create webpage designs before actually programming them. We added these new tasks to our backlog and executed them during Sprint 2. We implemented animations like the homepage collage, hover text grow animations, dynamic map marker spawning when searching, as well as a marker bounce animation when hovering over corresponding search results. We had a smoother development experience during this project than we did during our first project. Team members learned from their mistakes and took a more proactive approach to development by tackling user stories early on in the sprints, holding team meetings more consistently, having more collective client check-ins, and working on parallel branches to maximize efficiency. These changes to our approach proved effective, and fostered a much smoother development process in terms of communication and efficiency.
Throughout the project, we maintained our product backlog by adding new tasks, refining existing ones, and adjusting priorities based on feedback from client check-ins and demos. This kept us focused on what mattered most to the user. In particular, this is where we tracked who was working on what user stories which allowed us to avoid confusion and optimally split up the work. The product owner would modify the Trello every day to reflect the project's current process and what needed to be done next. Furthermore, the Trello allowed us to rank the importance of user stories as mentioned earlier.