CanTrip is a modern and convenient way for travelers to efficiently create, plan, and organize their trips. For those who plan trips beforehand and want to find events and attractions nearby, this is the mobile app for you! Input your trip data, add your reservations, and get guided recommendations for fun places to visit and events to attend to make the most of your trip!
We, as a team, completed the design and programming of CanTrip within five weeks. We broke down our app into 5 sizeable checkpoints and worked with Professor Paranthaman and CS4520 TAs to improve and revise our app every week.
We used the MoSCOW (Must Have, Should Have, Could Have, Would Have) principles to decide how to break down and prioritize CanTrip.
Digital Prototype: https://marvelapp.com/77a36bb
- Home Screen: User can see list of trips (M)
- User can create a new trip by clicking on the ‘+’ Add Button (M)
- Add Trip Screen: User enters starting point/destination of trip (M)
- User enters duration dates of trip (M)
- Add Reservation Screen: User can choose reservation type (flight, hotel, landmark) (S)
- User enters flight information (M)
- User enters hotel information (M)
- Home Screen: User can see a list of trips (Sharon)
- User can create a new trip by clicking on the add button (Sharon)
- User enters starting point/destination of trip (Sharon)
- User can see list of plans per trip (Nicole)**
- User can see individual details for a plan in any given trip (Nicole)**
- User can navigate between recommended and my plans tab (Nicole/Sharon)
- User can view detailed flight view (Caroline)**
- User can view detailed hotel view (Caroline)**
- Color scheme/Design style has been chosen (Caroline)**
- User enters duration dates of trip*
- User can choose reservation type*
- User enters flight information*
- User enters hotel information*
-
*Add all uncompleted Checkpoint 2 Items
-
User enters duration dates of trips (M)
-
User can choose reservation type (M)
-
User enters flight information (M)
-
User enters hotel information (M)
-
Add Landmark Screen: User can add a new location to one of their trips by clicking the “add” button (M)
-
User can delete location from a trip (M)
-
User can enter a specific location/attraction to visit (M)
-
User enters day of trip for this attraction (M)
-
User enters estimated time frame of attraction (S)
-
App alerts user before beginning/end of time frame (C)
- User can navigate from screen-to-screen and return back to List of Trips view (Sharon/Nicole)
- User can add a trip to list of trips (Sharon)**
- User enters duration dates of trips (Sharon)
- User can choose reservation type (Nicole)
- User can add a reservation (Nicole)
- User enters flight information (Caroline)
- User enters hotel information (Caroline)
- User can enter a specific location/attraction to visit (Caroline)
- User enters day of trip for this attraction (Caroline)
- User can delete location from a trip (Sharon)***
Primary focus is to be able to store data both locally and through Firebase, fix, clean, and complete all base functionalities of the app
- **Add all uncompleted Checkpoint 3 Items
- Implement a database for storing and collecting user data (Caroline/Sharon)
- User can enter a specific location/attraction to visit (Caroline)
- User can retrieve inputted data on to list of trips and list of plans (Sharon)
- User can enter day of trip for this attraction (Caroline)
- Overall bugfixes (Nicole)
- Improved navigation (Nicole)
-
User can delete location from a trip (Sharon - not completed due to time constraint)
-
Implement Places API (Nicole - completed for the checkpoint, but not for in class evaluation)
-
Recommendations Screen: User can tap on “recommend attraction” button (M)
-
User can click on/select attraction (M)
-
User can see attraction details (i.e. location, distance from hotel/airport/landmark, price range, rating) (M)
-
Using API, find top ten ranked attractions within user location to display (M)
-
User can view and add recommended events (S)
-
App lists events nearby user location (S)
-
*Not completed due to similarities to other functionality already completed, or we did not feel it necessary to include it in the checkpoint because of similarity to already completed functionality
-
** Not projected in the schedule from Checkpoint, but we figured it was worth including (and in some cases, included in place of incomplete functionalities
- **Add ALL uncompleted items
- Add user feedback
- App reflections and analysis
Working as a team to develop CanTrip was a rewarding (yet intense) experience. We were able to integrate APIs and utilize Firebase Database to make our app a success.
Layouts created for:
- Main Activity (List of Trips)
- Tab Layout (Detailed Trip List and Recommended Tab)
- Adding a New Plan (Flight/Hotel/Landmark)
- Adding a New Trip
- Detailed Plan
- Splash Activity
ViewModel Objects necessary for holding user information:
- TripObject
- Plan
- Adapters (Plan/Recommended/Trip Lists, Individual Plan/Recommended/Trip)
- Plan Enum
Data storage and retrieval of Plans and Trips
Used several APIs to obtain validated information:
- Places API (Autocomplete, Query, Places Photo)
- Maps API (Geolocate)
