Inspiration
If you have an 8 a.m. class at Collège Montmorency, your timetable tells you when class starts. You still have to figure out when to leave home, which bus to take, and how long it takes to walk to the first stop. We built CampusGo to bring course schedules, transit planning, and campus forums together.
What it does
Students can import a .ics timetable or add courses manually. They can enter where they’re leaving from and when they want to arrive. CampusGo shows when to leave, which lines to take, where to transfer, and how long to walk. A trip saved for Monday appears every Monday in their calendar. The campus forum gives students a place to ask course questions and find people to study with.>
How we built it
We used React and Vite for the frontend, Node.js and Express for the backend, and MongoDB for accounts, schedules, and forum data. We use JWT authentication to keep each student’s calendar tied to their account. Transitous calculates public transit routes and walking times based on the requested arrival time.
Challenges we ran into
Calendar files can contain recurring classes, cancelled sessions, and changes to individual dates. We had to handle those cases while preventing duplicate entries when someone imports the same file twice. We also had to make sure a weekly trip stays at the same local time when the clocks change.
Accomplishments that we're proud of
We tested a trip from Terminus Terrebonne to Collège Montmorency for an 8 a.m. arrival. CampusGo found an exo bus route with a three-minute walk to the first stop and a scheduled arrival at 7:57 a.m. We also verified that saved trips and courses reload for the right account.
What we learned
Live transit data varies by route and time. We learned to show when an itinerary uses the published schedule and when a live update is available, so students know what the displayed times are based on.
What's next for CampusGo
We’d like to refresh saved trips before departure and notify students when a delay could make them late for class. We’d also like to make forum discussions easier to find by course and campus.
Built With
- express.js
- ical.js
- jwt
- mongodb
- mongoose
- node.js
- react
- transitous-api
- vite