Organized by the Post Graduate Department of Business Administration, Seshadripuram College, Bengaluru
PRAGMATRIX 2026 is an enterprise-grade, high-performance web application designed to manage, score, track, and broadcast live standings for the inter-collegiate management carnival. The platform caters to two premier flagship quiz events:
- BizWizX β The ultimate business acumen and strategic decision challenge (customizable 4-round tournament).
- Vortex β A curated applied management gauntlet across 4 fixed rounds: KAIROS, TREORAI, ENMA, and GRAND FINALE.
The application provides an Admin Command Center for team onboarding, round management, score submissions, and scorecard generation, along with a secure OTP-based Participant Dashboard delivering real-time live score updates.
The public landing page features official institutional branding from Seshadripuram College alongside a live event countdown timer indicating competition launch timing and direct access to participant team login.
Admin login is protected with secured authentication credentials and passwordless OTP verification cards built with an elegant royal glassmorphic theme.
| Admin Portal Entry | OTP Authentication Card |
|---|---|
![]() |
![]() |
The central administrative hub allows event coordinators to manage active quiz events, onboard new participating teams, configure round criteria, and track round statuses (ACTIVE, FINISHED, or LOCKED).
Admins can view and search all registered teams across events (BizWizX and Vortex), inspect assigned Unique IDs (PMVX001, PMBZ001), trigger automated registration email resends, edit team details, or generate printable scorecards.
Admins submit scores using a structured scoring interface supporting filterable team lists (Scored vs. Unscored), individual judging criteria parameters (e.g., Quality of Candidate Selection, Role-Job Fit, Team Strategy), dynamic score calculation, and score lock capability.
| Batch Score Entry Overview | Detailed Criteria Evaluation Modal |
|---|---|
![]() |
![]() |
The live leaderboard computes tournament standings in real-time, allowing viewers to switch between BizWizX and Vortex leaderboards. Standings automatically update via AJAX background sync, and admins can export complete results directly into Excel (.xlsx).
Participating teams log in using their unique Participant ID and email OTP to track real-time score updates, view round-by-round points, monitor round statuses (FINISHED, IN PROGRESS, NOT ADVANCED), check overall tournament ranking, and download individual printable scorecards.
- Restricted Access: Self-service public registration is disabled; only authenticated admins can create and manage teams.
- Participant Identification: Automatically generates sequential, collision-free unique IDs per event:
PMBZ001,PMBZ002, ... for BizWizXPMVX001,PMVX002, ... for Vortex
- Instant Email Notification: Upon team creation, the system immediately dispatches a formal registration confirmation email containing the assigned Participant ID, event schedule, and venue details to the Team Lead's email.
- Manual Email Dispatch: Admins can resend credentials with a single click from the team registry.
- Two-Step Passwordless Authentication:
- Team enters their unique Participant ID (
PMBZxxx/PMVXxxx). - System issues a cryptographically secure (
SecureRandom) 6-digit numeric One-Time Password (OTP) sent directly to the registered Team Lead's email. - Team enters the OTP to establish an authenticated session.
- Team enters their unique Participant ID (
- Security & Rate Limiting:
- 5-minute OTP expiry window.
- Maximum 5 wrong attempts before OTP lockout.
- Anti-spam throttle: max 1 resend per 60 seconds and max 5 OTP requests per 15 minutes.
- Server-side session tracking in database and
HttpSession.
- Instant Score Tracking: Logged-in teams view their round-wise status, judging criteria, individual round points, total accumulated points, and current ranking.
- Seamless Concurrent Updates (No Refresh Needed): Employs asynchronous background AJAX polling (every 10s) to reflect score updates and round status changes made by admins on the fly.
- Interactive UI: Dynamic "Last updated" status indicators and visual state alerts for active vs. completed rounds.
- Multi-Admin Support: Seeded with 10 individual admin accounts (
admin1throughadmin10) with bcrypt-hashed passwords. - Round Administration: Edit round names (for BizWizX) and judging criteria; finish/lock rounds to compute leaderboard points or reopen rounds for audits.
- Batch Score Entry: Transactional score entry grid with automated input sanitization and duplicate key updates.
- Live Leaderboard & Printable Scorecards: Instant calculation of standings with dedicated, clean, printable scorecard generation tailored for event archives.
| Layer | Technologies / Libraries | Purpose |
|---|---|---|
| Backend Runtime | Java 17 (LTS) | Core application logic and execution |
| Servlet Specification | Jakarta Servlet API 5.0 (Jakarta EE 9+) | Web controllers, filters, and routing |
| Presentation Tier | Jakarta Server Pages (JSP) 3.0, JSTL 3.0 | Server-side templating and views |
| Database | MySQL 8.0+ | Relational data persistence & transactional locking |
| Connection Pooling | HikariCP 5.1.0 | High-performance, low-latency JDBC pool |
| Security & Auth | jBCrypt 0.4, Java SecureRandom | Password hashing & OTP token generation |
| Mailing Service | Jakarta Mail 2.1.3 + Eclipse Angus Mail 2.0.3 | Automated SMTP email delivery |
| JSON Serialization | Google Gson 2.10.1 | Live score status AJAX endpoints |
| Styling & Theme | Vanilla CSS3 (Custom Royal Design Tokens) | Gold, purple, and ivory glassmorphism theme |
| Build Tool | Apache Maven 3.8+ | Multi-module dependency management & WAR packaging |
| Target Server | Apache Tomcat 10.1+ / Eclipse Jetty 11+ | Servlet container runtime |
sequenceDiagram
autonumber
actor Admin as π¨βπΌ Admin
participant App as π» PRAGMATRIX Server
participant DB as ποΈ MySQL DB
participant Mail as π§ SMTP Server
actor Lead as π Team Lead
Admin->>App: Submits team details (College, Lead Email, Names)
App->>DB: Transaction: Lock & calculate next ID (PMBZxxx/PMVXxxx)
App->>DB: INSERT into teams table
App->>Mail: Trigger Participant ID confirmation email
Mail-->>Lead: Delivers Participant ID & event guidelines
App-->>Admin: Displays success state & email delivery status
sequenceDiagram
autonumber
actor Team as π₯ Team Member
participant App as π» PRAGMATRIX Server
participant DB as ποΈ MySQL DB
participant Mail as π§ SMTP Server
Team->>App: Submits Participant ID (e.g., PMBZ001)
App->>DB: Validates team existence & checks rate limits
App->>DB: Generates 6-digit OTP (5-min expiry) & stores in team_login_otps
App->>Mail: Sends OTP email to registered Lead Email
Mail-->>Team: Delivers Login OTP
Team->>App: Submits 6-digit OTP
App->>DB: Validates OTP code, expiry & attempt count
App->>DB: Marks OTP as used & creates team_sessions record
App-->>Team: Grants access to Team Dashboard
loop Every 10 Seconds (AJAX)
Team->>App: GET /team/score-status
App->>DB: Queries completed round scores & leaderboard rank
App-->>Team: Returns JSON score payload & updates DOM
end
PRAGMATRIX/
βββ docs/
β βββ screenshots/ # Application UI interface screenshots
β βββ 01-public-landing-countdown.png
β βββ 02-admin-login-portal.png
β βββ 03-otp-authentication-modal.png
β βββ 04-admin-dashboard-round-management.png
β βββ 05-admin-teams-directory.png
β βββ 06-admin-score-entry-grid.png
β βββ 07-admin-criteria-scoring-breakdown.png
β βββ 08-live-tournament-leaderboard.png
β βββ 09-participant-live-dashboard.png
βββ sql/
β βββ schema.sql # Full database schema and indexes
β βββ seed.sql # Quiz master data & default seed rounds
β βββ migrate_v2.sql # Incremental migration (lead_email, OTP & sessions)
βββ pragmatrix-common/ # Shared data access layer and utilities
β βββ src/main/java/com/pragmatrix/
β βββ dao/ # Data Access Objects (JDBC + PreparedStatements)
β β βββ AdminDAO.java
β β βββ OtpDAO.java
β β βββ QuizDAO.java
β β βββ RoundDAO.java
β β βββ ScoreDAO.java
β β βββ TeamDAO.java
β β βββ TeamSessionDAO.java
β βββ model/ # Shared Data Models
β βββ util/ # Encryption, DB pool & Email services
βββ pragmatrix-admin/ # Admin Command Center application module
β βββ src/main/
β βββ java/com/pragmatrix/admin/ # Admin Controllers, Filters & Servlets
β βββ webapp/ # Admin JSPs, CSS & Web resources
βββ pragmatrix-public/ # Public Participant portal module
β βββ src/main/
β βββ java/com/pragmatrix/public/ # Participant & Leaderboard Servlets
β βββ webapp/ # Participant JSPs & Live Leaderboard views
βββ pom.xml # Root multi-module Maven POM configuration
βββ Dockerfile # Docker packaging specification
βββ DEPLOYMENT.md # Deployment & hosting documentation
βββ README.md # Complete Project Documentation
+----------------------+
| quizzes |
+----------------------+
| quiz_code (PK) |
| quiz_name |
| id_prefix |
+----------+-----------+
| 1
|
| N
+----------------------+ +----------+-----------+ +----------------------+
| admins | | teams | | rounds |
+----------------------+ +----------------------+ +----------------------+
| admin_id (PK) | | unique_id (PK) | | round_id (PK) |
| username (UQ) | | quiz_code (FK) | | quiz_code (FK) |
| password_hash | | college_name | | round_number |
| full_name | | lead_email | | round_name |
| created_at | | student1_name | | judging_criteria |
+----------+-----------+ | student2_name | | is_finished |
| | student3_name | | finished_at |
| | registered_at | +----------+-----------+
| +----+-------------+---+ |
| | | |
| 1 1 | 1 | 1 |
| | | |
| N N | N | N |
+----------+--------------------+---+ +----+------------------+---+
| scores | | team_login_otps |
+-----------------------------------+ +---------------------------+
| score_id (PK) | | otp_id (PK) |
| unique_id (FK) | | unique_id (FK) |
| round_id (FK) | | otp_code |
| points | | generated_at |
| entered_by (FK) | | expires_at |
| entered_at | | is_used |
+-----------------------------------+ | attempt_count |
+---------------------------+
| 1
|
| N
+------------+--------------+
| team_sessions |
+---------------------------+
| session_id (PK) |
| unique_id (FK) |
| created_at |
| expires_at |
+---------------------------+
- Java Development Kit (JDK): Version 17 or higher
- Apache Maven: Version 3.8+
- MySQL Server: Version 8.0+
- Web Server / Servlet Container: Apache Tomcat 10.1+ (supports Jakarta EE 9/10)
- Log in to your MySQL terminal or GUI client (Workbench, DBeaver):
mysql -u root -p
- Execute the base schema and seed scripts:
SOURCE sql/schema.sql; SOURCE sql/seed.sql;
- (If updating an existing installation), run the migration script:
SOURCE sql/migrate_v2.sql;
Update the connection string and credentials to match your MySQL environment:
db.url=jdbc:mysql://localhost:3306/pragmatrix2026?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=UTF-8
db.username=root
db.password=YourMySQLPassword
db.pool.maxSize=15
db.pool.minIdle=5Configure your SMTP mail credentials to enable automated Participant ID confirmation and Login OTP emails. For Gmail:
- Enable 2-Step Verification on your Google Account.
- Generate an App Password under Security > 2-Step Verification > App passwords (Select "Mail" / "Other").
- Populate
pragmatrix-common/src/main/resources/email.properties:
email.smtp.host=smtp.gmail.com
email.smtp.port=587
email.smtp.username=your-institution-email@gmail.com
email.smtp.password=abcd efgh ijkl mnop
email.from.address=your-institution-email@gmail.com
email.from.name=PRAGMATRIX 2026Execute Maven from the repository root:
mvn clean package- Deployable WAR files will be generated at:
pragmatrix-admin/target/pragmatrix-admin.warpragmatrix-public/target/pragmatrix-public.war
- Copy the WAR files into your Tomcat
webapps/directory and start Tomcat:- Windows:
catalina.bat start - Linux/macOS:
./catalina.sh start
- Windows:
- Access the web applications at:
- Admin Portal:
http://localhost:8080/pragmatrix-admin - Public Portal:
http://localhost:8080/pragmatrix-public
- Admin Portal:
The system automatically provisions 10 administrative accounts on startup if not already present:
| Username | Default Password | Role |
|---|---|---|
admin1 |
Pragmatrix@2026 |
Quiz Administrator |
admin2 |
Pragmatrix@2026 |
Quiz Administrator |
admin3 to admin10 |
Pragmatrix@2026 |
Quiz Administrator |
π Security Notice: Change default passwords in production via the administrative user management interface or database bcrypt update.
- SQL Injection Prevention: 100% of database interactions are implemented using strictly parameterized
PreparedStatementqueries. - Credential Protection: Passwords are encrypted with salted BCrypt hashing.
- OTP Hardening:
- Generation relies on
java.security.SecureRandom. - Single-use execution enforced by atomic state updates.
- Invalidation of obsolete OTP tokens prior to new generation.
- Generation relies on
- Session Integrity: Team and Admin routes are guarded by dedicated
HttpFilterinstances (AdminAuthFilterandTeamAuthFilter) preventing unauthorized endpoint bypass.
PRAGMATRIX 2026 is published under the terms of the project's standard LICENSE.
Created for the Post Graduate Department of Business Administration, Seshadripuram College, Bengaluru.








