Overview
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.

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.
Technologies Used
- 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.
Key features
- 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.
Outcome
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.

