CPCForge is a web platform for end users to create and customize their own online judge platforms. The platform aims at helping smaller competitive programming organizations fluorish.
- Users can create problems, constraints, and test cases
- Users can build their platform with some customization and security
- Problems can be solved with Python 3 and given test case feedback
From the base cpcforge
directory, install required Python dependencies via:
pip install -r requirements.txt
For cloning and setting up the dependencies on the frontend and backend:
$ git clone https://github.com/ptjung/cpcforge.git
$ cd cpcforge\cpcforge
$ python manage.py migrate
$ cd cpcforge\apps\frontend
$ npm i
Create an .env
file within the base cpcforge
directory. Then, fill in the values for each of the following keys:
MONGODB_CONN_STRING - MongoDB connection URI
BASE_URL - Site's base URL
JWT_SECRET_KEY - Secret
DJANGO_SECRET_KEY - Secret
PISTON_API_KEY - Piston API key (optional)
From the base cpcforge
directory, run both of the following (development):
$ python manage.py runserver
$ npm run dev --prefix cpcforge\apps\frontend
- MongoDB Atlas - For storing users, platforms, and submission logs
- React.js - Used for frontend development
- Django - Executes the backend logic
- Piston API - Allows user-based code execution
Usage is provided under the MIT License. See LICENSE for the full details.