=
---- DATABASE.md - Complete database schema, tables, and relationships
- ARCHITECTURE.md - System design, role-based architecture, decision engine flow
UCAM is a complete admission management solution for universities and colleges. It handles student applications, automated admissions decisions, and departmental oversight through two separate desktop applications.
This project contains TWO separate VB.NET WinForms applications:
- For: Students
- Purpose: Apply online, submit WAEC results, select program preferences, check admission status
- Database.vb: Configure for student-facing database access
- Access: Can run locally or be deployed for remote access
-
For: System Administrators and Department Heads
-
Purpose: Manage admissions, configure criteria, review applications, auto-admit qualified students
-
Database.vb: Configure for administrative database access
-
Access: Local network deployment for admin staff
-
Roles:
- Super Admin: Full system control
Super Admin
├─ Global oversight & auditing
├─ Create departments and programs
├─ Manage department admin users
├─ Configure admission criteria
└─ View all applications across system
Department Admin
├─ Local, scoped access to own department
├─ Review applicants for their department
├─ Make manual admission decisions
├─ Override auto-admit decisions (if permitted)
└─ Generate department reports
✓ Ensures accountability, clarity, scalability, and structured control
Applicants select 3 program preferences:
Student applies with:
├─ 1st Choice Program
├─ 2nd Choice Program
└─ 3rd Choice Program
Auto-Admit Engine evaluates:
│
├─ Does 1st choice criteria match? → ADMIT to 1st choice ✓
├─ If NO: Does 2nd choice match? → ADMIT to 2nd choice ✓
├─ If NO: Does 3rd choice match? → ADMIT to 3rd choice ✓
└─ If NO: REJECT applicant ✗
✓ Makes admission dynamic, intelligent, and fair
- Each department sees only their applicants
- Super Admin sees all data globally and can audit any activity
- Department admins cannot access other departments' data
✓ Prevents data overload
✓ Boosts clarity
✓ Strengthens data security and accountability
WAEC examination results stored as JSON (not hardcoded fields):
{
"subjects": [
{
"subject": "English",
"grade": "C6"
},
{
"subject": "Mathematics",
"grade": "B3"
}
]
}Benefits:
- ✓ Dynamic filtering and rule-based parsing
- ✓ AI-ready scoring engine for future expansion
- ✓ Easy schema updates without database restructuring
no image
When student submits application:
- ✓ Automated email confirmation is sent
- ✓ PDF receipt is generated instantly
- ✓ Student has immediate proof of submission
Enhances transparency, user trust, and system professionalism
Unique module that automatically admits qualified applicants:
- Uses
criteria_jsonrules for instant validation - Evaluates WAEC results against program requirements
- Applies aggregate scoring and subject-grade thresholds
- Implements tie-breaker rules for equal scores
Benefits:
- ✓ Reduces manual workload
- ✓ Minimizes human bias
- ✓ Enables real-time admission decisions
- ✓ Semi-AI decision engine without expensive AI tools
Decision Criteria Includes:
- Aggregate formula calculation
- Subject-specific grade requirements
- Weighted scoring system
- Tie-breaker logic (aggregate ascending, math grade ascending, age preference)
┌─────────────────────────┬─────────────────────────┐
│ Admission Form App │ Admission Management │
│ (Student Portal) │ (Admin Portal) │
├─────────────────────────┼─────────────────────────┤
│ • Apply for programs │ • Create departments │
│ • Upload WAEC results │ • Set admission criteria│
│ • Check admission status│ • Manage admin users │
│ • View decisions │ • Auto-admit students │
│ │ • Review applications │
│ │ • Generate reports │
│ │ • View audit logs │
└─────────────────────────┴─────────────────────────┘
↓ ↓
Single MySQL Database
- Both apps work locally over LAN or deployed separately
- No internet required for local deployment
- Fast, secure, and cost-effective
Every action is logged in:
logstable - System-wide activity loggingadmission_flow_logtable - Admission decision tracking
Each entry contains:
- 🕒 Timestamp of action
- 🌐 IP address of user
- 👤 Responsible admin/user
- 📋 Decision or action taken
- 📝 Reason/notes for decision
✓ Full transparency for accountability and auditing (even for regulators)
| Component | Requirement |
|---|---|
| Operating System | Windows 10 or Higher |
| IDE | Visual Studio 2022 |
| .NET Framework | 4.7.2+ |
| Web Server | Apache (with MySQL support) |
| Database | MySQL 5.7+ |
| RAM | 4GB minimum (8GB+ recommended) |
| Storage | 500MB+ available space |
Install MySQL
- Download from https://www.mysql.com/downloads/
- Or use via Apache bundle (XAMPP, WAMP, etc.)
Install Visual Studio 2022
- Download from https://visualstudio.microsoft.com/
- Include .NET desktop development workload
- Include VB.NET support
Install Apache (Optional for web deployment)
- For local LAN deployment, Apache not required
- For remote access, configure Apache with PHP
Step 1: Import Database Schema
-
Open MySQL command line or MySQL Workbench
-
Create database (optional - import creates it):
CREATE DATABASE ucam_db;
-
Import the schema:
mysql -u root -p ucam_db < Ucam/plan_files/UCAM_db.sqlOr import via MySQL Workbench:
- File → Run SQL Script
- Select:
Ucam/plan_files/UCAM_db.sql - Execute
-
Verify tables created:
USE ucam_db; SHOW TABLES;
Should show 9 tables: departments, programs, users, students, program_choices, admissions, admission_flow_log, logs, settings
Step 1: Open Solution in Visual Studio 2022
File → Open → College Admission Management.sln
Step 2: Configure Database.vb
-
Open
Database.vbfile in the project -
Find the connection string (line where MySQL connection is defined)
-
Update connection details:
' Example configuration Private connectionString As String = "server=localhost;database=ucam_db;uid=root;password=;"
Replace with your settings:
localhost- MySQL server addressucam_db- Your database nameroot- Your MySQL username- Leave empty or add password if set
Step 3: Build Solution
Build → Build Solution
(Or press Ctrl+Shift+B)
Step 4: Run Application
Debug → Start Debugging
(Or press F5)
Step 5: First Login
- Application starts
- Login with default Super Admin credentials (if created during setup)
- Or check database for initial user credentials
Step 1: Open Solution in Visual Studio 2022
File → Open → College Admission Form.sln
Step 2: Configure Database.vb
- Open
Database.vbfile in this solution (different from Management app) - Update connection string (same database, different configuration if needed):
Private connectionString As String = "server=localhost;database=ucam_db;uid=root;password=;"
Step 3: Build Solution
Build → Build Solution
Step 4: Run Application
Debug → Start Debugging
Step 5: Student Portal Ready
- Application opens
- Students can now fill application forms
- Submit applications with WAEC results
- Check admission status
- Open College Admission Form.sln application
- Fill Application Form:
- Personal details (name, email, phone, DOB)
- Academic information (index number, SHS attended)
- WAEC examination results (subjects and grades)
- Select Program Preferences:
- Choose 1st choice program
- Choose 2nd choice program (backup)
- Choose 3rd choice program (final backup)
- Upload Documents:
- Certificate/diploma scans (if required)
- Submit Application:
- Click Submit
- PDF receipt downloads automatically
- Confirmation email sent instantly
- Check Status:
- Anytime via "Check Admission Status" feature
- View decision for 1st, 2nd, or 3rd choice
The Management app runs auto-admit process:
-
Evaluation Against Criteria:
- Reads
criteria_jsonfrom department - Checks student's WAEC results from
waec_results_json - Calculates aggregate score
- Reads
-
Decision Logic:
- 1st Choice: Does student meet criteria? → AUTO-ADMIT
- If Rejected: Check 2nd choice criteria → AUTO-ADMIT if qualifies
- If Rejected: Check 3rd choice criteria → AUTO-ADMIT if qualifies
- If All Rejected: Generate rejection message
-
Results Stored:
- Decision recorded in
admissionstable - Flow logged in
admission_flow_logtable - Student notified (email + status update)
- Decision recorded in
-
Open College Admission Management.sln
-
Login as Department Admin
- Uses credentials assigned by Super Admin
- Can only see own department's applicants
-
Review Applicants:
- View list of applicants for your department
- Filter by: 1st choice, 2nd choice, 3rd choice
- See auto-admit decisions already made
-
Manual Actions (if needed):
- Override auto-admit decisions (with reason)
- Manually admit borderline cases
- Reject applicants with notes
- Add decision reason to notes
-
Generate Reports:
- Export admitted students list (Excel/PDF)
- View admission statistics
- Track decision timeline
-
Open College Admission Management.sln
-
Login as Super Admin
- Full access to entire system
-
Manage Departments:
- Create new departments
- Set department quotas
- Configure department email
-
Manage Programs:
- Create programs under departments
- Set program prerequisites
- Enable/disable programs
-
Configure Admission Criteria:
- Set
criteria_jsonfor each department - Define aggregate formula
- Set subject-specific requirements
- Configure tie-breaker rules
- Set
-
Manage Users:
- Create department admin accounts
- Assign admins to departments
- Reset admin passwords
- View all user activity
-
View All Applications:
- Access all student applications
- View decisions across all departments
- Monitor auto-admit engine results
-
View Audit Logs:
- Access
logstable for system activity - View
admission_flow_logfor all decisions - Export audit reports
- Track IP addresses and timestamps
- Access
UCAM/
│
├── College Admission Management.sln
│ ├── My Project
│ ├── Dependencies
│ ├── Database.vb # Configure for admin access
│ ├── Users[Admin Forms & Logic]
│ └── [Helper Classes]
│
├── College Admission Form.sln
│ ├── My Project
│ ├── StudentUser
│ ├── Database.vb # Configure for student access
│ ├── Form1.vb # Main application form
│ ├── [Student Forms]
│ └── [Helper Classes]
│
├── plan_files/
│ └── UCAM_db.sql # Database schema (9 tables)
│
└── Assets/
├── ucam_logo.png
└── [Screenshots]
Important: Each solution has its own Database.vb file. Configure both separately based on your environment.
| Component | Technology |
|---|---|
| IDE | Visual Studio 2022 |
| Language | VB.NET |
| UI Framework | Windows Forms (WinForms) |
| Database | MySQL 5.7+ |
| Database Connector | MySQL Connector/NET |
| Server | Apache (optional for web access) |
| Operating System | Windows 10+ |
- DATABASE.md - Complete database schema, tables, and relationships
- ARCHITECTURE.md - System design, role-based architecture, decision engine flow
Project From: University of Education, Winneba
Department: BSc. Information & Communications Technology Education (ICTE)
Supervised By: Dr. Daniel Danso Essel
For questions or support:
- WhatsApp: Contact Engineers
- GitHub: Open an issue in the repository











