Skip to content

MuhammadAliyan10/UOLJudge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UOLJudge

License Version Status PRs Welcome

Enterprise-Grade Programming Contest Platform

The most reliable, feature-complete judging system for university programming contests. Built for high-availability environments where failure is not an option.


πŸš€ Why UOLJudge?

vs. Codeforces / HackerRank

Feature UOLJudge Online Platforms
Offline Operation βœ… 100% offline-capable ❌ Requires internet
Network Latency < 100ms (local) 200-500ms+
Data Privacy βœ… Your data stays local ❌ Cloud storage
Customization βœ… Full source access ❌ Locked platform
Cost βœ… Free, self-hosted πŸ’° Subscription fees
Multi-Category βœ… CORE, WEB, ANDROID ❌ Code only

vs. DOMjudge / PCΒ²

Feature UOLJudge Traditional Systems
Real-Time Updates βœ… WebSocket-powered ❌ Polling/refresh
Modern UI βœ… Premium shadcn/ui ❌ Legacy interfaces
Setup Time 5 minutes (Docker) Hours of configuration
Mobile Support βœ… Responsive design ❌ Desktop only
Live Leaderboard βœ… Instant updates ❌ Manual refresh

✨ Key Features

🎯 Zero-Trust Security

  • Role-based access control β€” Admin, Jury, Participant isolation
  • Device limit enforcement β€” Max 2 devices per team
  • Server-side time authority β€” Clock manipulation impossible
  • Path traversal protection β€” Secure file downloads

⚑ Real-Time Everything

  • WebSocket-powered β€” < 100ms update propagation
  • Live leaderboard β€” Animated score changes
  • Instant notifications β€” Announcements, bans, grades
  • Presence indicators β€” See who's grading what

πŸ† ICPC-Standard Scoring

  • 3-tier ranking β€” Problems Solved β†’ Score β†’ Time Penalty
  • O(1) leaderboard reads β€” Atomic accumulator pattern
  • Leaderboard freeze β€” Hide final hour rankings
  • Penalty system β€” 20-minute wrong answer penalties

πŸ“± Multi-Category Support

  • CORE β€” Traditional programming (C++, Python, Java)
  • WEB β€” Frontend/fullstack projects (ZIP upload)
  • ANDROID β€” Mobile apps (APK/ZIP upload)

🎬 Award Ceremony Generator

  • One-click export β€” Interactive HTML ceremony
  • Keyboard-controlled β€” Professional presentation
  • Fireworks animation β€” Dramatic champion reveal
  • Offline playback β€” Works without server

πŸ—οΈ Architecture

For a detailed look at the system architecture and data flow, please refer to FLOW.md.

graph TD
    Browser[Web Browser] -->|HTTPS| LB[Load Balancer]
    Mobile[Mobile Device] -->|HTTPS| LB
    LB -->|HTTP| NextJS[Next.js App]
    LB -->|WS| WS[WebSocket Server]
    NextJS -->|Query| DB[(PostgreSQL)]
Loading

πŸ› οΈ Quick Start

Prerequisites

  • Docker & Docker Compose
  • Git

Installation

# Clone the repository
git clone https://github.com/MuhammadAliyan10/UOLJudge.git
cd uol-judge

# Start the application using the CLI helper
./bin/uol-judge start

# Initialize database
./bin/uol-judge init

Default Login: admin / uol0512

For detailed deployment instructions, see DEPLOYMENT.md.


🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.

πŸ”’ Security

For security policy and reporting vulnerabilities, please refer to SECURITY.md.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


UOLJudge V5.0 β€” When the network fails, the contest never does.

About

A mission-critical, offline-first Competitive Programming Platform built for high-availability university environments. Features Zero-Trust Architecture, Real-Time Sync (Pulse Engine), and Dockerized Federated Deployment.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages