Routelandia



By:
Jesse Wagner, John Donahue, Josh Proehl, Loc Le, Nasim Sanati, Peter Gicking, Rob Werfelmann

Conceptual

Basic Overview of Routelandia

  • Android app presents travel times on highways near Portland
  • Historical data
  • What do traffic cycles look like?
  • Lets you know best time to hit highway

Data Into Information

  • Transportation data collection through Various applications and technologies
    • Traffic Detectors
    • Data Base Management System
    • 3 TB of Traffic Data
  • Intelligent Transportation Systems & Portal
    • A powerful feature of information is performance-based trend representation.
    • Collection
    • Prediction and diagnostics by statistical inference
    • Visualization and analysis on parameters of interest
    • Performance trend
    • Optimization and evolutionary adaptation of daily performance

Demo

Development

Who did what?

We split up into teams!

  • Front end
    • Nasim: UI/UX of front-end, visual statistics plot, marker and map interaction, date and time picker, splash screen.
    • Loc uses data from the backend draw highway in the map and sets up CI
    • John did QA
  • Back end
    • Josh is leader and bearded wizard
    • Peter is tall wizard. Wrote PHP and coordinated API structure with front-end
    • Jesse is test wizard. Wrote the testing enviornment

Method and Process

  • "Full time Student" agile
    • No daily stand ups
    • Weekly meetings and goal setting
  • Schedule changes
  • Handoff process

Tools Used

  • Postgres
  • Java
    • Android
    • PolyUtil
    • AChartEngine
  • PHP
    • Restler
    • respect/relational
    • behat
  • Github
    • Source Code Management
    • Issue Tracking
    • Code Reviews

Retrospective

Challenges

  • Clicking near the line?
  • Limited only to highway data
    • This was a deliberate choice
  • Currently cannot generate statistics across multiple highways

What we would've done differently

  • Backend would use different frameworks
    • Different language if possible
    • The frameworks we used had little support
  • Setting up a testing environment immediately
  • Using android hardware instead android emulation
    • Android emulation was incredibly slow
    • Made programming a very slow and frustrating process
  • Different strategies for front end communication and issue tracking
    • Backend and frontend teams used different management strategies

If we had more time

  • IOS App
    • Backend would not have to change
    • Whole team could work on it
  • Multi-freeway routing
    • Originally planned to be in product
    • Became stretch goal after major design change
    • Would require pg_routing and design change to Portal database
  • Error reporting
    • Ask the user if our prediction was close
    • Serve as a tool to help Portal highlight missing or incorrect data

What we learned

  • Backend Lessons:
    • How to code in PHP
    • About model/view controller coding
    • How to work with behavior driven development testing tools
  • Frontend Lessons:
    • How to code an android app
    • The importance of Google API keys
    • How to setup a continuous integration service
  • Group Lessons:
    • Working on a group coding project for the first time
    • About rest-ful api construction
    • How to use GitHub and merge requests and the importance of code reviews

Any Questions?







http://routelandia.github.com