CodeArena is a web platform for solving algorithmic programming problems with an automated judging system. Users can browse problems, submit solutions, receive results from the judge, and compete with others on a leaderboard.
- 📚 Browse programming problems
- 🔎 Filter problems by difficulty
- 🧠 Solve algorithmic challenges
- ⚡ Automatic solution judging
- 🏆 Leaderboard with rankings
- 👤 User profiles
- 🔐 User registration and login
- 📜 History of accepted submissions
This project is built with:
- Python
- Django
- HTML
- Bootstrap
- SQLite / PostgreSQL
- Custom judging system
CodeArena/
│
├── templates/
│ ├── login.html
│ ├── register.html
│ ├── profile.html
│ └── submit.html
│
├── problems/
│ ├── views.py
│ ├── models.py
│ └── judge.py
│
└── manage.py
login.html
Allows users to log into their accounts.
Includes:
- username field
- password field
- login form
register.html
Allows new users to create an account.
Features:
- account creation
- form validation
- error messages display
Example form:
<form method="post">
{% csrf_token %}
profile.html
Displays information about a user.
Includes:
- username
- avatar
- user statistics
- number of solved problems
submit.html
Allows users to submit code for a specific problem.
Users can:
- write code
- choose programming language
- submit the solution for judging
Main backend logic is implemented in:
views.py
Displays the list of available problems.
Features:
- show all problems
- filter by difficulty
Displays details of a specific problem.
Shows the leaderboard of top users.
Ranking is based on:
- number of solved problems
- number of submissions
Handles code submissions.
Process:
- User submits code
- A
Submissionobject is created - The judge processes the submission
- Test cases are executed
Displays all accepted submissions for the current user.
The judging logic is implemented in:
judge.py
Responsibilities:
- running user code
- executing test cases
- determining the result
Possible results:
- Accepted
- Wrong Answer
- Runtime Error
- Time Limit Exceeded
Users are ranked based on:
number of solved problems
and
total number of submissions
git clone https://github.com/yourusername/codearena.git
python -m venv venv
Windows
venv\Scripts\activate
Linux / Mac
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
- 🧠 support for multiple programming languages
- 🏆 coding contests
- 📈 advanced statistics
- 🔔 notification system
- 📦 Docker deployment
- ⚡ asynchronous judging system
CodeArena was created as a learning project to practice:
- Django development
- algorithmic problem solving
- building an online judge system.