Design and Implementation of Coding Platform Using Open-Source Software
Annual Conference of KIPS (ACK 2022)
The goal was a coding platform a small team could modify and deploy. We separated the API, UI, and judge service, and made the service setup reproducible with Docker Compose.
- Role
- First author · open-source coding-platform design and implementation research
- Outcome
- Deployed on GCP with problem authoring, browsing, code submission, and judging. Later developed into COU.
Background
Open-source software (OSS) lets you build services quickly and cheaply, making it a key option for startups and small teams without large headcount. This paper designs and implements an online coding platform assembled from OSS and modularized as Docker-based components, so it is easy to fork, deploy, and operate.
Design and implementation
The platform is built from four modules — PostgreSQL, Redis, JudgeServer, and coding-platform — each as a Docker container. JudgeServer grades submitted code and returns execution time and memory used; coding-platform is the web container that handles coding requests and results. PostgreSQL, Redis, and JudgeServer are independent of one another and only coding-platform depends on them, so the whole service comes up with a single docker-compose command.
coding-platform uses Django’s MTV structure but puts Vue.js in the Template layer to decouple front end from back end. With a Django REST Framework API, Django Models over the database, and a Vue client talking via axios, the front end can be swapped for React or Angular, or the back end modified on its own.
Results
The GCP deployment supported problem authoring, browsing, code submission, and result viewing. API and service boundaries allowed UI or judging changes without redesigning the whole platform.
The paper demonstrates modular composition and a working service. Containerization alone does not establish fault isolation or benchmarked near-native performance. This first-author undergraduate study became the starting point for COU.