A comprehensive system for hosting and managing programming contests, developed as a graduation project.
PSCE is a dynamic distributed real-time system designed to manage and control programming contests in a variety of computing environments. It includes support for a variety of programming languages. The system is designed to allow teams to use any language development tool which can be invoked from a command line and generates an executable file.
It automatically timestamps and archives submitted code. PSCE supports two types of judging. The first type is automated (or computer) judging and second type are manual (or human) judging. These two types used independently or in conjunction with each other.
It allows students (contestants) to submit programs over the same network to contest judges. The judges can recompile the submitted program, execute it, view the source code and/or execution results, and send a response back to the team. The judge also can retrieve and re-execute archived runs.
It also provides a mechanism for students to submit clarification requests and queries to the judge, and for the judge to reply to queries and to issue broadcast to students. It can also detect plagiarism and exclude students who are cheating.
The project consists of three main components:
A JavaFX-based desktop application for contest participants that allows:
- Secure login to the contest environment
- Viewing and selecting programming problems
- Submitting solutions to problems
- Requesting clarifications from judges
- Receiving feedback and clarification responses
The server-side component that handles:
- User registration and authentication
- Problem management
- Submission processing and evaluation
- Code compilation and testing
- Clarification management
- Results tracking and scoring
A web-based interface providing:
- Contest management dashboard for administrators
- Scoreboard and standings visualization
- Additional interfaces for judges and administrators
Project Root
β
βββ EDDX/ # System design diagrams
βββ src/ # Source code
β βββ PSCEClient/ # Client application
β β βββ src/ # Client source code
β β βββ dsproject/ # Client implementation files
β β
β βββ PSCEServer/ # Server application
β β βββ src/ # Server source code
β β βββ Codes/ # Submitted code storage
β β βββ Input/ # Problem input files
β β βββ Output/ # Expected output files
β β βββ Answers/ # Clarification answers
β β
β βββ contestv2/ # Web interface
β βββ src/ # Web application source
β βββ web/ # Frontend resources
β
βββ Software Documentation.pdf # Comprehensive documentation
βββ README.md # This file
- Secure Authentication: Role-based access control for participants, judges, and administrators
- Problem Management: Tools for creating, editing, and managing programming problems
- Automated Evaluation: Automatic compilation, execution, and testing of submitted code
- Clarification System: Communication channel between contestants and judges
- Real-time Scoreboard: Live updates on contest standings and results
- Multi-language Support: Ability to submit solutions in various programming languages
- Scalable Architecture: Designed to handle multiple concurrent users
- Plagiarism Detection: Tools to identify potentially plagiarized code
- Run Archive: History of all submitted code with timestamps
- Backend: Java
- Client UI: JavaFX
- Web Interface: JSP, HTML, CSS, JavaScript
- Database: Relational database for storing problems, submissions, and user data
- Network Communication: Socket programming for client-server communication
- Clone the repository
- Configure the server paths in
PC2Server.java - Set up the required database
- Compile and run the server application
- Compile and distribute the client application to contestants
- Server: Java Runtime Environment 8 or higher
- Client: Java Runtime Environment 8 or higher
- Web Interface: Modern web browser with JavaScript enabled
- Network: Stable network connection between clients and server
Development Team:
- Ola Galal
- Amr Hassan
- Ahmed Daoush
University:
- Menoufia University
- Faculty of Computers and Information
- Computer Science Department
- July 2019
Comprehensive documentation including:
- Software Documentation (available in PDF and DOCX formats)
- System design diagrams (ERD, DFD, Use Case diagrams)
- Sequence diagrams
- Architecture specifications
All rights reserved. This project is property of the development team and their academic institution.
Β© 2019 PSCE Development Team