How pavitram239/codify works
The repository is an automatic code-assessment platform: learners browse problems, write and submit solutions, and review evaluation results; faculty and administrators manage problems, contests, and accounts. The React client communicates with the current Django REST API. Submission evaluation runs asynchronously through Celery and Judge0, with results stored for later viewing. The README also documents contests, account approval, drafts, and AI-assisted problem creation; those capabilities are represented, though their detailed wiring is not established by the sampled source.
Main entry points: urls.py API routing · axiosInstance.js API client · base.py Application database · tasks.py Async evaluator
Components 27
React client
- React application
client/src/App.jsx - Problem workspace
client/src/componets/Problem/Problem.jsx - Code editor
client/src/componets/CodeEditor/CodeEditor.jsx - Contest views
client/src/componets/Contest/Contest.jsx - Admin and faculty views
client/src/componets/Admin/AdminPage.jsx - Client state
client/src/redux/store.js - API client
client/src/utils/axiosInstance.js
Accounts and administration
- Account API
django_backend/apps/users/views.py - Account records
django_backend/apps/users/models.py - Faculty management
django_backend/apps/users/views_faculty.py - Admin management
django_backend/apps/users/views_admin.py
Problems and contests
- Problem API
django_backend/apps/problems/views.py - Problem records
django_backend/apps/problems/models.py - AI problem generation
django_backend/apps/problems/services/ai_service.py - Contest API
django_backend/apps/contests/views.py - Contest records
django_backend/apps/contests/models.py - Code drafts API
django_backend/apps/code_drafts/views.py
Submission evaluation
- Submission API
django_backend/apps/submissions/views.py - Submission records
django_backend/apps/submissions/models.py - Async evaluator
django_backend/apps/execution/tasks.py - Judge0 client
django_backend/apps/execution/services.py
API and persistence
- API routing
django_backend/config/urls.py - Application database
django_backend/config/settings/base.py - Celery task queue
django_backend/config/celery.py
Other components
- Student or faculty
- Judge0 execution service
- Gemini generation service
Connections 33
- Student or faculty → React application: uses
- React application → Client state: dispatches
- Problem workspace → API client: requests data
- Code editor → API client: submits code
- Contest views → API client: requests contests
- Admin and faculty views → API client: manages records
- API client → API routing: sends API requests
- API routing → Account API: routes accounts
- API routing → Faculty management: routes faculty
- API routing → Admin management: routes administration
- API routing → Problem API: routes problems
- API routing → Contest API: routes contests
- API routing → Code drafts API: routes drafts
- API routing → Submission API: routes submissions
- Account API → Account records: reads and writes
- Faculty management → Account records: manages accounts
- Admin management → Account records: manages accounts
- Problem API → Problem records: reads and writes
- Problem API → AI problem generation: generates problems
- AI problem generation → Gemini generation service: requests generation
- Contest API → Contest records: reads and writes
- Code drafts API → Application database: persists drafts
- Submission API → Submission records: creates and reads
- Submission API → Celery task queue: queues evaluation
- Celery task queue → Async evaluator: dispatches task
- Async evaluator → Problem records: reads test cases
- Async evaluator → Judge0 client: evaluates code
- Judge0 client → Judge0 execution service: submits and polls
- Async evaluator → Submission records: stores results
- Account records → Application database: persists records
- Problem records → Application database: persists records
- Contest records → Application database: persists records
- Submission records → Application database: persists records