=
---An MVP desktop application for digitalized campus security incident reporting, tracking, assignment, and response management across university campuses.
- Vision & Overview
- Features
- System Requirements
- Installation & Setup
- Quick Start Guide
- How It Works
- Technology Stack
- Project Structure
- Configuration
- User Roles & Workflows
- Incident Lifecycle
- Troubleshooting
- Contributing
- License
To provide University campuses with the most modern digitalized management security alternative in scouting, analyzing, and applying real solutions to achieve the utmost safety and security on campuses.
The Desktop Incidence Management System (IMS) is a desktop-based security incident management application designed for university campuses. It enables students to report security incidents, administrators to manage incident assignments and workflows, and security patrol teams to investigate, respond to, and document incident resolutions—all in a centralized, auditable system.
✅ Digitize Incident Reporting — Eliminate paper-based incident reports; enable instant digital reporting by students.
✅ Centralized Incident Management — Maintain a single source of truth for all incidents across multiple campuses.
✅ Real-Time Visibility — Admins and security teams track incident status in real-time from pending to closed.
✅ Efficient Assignment & Coordination — Admin assigns incidents to specific campus patrol teams with automatic notifications.
✅ Improved Response Time — Reduce delays in incident response through streamlined assignment workflow.
✅ Complete Accountability — Maintain full audit trail of all incident actions: reporting, assignment, responses, status changes.
✅ Data-Driven Decision Making — Generate analytical reports on incident trends, response times, and campus safety metrics.
✅ Multi-Campus Support — Manage security across multiple campus locations with role-based access per campus.
| Feature | Description |
|---|---|
| Secure Registration | Create account during first login with index number and password |
| Complete Profile Setup | Upload passport photo, enter full name, select campus, provide phone number |
| Report Incident | File security incident reports with title, description, category, location, and evidence |
| Real-Time Reference Number | Automatic incident reference number (e.g., INC-2026-10-0001) for tracking |
| View Report History | See all incidents reported by the student with current status |
| Track Status | Monitor incident status progression (Pending → Assigned → In Progress → Resolved → Closed) |
| View Outcomes | See final resolution details and actions taken by security team |
| Attach Evidence | Upload incident photos/evidence to support report |
| Multi-Campus Support | Report incidents on assigned campus with location details |
| Feature | Description |
|---|---|
| Assigned Incidents Dashboard | View all incidents assigned to their patrol team |
| Investigate Incidents | Review incident details, location, student reports, and evidence |
| Investigation Updates | Post investigation updates to incident (Investigation Update response type) |
| Actions Taken Logging | Document specific actions taken during incident investigation (Action Taken response type) |
| Submit Final Reports | Complete incident investigation with final report and evidence (Final Report response type) |
| Evidence Documentation | Upload photos/evidence for investigation and final report |
| Status Updates | Track incident status as they progress through investigation |
| Campus Assignment | Only view and respond to incidents on assigned campus |
| Team Collaboration | Coordinate with other team members on same incident assignments |
| Feature | Description |
|---|---|
| System Dashboard | View key metrics (total incidents, pending, assigned, resolved, response times) |
| Incident Overview | View all incidents across all campuses with filtering and search |
| Bulk Student Import | Import student lists from Excel file with automatic account creation |
| Security Team Registration | Create security patrol accounts and assign to campuses |
| Incident Categories Management | Define incident categories (theft, assault, fire, etc.) with default severity levels |
| Campus Management | Add and manage multiple university campuses |
| Incident Assignment | Review pending incidents and assign to appropriate patrol teams |
| Assignment Workflow | Reassign, cancel, or complete incident assignments |
| Response Monitoring | Review all patrol team responses and investigation updates |
| Incident Closure | Review completed investigations and formally close incidents |
| Status Management | Manually update incident status with change tracking and reasons |
| Audit Trail | View complete history of all incident status changes |
| Analytics & Reports | Generate reports on incident trends, response times, category distribution |
| User Account Management | Manage admin, security, and student accounts with activation/deactivation |
| Notification System | Send automated notifications to security teams on new assignments |
- Operating System: Microsoft Windows 10 or Windows 11 (64-bit)
- Framework: .NET Framework 4.7.2 or higher
- RAM: 4 GB minimum (8 GB recommended for multi-campus systems)
- Storage: 2 GB free disk space
- Display: 1024 x 768 minimum screen resolution
- Database System: MySQL 5.7 or higher / MySQL 8.0 (recommended)
- Database Port: Default 3306 (or custom as configured)
- User Permissions: Full CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE permissions
- IDE: Microsoft Visual Studio 2022 Community Edition Compatible
- Language: VB.NET
- UI Framework: Windows Forms (WinForms)
- Database Driver: MySQL Connector/NET
# Clone the repository
git clone https://github.com/your-organization/DesktopIncidenceManagementSystem.git
cd DesktopIncidenceManagementSystem-
Open MySQL Command Line or MySQL Workbench
-
Create database:
CREATE DATABASE ims_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Import database schema:
- Navigate to
core/folder - Run
DatabaseQuery.txtin MySQL (fresh start with no data) - OR import
ims.sql(pre-built with sample data)
- Navigate to
-
Verify database creation:
USE ims_db; SHOW TABLES;
Expected tables:
users,campuses,incident_categories,incidents,incident_assignments,incident_responses,incident_status_history
-
Open project in Visual Studio 2022
- File → Open → Incidence Management System.sln
-
Edit connection string:
- Navigate to
Shared/Database.vb - Update MySQL credentials:
Public connectionString As String = "Server=localhost;Database=ims_db;Uid=root;Pwd=your_password;Port=3306"
Update:
Server,Database,Uid,Pwd,Port - Navigate to
-
Save file
If using fresh database (DatabaseQuery.txt):
INSERT INTO users (
username,
password_hash,
role,
full_name,
is_active
) VALUES (
'admin',
'SHA2("admin", 256)',
'ADMIN',
'System Administrator',
TRUE
);Login credentials:
- Username:
admin - Password:
admin123
INSERT INTO campuses (campus_name, campus_code, campus_description)
VALUES
('North Campus', 'NC', 'Northern campus location'),
('South Campus', 'SC', 'Southern campus location'),
('Central Campus', 'CC', 'Central campus location');INSERT INTO incident_categories (category_name, category_description, severity_default)
VALUES
('Theft', 'Theft or stolen property', 'MEDIUM'),
('Assault', 'Physical assault or violence', 'HIGH'),
('Fight', 'Physical altercation between persons', 'HIGH'),
('Sexual Harassment', 'Sexual harassment or misconduct', 'CRITICAL'),
('Fire Outbreak', 'Fire or fire-related incident', 'CRITICAL'),
('Vandalism', 'Property damage or vandalism', 'MEDIUM'),
('Drug Abuse', 'Drug-related incident', 'HIGH'),
('Trespassing', 'Unauthorized presence', 'LOW'),
('Other', 'Other security incident', 'MEDIUM');-
Build solution:
- Build → Build Solution (Ctrl+Shift+B)
- Verify no compilation errors
-
Run application:
- Press F5 or Debug → Start Debugging
- Login screen appears
-
Test Login:
- Admin: Username:
admin, Password:admin123
- Admin: Username:
- Login as Admin
- Username:
admin - Password:
admin123(default)
- Username:
- Setup Campuses
- Admin Dashboard → Campus Management
- Add: North Campus, South Campus, Central Campus
- Configure Incident Categories
- Admin Dashboard → Incident Categories
- Add all category types (Theft, Assault, Fire, etc.)
- Import Students [found at Core/StudentData.xlxs]
- Admin Dashboard → Student Import
- Prepare and Upload Excel file with: Index Number, Full Name
- System auto-creates student accounts with Default Password
1234
- Register Security Teams
- Admin Dashboard → Security Team Management
- Create patrol accounts: North Campus Patrol, South Campus Patrol, Central Campus Patrol
- Assign each patrol team to their campus
Students can now report incidents, security teams can investigate, admin can manage workflow.
-
Launch Application
- Login screen appears
-
First Login
- Index Number: Student ID
- Password: Default password from import
-
Complete Profile
- Upload passport photo
- Enter full name
- Select campus
- Enter phone number
-
Dashboard Access
- View incident reporting option
- See incident history
-
Click: Report New Incident
-
Fill Incident Details:
- Incident Title: Brief summary (e.g., "Laptop Stolen from Dormitory")
- Description: Detailed account of incident
- Campus: Select campus where incident occurred
- Category: Select category (Theft, Assault, etc.)
- Location: Specific location on campus
- Evidence: Upload photo/evidence (optional)
-
Submit Report
- System generates Incident Reference Number (e.g., INC-2026-10-0001)
- Status: PENDING
- Student receives confirmation
-
View Incident History
- See all reported incidents
- View current status
-
Monitor Progress
- Status updates: PENDING → ASSIGNED → IN_PROGRESS → RESOLVED → CLOSED
- View outcomes and actions taken
-
Dashboard Shows Assigned Incidents
- List of incidents assigned to team
-
Review Incident Details
- Student report
- Location
- Evidence
- Category and priority
-
Post Investigation Update
- Describe investigation progress
- Update status to IN_PROGRESS
-
Document Actions Taken
- Specify actions taken
- Add evidence photos
- Include findings
-
Submit Final Report
- Complete investigation findings
- Upload evidence
- Describe resolution
-
Status Updates
- From IN_PROGRESS → RESOLVED → CLOSED
-
Admin Reviews & Closes
- Admin reviews final report
- Formally closes incident
STUDENT REPORTS INCIDENT
↓
System Creates Incident Record
├→ Generates unique reference number
├→ Sets status to PENDING
└→ Stores evidence if provided
↓
ADMIN RECEIVES NOTIFICATION
├→ Reviews pending incidents
├→ Checks incident details and evidence
└→ Determines severity
↓
ADMIN ASSIGNS TO PATROL TEAM
├→ Selects appropriate campus patrol
├→ Updates incident status to ASSIGNED
└→ Security team receives notification
↓
PATROL TEAM INVESTIGATES
├→ Receives assignment
├→ Reviews student report
├→ Begins investigation
└→ Updates status to IN_PROGRESS
↓
PATROL TEAM POSTS UPDATES
├→ Investigation Update responses
├→ Actions Taken documentation
└→ Evidence photos uploaded
↓
PATROL TEAM SUBMITS FINAL REPORT
├→ Complete investigation findings
├→ Resolution details
└→ Status moves to RESOLVED
↓
ADMIN REVIEWS & CLOSES
├→ Reviews final report
├→ Verifies actions taken
└→ Closes incident (Status = CLOSED)
↓
STUDENT SEES OUTCOME
├→ Incident marked CLOSED
├→ Can view all updates and actions taken
└→ Final report available
| Layer | Technology | Version |
|---|---|---|
| IDE | Microsoft Visual Studio | 2022 |
| Language | VB.NET | .NET Framework 4.7.2+ |
| UI Framework | Windows Forms (WinForms) | Built-in |
| Database | MySQL | 5.7 / 8.0 |
| Database Driver | MySQL Connector/NET | |
| Password Security | SHA-256 Hashing | Cryptographic Standard |
| Application Type | Desktop Incident Management | Single Solution |
| Architecture | Single-tier Monolithic | WinForms + MySQL |
DesktopIncidenceManagementSystem/
├── bin/ # Compiled executable files
│
├── src/
│ ├── Core/
│ │ └── PasswordHasher.vb # Password hashing utility
│ │ └── DatabaseQuery.txt
└── StudentsData.xlxs
│ ├── Features/
│ │ ├── Authentication/
│ │ │ ├── LoginForm.vb # Login screen
│ │ │ └── RegistrationForm.vb # Student registration
│ │ │
│ │ ├── Users/
│ │ │ ├── Admin/
│ │ │ │ ├── AdminDashboard.vb # Admin main screen
│ │ │ │ ├── IncidentManagement.vb # Manage incidents
│ │ │ │ ├── StudentImport.vb # Bulk student import
│ │ │ │ ├── SecurityTeamMgmt.vb # Security account management
│ │ │ │ ├── CampusManagement.vb # Add/manage campuses
│ │ │ │ ├── CategoryManagement.vb # Incident categories
│ │ │ │ ├── Analytics.vb # Reports and statistics
│ │ │ │ └── NotificationCenter.vb # Manage notifications
│ │ │ │
│ │ │ ├── Security/
│ │ │ │ ├── SecurityDashboard.vb # Patrol team dashboard
│ │ │ │ ├── AssignedIncidents.vb # View assignments
│ │ │ │ ├── IncidentInvestigation.vb # Investigate incident
│ │ │ │ ├── ResponseSubmission.vb # Submit response/final report
│ │ │ │ └── EvidenceUpload.vb # Evidence management
│ │ │ │
│ │ │ └── Student/
│ │ │ ├── StudentDashboard.vb # Student main screen
│ │ │ ├── ProfileSetup.vb # Complete profile
│ │ │ ├── IncidentReporter.vb # Report incident
│ │ │ ├── IncidentHistory.vb # View incidents reported
│ │ │ └── TrackIncident.vb # Monitor incident status
│ │ │
│ │ └── Shared/
│ │ ├── Database.vb # MySQL connection & queries
│ │ ├── Session.vb # User session management
│ │ ├── DataGridViewHelper.vb # Data grid utilities
│ │ ├── NavButtonStyles.vb # Navigation button styling
│ │ └── ShapeUtilities.vb # UI shape utilities
│ │
│ └── Assets/ # Images and resources
│ ├── Icons/
│ ├── Logos/
│ └── Evidence/ # Incident evidence storage
│
├── .gitignore # Git exclusion rules
├── LICENSE # License file
├── ApplicationEvents.vb # Application startup
└── Incidence Management System.sln # Visual Studio Solution
File: Shared/Database.vb
Public connectionString As String = "Server=localhost;Database=ims_db;Uid=root;Pwd=password;Port=3306"Parameters:
Server— MySQL server (localhost for local)Database— Database name (ims_db)Uid— MySQL username (root)Pwd— MySQL password (your password)Port— MySQL port (3306)
Edit ApplicationEvents.vb to configure:
- Notification check interval
- Email settings (optional for production)
- Alert preferences
Permissions:
- Manage all incidents across all campuses
- Import students in bulk
- Create and manage security patrol accounts
- Create campuses and incident categories
- Assign incidents to patrol teams
- Close incidents after review
- Generate reports and analytics
- Manage user accounts
Dashboard:
- Key metrics (total incidents, pending, assigned, resolved)
- Pending incidents awaiting assignment
- All incidents with search/filter
- Security team assignments
- Notification center
Permissions:
- View only incidents on assigned campus
- Review incident details and evidence
- Post investigation updates
- Submit final reports
- Upload evidence photos
- Update incident status during investigation
Dashboard:
- Assigned incidents (active)
- Investigation details
- Response history
- Team collaboration on same incident
Permissions:
- Report incidents on own campus
- View own incident history
- Track incident status progression
- See final outcomes and actions taken
- Upload evidence for own reports
Dashboard:
- Report new incident
- View incident history
- Track status
Every incident progresses through defined states:
PENDING
└─ Incident reported by student
└─ Awaiting admin review and assignment
ASSIGNED
└─ Admin assigned to patrol team
└─ Patrol team notified
IN_PROGRESS
└─ Patrol team actively investigating
└─ Updates and actions being documented
RESOLVED
└─ Patrol team submitted final report
└─ Investigation complete
CLOSED
└─ Admin reviewed and formally closed
└─ Incident archived
Alternative: REJECTED
└─ Admin rejected incident
└─ Incident not assigned to patrol team
Problem: "Cannot connect to database"
Solution:
1. Verify MySQL server is running
2. Check connection string in Database.vb
3. Verify username and password
4. Ensure database 'ims_db' exists
5. Test: mysql -h localhost -u root -p
Problem: "Invalid username or password"
Solution:
1. Verify admin account exists: SELECT * FROM users WHERE username = 'admin';
2. Check account is active: account_status = 'ACTIVE'
3. Activate if needed: UPDATE users SET is_active = TRUE
4. Reset password in database
Problem: "Excel file import failed"
Solution:
1. Verify Excel format is .xlsx
2. Check columns: [ Index Number, Student Name ] Only, default password 1234 is automatic for all
3. Verify campus names exist in system
4. No duplicate index numbers
Problem: "Cannot assign incident to patrol team"
Solution:
1. Verify patrol team exists and is assigned to campus
2. Check incident status is PENDING
3. Verify patrol team account role = SECURITY
4. Check campus of incident matches patrol team campus
-
Report Bugs — Open GitHub Issue with:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
-
Suggest Features — Open Feature Request issue
-
Submit Code:
# Fork, create feature branch git checkout -b feature/YourFeature # Commit and push git commit -m "Add feature" git push origin feature/YourFeature # Open Pull Request
-
Code Standards:
- Follow VB.NET conventions
- Add comments for complex logic
- Test thoroughly
- Update documentation
See LICENSE file for licensing terms.
Questions? Review:
- DATABASE.md — Schema and data structure
- ARCHITECTURE.md — Technical design
incident management system, campus security, university security system, VB.NET incident tracking, incident reporting, security incident management, multi-campus incident system, incident assignment, response tracking, audit trail incident, security patrol management, campus safety system
Version: 1.0 (MVP)
Built With: Visual Studio 2022 | VB.NET | Windows Forms | MySQL
🚨 Modernizing campus security through digitalized incident management.











