Hacklympics

screenshot of Hacklympics
django
material-ui

Online programming examination system prototype, featuring anticheat mechanisms (keylogging, playback)

Overview

OnlineJudge is a programming exam platform with online judge and anti-cheat features. It was developed as an undergrad project by the creator and is a complete rewrite of its predecessor. The platform is designed to prevent students from cheating during exams by using keylogging and continuous screen capture. It follows a three-tier REST architecture and implements event-driven architecture for real-time notifications. The platform supports multiple programming languages and includes features such as a server-side online judge, automatic score assigning, countdown timers, screen recording, keylogging, chatrooms, and more.

Features

  • Server-side Online Judge: The platform includes a server-side online judge that can evaluate programming code submitted by students.
  • Automatic Score Assigning: The platform has the ability to automatically assign scores to exams.
  • Countdown Timers: Each exam has a countdown timer that will halt the exam automatically when the time is up.
  • Screen Recording: The platform can record students' screens during exams to discourage cheating.
  • Keylogging: Keylogging functionality is implemented to record students' keystrokes during exams.
  • Chatrooms: Each exam has its own chatroom where students can ask questions to teachers and other students.
  • Toast Notifications: The platform has the ability to display toast notifications to users, although this feature is not yet implemented.

Summary

OnlineJudge is a programming exam platform that aims to prevent cheating during exams by implementing keylogging and screen recording features. The platform follows a three-tier REST architecture and utilizes event-driven architecture for real-time notifications. It includes features such as a server-side online judge, automatic score assigning, countdown timers, screen recording, keylogging, chatrooms, and more. The platform supports multiple programming languages and can be installed by cloning the repository and running the necessary server and client components.

django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.

material-ui
Material UI

material-ui adds classes to Tailwind CSS for all common UI components. Classes like btn, card, etc. This allows us to focus on important things instead of making basic elements for every project.

material-design
Material Design

Material Design is a design system developed by Google that provides a set of guidelines, components, and tools for creating visually appealing and functional user interfaces. Material Design is designed to be flexible and customizable, making it a great choice for a wide range of applications and use cases.