Project Overview
Auto-Clearance is an automated solution designed to streamline the Human Resources (HR) workflow for clearing National Youth Service Corps (NYSC) members (corpers) working in their organization.
Every month, each corper is required to present a clearance document from their Place of Primary Assignment (PPA). Auto-Clearance eliminates the repetitive manual process of creating these documents by automating the generation of personalized clearance letters, saving both time and organizational resources.
Problem Statement
NYSC mandates that all corpers submit a monthly clearance document issued by their respective PPAs. At many organizations, this document is manually edited for each corper using a template.
This approach is:
- Time-consuming
- Repetitive
- Prone to human error
Auto-Clearance addresses this challenge by automating the generation and delivery of clearance documents based on each corper’s clearance request and approval status.
Tech Stack
Backend: Java 21 with Spring Boot 3
Frontend: React
Database: MySQL - Stores data related to PPAs, users (Global Admin, Superadmin, Admin, Corper), units, and clearance requests
Roles & Responsibilities
The Auto-Clearance system supports four distinct user roles, each with clearly defined responsibilities:
1. Global Admin
- Manages multiple PPAs
- Creates PPAs and assigns a Superadmin to each
- Seeded into the database on the first application startup
- On subsequent startups, the system checks for an existing Global Admin to prevent duplication
2. Superadmin (PPA HR)
- Each PPA has exactly one Superadmin
- Manages units and assigns unit heads (Admins)
- Reviews clearance requests after unit head approval
- Performs final approval or rejection
3. Admin (Unit Head)
- Manages a specific unit within a PPA
- Reviews and approves or rejects clearance requests from corpers within their unit
4. Corper (NYSC Member)
- Submits monthly clearance requests
- Receives the clearance letter after approval by both the unit head and Superadmin
Workflow
The Global Admin creates a PPA and assigns a Superadmin
A. The Superadmin:
- Creates units within the PPA
- Assigns unit heads (Admins)
- Adds corpers to units
B. A corper submits a clearance request (status: PENDING)
C. The unit head (Admin) reviews the request:
- If approved → status changes to
LEVEL_ONE - If rejected → status changes to
REJECTED
D. The Superadmin reviews the request:
- If approved → status changes to
CLEARED - If rejected → status changes to
REJECTED
Once fully approved, the system generates the clearance document for the corper which can be viewed, downloaded or printed from the superadmin’s dashboard. Here's an example:
Clearance Request Statuses
-
PENDING– Initial state after submission -
LEVEL_ONE– Approved by the unit head -
CLEARED– Fully approved by the Superadmin -
REJECTED– Rejected at any approval level
Challenges & Key Decisions
One of the major challenges I faced while developing Auto-Clearance was deciding whether to customize the application for one organization or make it scalable for multiple organizations. I initially thought of building a single-use version for one PPA, but I realized that there could be other organizations and PPAs who could benefit from this solution.
After weighing the options, I decided to extend the application to support multiple PPAs. This led to the introduction of the Global Admin role, which allows management of multiple PPAs and facilitates scalability across different organizations.
Final Thoughts
This project has been an incredible learning experience. A special thanks to Ekemini Eduok for taking the lead on the frontend development of this project and allowing me to focus more on building the backend.








Top comments (0)