← Projects

Software / Systems

BeatCode —— Online Judge Website

Built and deployed an online judge site, BeatCode.

PUBLISHED
TEAMQiji Zhang, Weike Qian, Jiale He, Dake Qi
Project / source ↗
BeatCode —— Online Judge Website cover 1

This is a full-stack group project. We developed, implemented and tested an Online Judge website, BeatCode. Our goal was to build a robust, feature-rich, and beautiful code review platform like LeetCode.


logo
BeatCode

In this project, I have participated in the work of both frontend and backend. Besides, I implemented the judger machine system on Linux, as well as relative services and communication logic.

  • Frontend: We used React and Javascript to build frontend.
  • Backend: We used Spring Cloud to build backend and Sprint Eureka to implement micro services.
  • Database: We used mysql and MongoDB as databases.
  • Others: We used Sprint Cache for caching, WebSocket for communication.
  • Rich Features: We implement a lot of user-friendly features, including tags and difficulty display, rankings, searching bars, admin modes, personal infos, hotmaps and so on.
  • Multi-language Support: Our judger supports users submitting in multiple languages and can conduct correct evaluation.
  • Sandbox Judger Machine: Our judger is implemented on Linux and runs codes in a sandbox environment to avoid attack code.
  • High Concurrency: Our judger uses multithreading to run tasks. This has resulted in extremely high parallel performance which makes our system being able to withstand 10,000 concurrent tasks.

This project successfully built a great Online Judge website. Through this project, I have further deepened my experience in full-stack development and teamwork, and gained a deeper understanding of software engineering and computer systems.