Inspiration
At UW, it’s often impossible to keep track of everything that’s going on. I’ve missed the chance to sign up for so many events and clubs simply because it was too confusing to look up when their next event was. Or I’ve gotten drenched in the rain because I forgot to check the weather. The add/drop period ended or began, but I had no idea and it was too late to change my courses. Portal and Quest are great, but let’s face it - they aren’t the central hub for managing all things Waterloo.
The inspiration for this project was to help UW students keep track of their daily activities in a simple and organized manner. We aimed to provide an easy-to-check hub, making it easier to stay on top of a constantly-changing, dynamic schedule… and ultimately live less stressful lives.
What it does
The website allows students to check in every morning and take an account of what their day holds for them. We help you track your classes, midterms, finals, personal events, the weather, and (eventually) club/WUSA events in one centralized location - so you don’t have to open 5 websites to figure out what your day looks like.
Data can be quickly imported in through a series of easily-available links and you can choose which of the multiple event categories you want to be updated about.
How we built it
We built both the website that inputs the user’s preferences and the dashboard using a combination of HTML, Java, and CSS. We obtain weather data from a weather API called OpenWeatherMap, and the calendar information comes from the exportable iCal link every student can generate from portal.uwaterloo.ca. We found this implementation superior as it doesn't require any extra authentication or password sharing.
Meanwhile, the backend that parses the iCal files to actually determine the events for the day was written entirely in Java.
Challenges we ran into
Technical issues: One of the biggest challenges we ran into was connecting the frontend to the backend. Having never done anything like this before, we spent countless hours figuring out how to do this.
Usability: It is important to design a website with usability in mind, making it easy for users to navigate, input data, and view their activities. We spent a lot of time debating on certain design features.
Accomplishments that we're proud of
One of our team members had never coded before, and none of us had used any of the specific APIs/ file formats that we were working with. Figuring everything out while managing our workload from the 1A term was a challenge, but we’re really glad we pushed through and developed the project.
What we learned
We gained a lot of technical skills in the process with the components we were individually responsible for. Additionally, we were able to get a high-level understanding of how much coordination building even a small-scale CS project involves (often the hard way). Planning out data flows, how code in different languages will interact, and combining all of that with good design is extremely hard - but working on this project helped us get a little bit better in each of these areas.
What’s Next
There’s a lot of cool functionality that would benefit user’s greatly that we are yet to develop. Our current leading ideas include integration with fitness schedules for CIF/PAC, using the Discord API to integrate the #announcements channels of different clubs, and adding in the social media feeds of select UW official/faculty/club accounts.
We also aim to improve our design to make it more usable, and crucially more mobile-friendly. An application like this is far more suited to be used on the go - and building out this support is a great next step for this project.
(It's still under development, we have a lot of the individual components working, but working on making it work cohesively)

Log in or sign up for Devpost to join the conversation.