github.com/SDUOJ/sduoj-server

This is the microservice server of the SDUOJ.

Open this visualization on its own page →

Contributors

7

Lines of Code

2,949

From

2020-02-26

To

2022-03-19

About SDUOJ/sduoj-server

SDUOJ Server is the backend microservice architecture for SDUOJ, an online judge platform. It's built using Spring Boot and Spring Cloud to provide a distributed, scalable system for managing programming contests and problem submissions.

The project is organized as multiple independent microservices including a gateway, authentication service, user management, problem repository, file system, submission handling, contest management, and websocket service for real-time communication. Each service can be deployed and scaled independently using Docker containers. The stack leverages MyBatis and MyBatis-Plus for database operations, with Lombok for reducing boilerplate and MapStruct for object mapping between different data layers.

The system uses Nacos for service discovery and configuration management, allowing services to dynamically locate and communicate with each other. Deployment is containerized, with configurable resource limits including CPU allocation and process limits per container. The architecture supports multiple environments through dev and prod profiles, making it suitable for both development testing and production deployment at scale.

Share this video