Web application for running the admission competition in the Greek National School of Judges (GNSJ). The outfacing parts of the application remain online for only 2-3 weeks in September, while the online submission is open, whereas the rest of the application is active on the GNSJ intranet the entire year. The admission competition normally takes place from September until January, when the application is most heavily used. For the implementation details please check the relevant blog post.
Functionality at a glance:
- Separate areas for external/internal users with respective functionality.
- Online registration and application submission for external users (applicants).
- Role-based user management system for internal users (GNSJ employees).
- Competition setup and progress monitoring.
- Application examination and approval workflow.
- Exam management with automatic room assignment.
- Grades entry, results reporting and exporting.
- ASP.NET Core MVC on .NET Core as the main application framework.
- Entity Framework Core ORM for object-oriented, type-safe database access.
- MySQL database server with Pomelo.EntityFrameworkCore.MySQL EF Core provider.
- DinkToPdf/wkhtmltopdf for dynamic report creation in pdf format.
- External users (prospective applicants):
- Register with their email address.
- Submit applications online.
- Internal users (organizational employees) :
- Created and managed by the application admin.
- Manage the competitions.
Role-based user privilege classification:
- Application submission.
- Data entry.
- Employee functionality.
- Application maintenance (resource and competition management).
- Submitted application change.
- Supervisor and Employee functionality.
- User administration and role assignment.
* Please note that, as per the project requirements, the application interfaces are offered only in the Greek language, and so are the presented screenshots. Nonetheless, the machinery required to support multiple languages has been put in-place, so extending the application to other languages would be as simple as providing the translated text.
External functionality allows external users of the application (applicants interested in participating in the competition) to register with their email and submit their application form. External user registration supports: account activation via confirmation email, bot protection with Google’s reCAPTCHA v3, password reset via email.
Application creation/editing for authenticated users:
- 4 successive pages for personal information, user documents uploading, review and submission, application download.
- Saving functionality for resuming editing at a later time.
- Field check for validity and completeness (both client- and server-side).
- Automatic fields/options disabling based on user input.
- Select and upload local file of limited size.
- Delete uploaded file.
- Check for uploading the same file twice.
- Check for required files before proceeding.
Application download in pdf format:
Internal functionality allows internal users of the application to perform the entire competition workflow. Application users are managed via an integrated user management module by users belonging in the Admin role.
User management (accessible to the Admin role):
- Create, delete, edit users.
- Search users by first name, last name or email.
- Change user role membership.
- Change user password.
- Set application editing state (e.g. unlock application for editing in case of accidental submission).
Similar interfaces for managing other application resources such as graders, proctors and rooms.
- Competition creation/editing.
- Flag for active/inactive competition (only active competitions are available to external users).
- Assignment of main and substitute competition graders with dynamic server loading.
Competition monitoring with real-time statistics:
- Number of overall registered users.
- Number of overall applications: total, submitted, not-submitted, outstanding, approved, rejected
- Statistics per active competition.
Application examination and approval:
- Application searching and record creation.
- Application workflow states: Submitted, Approved, Rejected.
- Application approval when the requirements are met.
- Application reset to initial state by the Supervisor/Admin only.
- Set exam date and time.
- Assign exam rooms for a subject.
- Select room from a filtered list with dynamic server loading.
- Reorder exam rooms.
- Copy exam room and examinee assignment between subjects.
- Print overall participants’ lists.
- Print per-room attendance sheets.
Assignment of examinees to exam rooms:
- Pool of unassigned examinees on the left.
- Pools for each room on the right.
- Room capacity limits.
- Automatic assignment in alphabetical order according to room capacity.
- Manual assignment/unassignment of examinees to rooms.
- Random Access
- Search for examinee.
- In-place grade entry.
- In-place grade entry.
- Optional record filtering.
- Grade entry in alphabetical order.
- Grade saving per page.
- Transition to desired page.
Results reporting and exporting:
- Dynamic report creation in pdf format.
- In-house reporting engine for quickly designing new report variants.
- Multiple reports for overall results, failed and passed examinees, etc.
- Results exporting in csv format.