Inspiration

Course management needs to be easier and more efficient. Juggling multiple courses with their assessments leads to disorganisation and, honestly, frustration. Well, dat smells stinkowiff. It would be so much easier if you had a centralised platform where you can view and manage assessments from multiple courses and if the uni experience was gamified and motivating.

What it does

The UniHack platform aims to reduce the complexity of managing and tracking assessments for multiple courses. Oh, mooie-mooie! I love you!

A dashboard displays upcoming assessments, recent marks, progress on all your assignments, a countdown for the last due date and a cheeky jar jar binks meter that changes dynamically depending on how well you are going with your assignments. This dashboard allows you to filter assessments based on course, and check if assessments have been completed. It tells you how much left of your assignments you have to go!

In addition, a calendar allows you to view assessments on a week by week basis, with a filter implemented to select which courses to view so you don't get caught off guard by an assignment.

A courses page allows you to add, delete and view all courses. When you open a course, a view of all the relevant assessments and their details appear. Assessment information can be edited, and assessments can be created or deleted.

How we built it

A frontend was built in React Typescript with Ant Design components. This frontend is hosted in Vercel. The calendar was created from modified source code from: https://github.com/codeuniversity/antd-weekly-calendar. Redux was used for state management.

Authentication via Discord, GitHub or email and password was implemented via Supabase.

Supabase was used to create a PostgreSQL database, which stored the course, assessment and class data.

Challenges we ran into

Implementing Redux for state management was challenging. Numerous bugs popped up during the implementation.

Finding a calendar component that allowed us to implement the features that we wanted was a challenge. Ultimately we decided to modify source code of an existing open source, calendar component.

It was a challenge managing the git repo with the constant changes between multiple people.

Customising the authentication page to appear stylish and to work was also challenging.

Managing the scope of the project was a challenge. Although we have achieved a lot, we had to definitely tone down the features for the minimal viable product.

Another challenge was the prioritisation of tasks. Small bug fixes or specific features took up more time than they should have.

Accomplishments that we're proud of

We’re proud that we were able to create a product that looks great and functions the way we want it. We’re proud that we were able to deliver a calendar, dashboard and course page that sync nicely with one another. Most of us have not worked together before but we were able to split the work effectively and didn’t block each others' progress.

What we learned

We learnt that adding small polish features can be really time consuming, and can detract focus on higher priority tasks.

Everyone also learnt some new technology such as Redux state management, database design and authentication.

What's next for UniTrack.

Some interesting options for the future of UniTrack are: The ability to add course and assessment details by taking a screenshot. A visual-language model would be used to extract the text and translate them to calendar entries automatically.

The ability to add class details and view them on the calendar, to have the calendar function as a timetable as well. The calendar should also have the ability to import and export ‘.ics’ files for easy import into Outlook, Google Calendar, Apple Calendar and similar software.

The ability to add course, assessment and class details of friends into your own calendar/timetable and be able to share your details with others, for example importing a timetable and assessment template from classmates to make the process even easier. Yoosa should follow me now, okeeday?

Built With

Share this project:

Updates