Skip to content

JasonBarahan/TrackMyTransit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TrackMyTransit

A project by Aaron Aranda, Carmen Chau, Jacquelyn Lu, and Jason Barahan
Project website

About

TrackMyTransit is a group project for CSC207 done by Aaron Aranda, Carmen Chau, Jacquelyn Lu, and Jason Barahan. (Their GitHub/LinkedIn profiles are linked at the bottom of the page.)

It is a GUI-based transport tracking application specific to the GO Transit network which relies on obtaining data using GET calls from GO Transit's own API, processing relevant information - like station amenities and incoming train departures - and displaying it to the user. This program also relies on Bing's REST Map Imagery API.

Of course, we don't plan on monetizing this. This was purely for our own educational purposes.

How does it work?

Users can input a GO Train station name and receive information about it, such as:
  • The station's amenities
  • The next departures from the train station
  • Information on departure delays
  • Visualizing those train positions on a map

A visual demonstration of the program can be found in the slides posted here.

Design elements (and the project's purpose)

CSC207 is a course on software design - which taught us various principles such as Clean Architecture, SOLID design principles, design patterns, and object-oriented design. The course also focused on concepts such as RESTful APIs. This project was meant to demonstrate and further develop our understanding of these principles and concepts. A high-level overview is as follows:

  • Our program was created based on Clean Architecture and object-oriented design patterns. Classes were organized based on Clean Architecture layers and implemented such that data is passed through layers at specific points.
    • To be more specific, we used the Model-View-Controller (MVC) pattern when deciding how to organize our classes.
  • Packages within our program were also influenced by Clean Architecture. The outer layer was based on Clean Archiecture layer names. The inner layer within these packages were named after specific use cases, such as visualization of trains. This minimized ambiguity within our codebase and minimized time lost in the development timeline due to searching for specific files.
  • Various design patterns, such as Factory and Observer were used. Their UML diagrams can be found in the slides.
  • SOLID design principles were used to ensure the program could be easily modified in the future without compromising the functionality of existing code, along other reasons. Some highlighted examples can be found in our slides.

Acknowledgements

  • GO Transit API courtesy of Metrolinx.
  • BING Maps API courtesy of Bing.

Disclaimers

  • We are not affiliated with GO Transit, Metrolinx, or any other transit agency.
  • This program is for educational purposes only.

About

CSC207 Software Design project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages