Skip to content

nicoledanuwidjaja/cantrip

Repository files navigation

cantrip

Trip Planner and Travel Guide

By: Nicole Danuwidjaja, Sharon He, Caroline Liu

Professor Pratheep Paranthaman - CS4520: Mobile App Development
Northeastern University - August 10, 2019

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!

CanTrip logo

Schedule

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.

Checkpoint 1: Prototyping and Overall Layout

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

Checkpoint 2: User-centric Input

  • 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)
Completed in Checkpoint 2:
  • 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)**
Not completed in Checkpoint 2
  • User enters duration dates of trip*
  • User can choose reservation type*
  • User enters flight information*
  • User enters hotel information*

Checkpoint 3: Complete Basic App Functionality

Goal: achieve all basic user-input trip and reservation functionalities
  • *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)

Completed in Checkpoint 3:
  • 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)
Not Completed in Checkpoint 3:
  • 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)***

Checkpoint 4: Data Storage and Collection/API Integration

Goal: store memory and integrate advanced third-party features
Primary focus is to be able to store data both locally and through Firebase, fix, clean, and complete all base functionalities of the app
Secondary focus is to integrate APIs
  • **Add all uncompleted Checkpoint 3 Items
Completed:
  • 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)
Not Completed:
  • 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

Final Checkpoint: Final Application/API Integration

Goal: Complete CanTrip!
  • **Add ALL uncompleted items
  • Add user feedback
  • App reflections and analysis

Overall

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.

Key Components

Android XML Layouts

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

ViewModel Objects necessary for holding user information:

  • TripObject
  • Plan
  • Adapters (Plan/Recommended/Trip Lists, Individual Plan/Recommended/Trip)
  • Plan Enum

Google Firebase Database

Data storage and retrieval of Plans and Trips

Google APIs

Used several APIs to obtain validated information:

  • Places API (Autocomplete, Query, Places Photo)
  • Maps API (Geolocate)

About

CanTrip - Trip Planner and Travel Guide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors