ID Card Management Module
🎯 Core Objective
To issue unique, scannable ID cards to students and staff, track their validity,
and manage expirations or renewals.
📦 Epic 1: ID Generation and Issuance
✅ Story 1.1: Generate unique ID numbers
As a system
I want to generate a unique ID for each student or staff
So that I can ensure identity consistency and avoid duplicates
Tasks:
Define ID format (e.g., STU-2025001, STF-EMP0321)
Auto-generate on enrollment or hire
Check for uniqueness
✅ Story 1.2: Create ID cards
As an admin
I want to generate ID cards with name, photo, ID number, role, and validity period
So that each user can have a printed or digital identification
Tasks:
Design ID card layout
Generate QR/barcode (optional)
Export as printable PDF/image
✅ Story 1.3: Attach ID photos
As a registrar or HR officer
I want to upload or capture ID photos
So that the ID cards display correct images
Tasks:
Upload student/staff photo
Resize/crop support
⏳ Epic 2: ID Validity and Expiration Tracking
✅ Story 2.1: Assign issue and expiration dates
As an admin
I want to record when an ID was issued and when it expires
So that I can plan for renewals
Tasks:
Set duration per role (e.g., 4 years for students, 1 year for temp staff)
Show remaining validity period
✅ Story 2.2: Notify upcoming expirations
As the system
I want to notify admins or users before their ID expires
So that they can renew on time
Tasks:
Automated alerts (30/15/7 days before expiry)
Mark IDs as expired if not renewed
✅ Story 2.3: Renew expired IDs
As a registrar or HR
I want to renew expired or soon-to-expire IDs
So that identity and access remain active
Tasks:
Extend expiration date
Optionally reissue new ID number or card
🔒 Epic 3: ID Usage and Validation (Optional)
✅ Story 3.1: Scan and validate ID
As a security or gatekeeper
I want to scan an ID (QR/barcode) and see if it is valid
So that I can control access to the premises
Tasks:
QR/barcode scanner integration
Validity and user role check
✅ Story 3.2: Log ID usage
As the system
I want to log when and where an ID was scanned
So that I can audit usage
Tasks:
Save scan logs (user, date, location)
Optional: trigger access control system
📊 Epic 4: Reporting and Administration
✅ Story 4.1: View ID status report
As an admin
I want to view issued, expired, and pending ID statuses
So that I can act accordingly
Tasks:
Filter by role, expiration date, issuance status
Export list for review
✅ Story 4.2: Bulk ID export for printing
As an admin
I want to download a batch of ID cards for printing
So that I can distribute them to users
Tasks:
Select users
Generate printable file (PDF with N IDs per page
ID Card Management Models
id_cards
----------------------------------------------
CREATE TABLE id_cards (
id SERIAL PRIMARY KEY,
Institution_id
user_id INT NOT NULL,
user_type ENUM('student', 'staff') NOT NULL,
id_number VARCHAR(50) NOT NULL UNIQUE, -- e.g., STU-2025001, STF-EMP2023
issue_date DATE NOT NULL DEFAULT CURRENT_DATE,
expiration_date DATE NOT NULL,
status ENUM('ACTIVE', 'INACTIVE') DEFAULT 'ACTIVE',
photo_url TEXT,
qr_code TEXT, -- base64 string or image path
FOREIGN KEY (user_id)
REFERENCES students(id)
ON DELETE CASCADE
FOREIGN KEY (institution_id)
REFERENCES institution(id)
ON DELETE CASCADE
);
id_card_templates
CREATE TABLE id_card_templates (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
background_image TEXT,
font_family VARCHAR(50),
font_color VARCHAR(20),
logo_url TEXT,
layout_json JSONB, -- positioning info for dynamic rendering
is_default BOOLEAN DEFAULT FALSE
);