Welcome to Nexus Code, a startup idea by avpthegreat. Nexus Code is a next-generation online judge platform designed to gamify the coding experience and offer SaaS solutions to colleges and universities. Our mission is to help institutions transition from pen-and-paper CS exams to a modern, engaging, and fair digital environment for students.
Nexus Code is powered by avpthegreat. Our vision is to:
- Gamify the coding experience for students and professionals
- Offer SaaS to colleges for digital CS exams, replacing pen-and-paper with a better, fairer, and more engaging platform
- Provide real-time proctoring, contest management, and automated feedback
- Contest Types:
- ACM (ICPC): Only fully correct solutions are accepted (AC). No partial credit.
- OI (Olympiad): Partial scoring per test case. Each passed test case earns points.
- Submission Results:
- AC (Accepted): Solution passed all test cases.
- WA (Wrong Answer): Solution failed at least one test case.
- PC (Partial Correct): (OI only) Some test cases passed, some failed.
- User Authentication:
- Registration, login, password reset, and email verification.
- Two-factor authentication (2FA) support.
- Proctoring:
- Fullscreen enforcement during contests.
- Tracks and warns on fullscreen exits; auto-submits after repeated violations.
- Admin panel for real-time monitoring.
- Contest Result Emails:
- After contest ends, users receive a summary of their results via email.
- Admin Tools:
- Contest management, announcements, user management, and bulk result mailing.
- Extensible API:
- RESTful endpoints for all major actions.
- User registers and verifies email.
- User joins a contest (ACM or OI).
- Submits solutions:
- ACM: Only AC counts.
- OI: Partial scores possible.
- Proctoring active:
- Must stay in fullscreen.
- Exiting fullscreen triggers warnings and is logged.
- After contest:
- Results are emailed to participants.
- Admin can view all attempts and violations.
- Authentication:
- Email verification after registration.
- Password reset emails.
- Contest Results:
- Automated summary sent to each participant after contest.
cd OnlineJudge
python3 -m venv venv
source venv/bin/activate
pip install -r deploy/requirements.txtpython3 manage.py makemigrations
python3 manage.py migratepython3 manage.py createsuperuserFollow prompts to set username, email, and password.
python3 manage.py runserver 0.0.0.0:8000Backend will run at http://localhost:8000
cd ../OnlineJudgeFE
npm install
npm run devFrontend will run at http://localhost:8080
cd OnlineJudge
source venv/bin/activate
python3 -m dramatiq account.tasks-
Enable 2-Step Verification in your Google Account
-
Generate App Password:
- Go to https://myaccount.google.com/apppasswords
- Select "Mail" and "Other (Custom name)"
- Copy the 16-character password
-
Configure in Admin Panel:
- Login at
http://localhost:8080/admin - Navigate to System → Configuration
- Fill in SMTP settings:
Server: smtp.gmail.com Port: 587 Email: your-email@gmail.com Password: [16-character app password] TLS: ✓ Enable- Click Save
- Click Test Email to verify
- Login at
Outlook/Hotmail:
Server: smtp-mail.outlook.com
Port: 587
TLS: Enabled
Yahoo Mail:
Server: smtp.mail.yahoo.com
Port: 587
TLS: Enabled
SendGrid:
Server: smtp.sendgrid.net
Port: 587
Email: apikey
Password: [your SendGrid API key]
TLS: Enabled
curl -X POST http://localhost:8000/api/admin/conf/smtp/ \
-H "Content-Type: application/json" \
-d '{
"server": "smtp.gmail.com",
"port": 587,
"email": "your-email@gmail.com",
"password": "your-app-password",
"tls": true
}'- Login at
http://localhost:8080/admin - Configure SMTP (see above)
- Create a Contest:
- Go to Contest → Create Contest
- Set title, start/end time, type (ACM/OI)
- Add problems
- Add Problems:
- Go to Problem → Create Problem
- Upload test cases
- Monitor Contestants:
- View real-time proctoring data
- Check submissions and rankings
- Send Contest Results:
- After contest ends, go to contest page
- Click "Send Result Emails" to notify all participants
- Register at
http://localhost:8080/register - Verify Email (check inbox for verification link)
- Browse Contests at
http://localhost:8080/contests - Join Contest:
- Click on contest
- Enter password if required
- Click "Start Contest"
- Enter Fullscreen Mode (required for proctored contests)
- Submit Solutions:
- Read problem
- Write code
- Submit
- View Results after contest ends (emailed to you)
- Check SMTP config in admin panel
- Verify app password is correct (not regular password)
- Check Dramatiq worker is running
- Look at backend terminal for error logs
- Make sure you created superuser (Step 3)
- Default URL:
http://localhost:8080/admin
- Check if npm install completed
- Verify backend is running on port 8000
- Try
npm run devagain
- Run migrations again:
python3 manage.py migrate - Delete
db.sqlite3and start fresh if needed
/api/register— User registration/api/verify_email— Email verification/api/apply_reset_password— Request password reset/api/contest/start— Start contest/api/contest/stop— Stop contest/api/contest/proctor— Log proctoring events/api/admin/contest/send_results— Admin: send contest result emails
OnlineJudge/— Django backendaccount/— User management, authentication, emailcontest/— Contest logic, attempts, proctoringutils/mail.py— Email utilitiesaccount/templates/— Email HTML templates
OnlineJudgeFE/— Frontend (Vue.js)
For issues, feature requests, or support, contact the avpthegreat team.
Proprietary – All rights reserved.
This software and its source code are proprietary to avpthegreat and Nexus Code. Unauthorized copying, distribution, modification, or use of this software, in whole or in part, is strictly prohibited.
This software is provided for demonstration and evaluation purposes only. Commercial use, redistribution, or deployment is not permitted without explicit written permission from avpthegreat.
For licensing inquiries, partnership, or SaaS offerings, contact avpthegreat directly.
Developed and maintained by avpthegreat for Nexus Code.