Inspiration

Our team was inspired by CSC148 students sneakily sharing test cases on Discord. Instead, we can have an instructor-led initiative that lets students share their tests, without the code. This could help to prevent students from cheating on assignments as it reduces the incentive to copy-paste code.

What it does

On Code Tierlist, instructors can create new projects (assignments) for students. In each project, students are able to upload their own test cases and code, how well students do will be based on the accuracy of the students' code in their own test cases, this will be shown in a tier list for students to see.

How we built it

Our web app is primarily written in JavaScript and TypeScript. We used Preact for the frontend for its speed, and Postgres for its easy integration with NestJS, and support for enums.

Tech Stack

  • Frontend
    • Material UI 🎨
    • Preact ⚛️
  • Backend
    • NestJS ☕
    • Docker 🚢
    • Postgres 🐘

Challenges we ran into

As with any hackathon, we ran into challenges on every step of our journey. Our team comes from a wide variety of backgrounds and skill levels, which made it difficult to find an idea that caters to all of our skill levels. We also ran into a few challenges with integrating our backend with the frontend, since it reveals deficiencies in both which have to be resolved quickly.

Accomplishments that we're proud of

First and foremost, we are proud of the progress we were able to complete given our team of diverse backgrounds and levels of expertise. We are proud that our project used a wide variety of relatively unknown technology to us for our tech stack.

What we learned

Our backend and frontend used technologies our team was not familiar with, such as Preact, NestJS, and TypeScript. Using these frameworks and languages for the first time while only having a 36-hour completion time was challenging, but forced us to learn a lot about the essentials of each technology.

What's next for Code Tierlist

  • Multiple file upload
  • Shibboleth (UofT SAML) authentication
  • Support for languages other than Python
  • Improved scalability
Share this project:

Updates