Mobile App • Web CRM • Workflow Engine
A comprehensive digital platform replacing manual operations with a React Native app for beneficiaries and a React.js Web CRM. It enforces a strict Assignment-Based Authorization Model and DigiLocker integrations.
UGPF provides Education and Social support. Their previous manual processes caused crowd management issues, delays, and duplicate applications. This project introduces a centralized digital solution (v2.0) to digitize the entire intake and approval cycle.
The platform consists of a Mobile Beneficiary App (React Native) for student registration with OTP/Gmail login, and a Web CRM (React.js) for staff operations. It integrates DigiLocker for fetching Aadhaar, 10th/12th marksheets, and income certificates, utilizing SHA-256 + Salt hashes for Aadhaar duplicate checks.
Scope & Exclusions: The 10-week project delivers DB schema/ERD, API docs, RBAC matrix, and testing plans. Note: Membership modules, paid Google Maps APIs, and separate staff mobile apps are explicitly excluded from this system boundary.
2026
10 Weeks (2.5 Months)
Mobile app users who can register via OTP, submit applications, track stage-wise progress, and reply to clarification requests.
Handles Stage 1 verifications. Can 'Approve Next', 'Hold for Clarification', or 'Reject with Reason' for assigned apps only.
Handles Stage 2 verifications. Creates Google Meet/Zoom schedules and executes post-approval institute/course/PG mappings.
Director holds final approval/hold authority. Admins have full access to manage user roles, assignments, and advanced reports.
Manages installments, payment logs, proofs for approved cases, and exports custom date budget utilization reports.
Can view assigned students, manage attendance logs, and provide performance reports for students allocated to their institutes.
Final feature list lock, UI wireframe/UX flow design, and drafting the PostgreSQL database schema and ERD.
Implemented OTP + Gmail authentication, support type selection, application forms, and student dashboard.
Integrated Aadhaar verification, DigiLocker document fetching, duplicate check logic, and application lock-on-submit.
Configured staff logins, application listing with filters, Stage 1 (Screening) actions, and the clarification holding system.
Developed the Stage 3 Director final queue and integrated Google Meet/Zoom API for scheduling interview links.
Coded course/institute mapping, PG allocation, PDF letter auto-generation, and app/email notification sending.
Built the Accountant module for installment plans, due alerts, payment logs, proof uploads, and budget reporting.
Finalized advanced drill-down reports (Gender, Caste, Pincode), Excel/PDF exports, QA bug fixing, and live deployment.
Our Expertise
Built on the VIEW_ALL_EDIT_ASSIGNED_ONLY principle. All staff can view applications read-only. However, actions (Approve, Reject, Clarify, etc.) are locked based on 3 Assignment Levels: 1. Stage assignment (workflow stage), 2. Department assignment (team allocation), 3. Direct user assignment (assigned to specific staff). Unassigned staff cannot change statuses.
Applications transition strictly through the following states: DRAFT, SUBMITTED, SCREENING_REVIEW, SCREENING_HOLD, SENIOR_REVIEW, SENIOR_HOLD, DIRECTOR_REVIEW, DIRECTOR_HOLD, APPROVED, REJECTED, POST_APPROVAL, ACCOUNTING_ACTIVE, and COMPLETED. Status changes trigger alerts, and rejecting requires a mandatory reason.
Structured into highly specific tables: 1. users, 2. roles (RBAC), 3. beneficiary_profiles, 4. applications, 5. digilocker_documents, 6. application_assignments, 7. clarifications, 8. meetings, 9. post_approval_mappings, 10. letters, 11. installments, 12. audit_logs. This ensures full transparency for every system action.
Adheres to strict Aadhaar policy: Raw Aadhaar numbers are never stored. The system executes a SHA-256 + Salt hash algorithm, storing only 'aadhaar_hash' and 'aadhaar_last4' to securely prevent fake and duplicate applications.
The Node.js backend handles operations via specific API contracts: Auth APIs, Beneficiary profile APIs, Application APIs, DigiLocker APIs, Geo location APIs, Video upload APIs, Assignment APIs, Workflow action APIs, Clarification APIs, Meeting schedule APIs, Letters APIs, Installment/payment APIs, and Reports APIs.
If staff puts a case on hold, the clarification module generates a request record for the student to reply via the app. For interviews, the Senior Verifier schedules links via integrated Google Meet or Zoom, which are dispatched via app notification and email.
Following final approval, the verifier handles course mapping, institute mapping, and PG allocation. The system then automatically generates official Student Approval, Coaching, and PG letters in PDF format, storing URLs safely.
Admins and Directors get full drill-down reports exported in Excel/PDF. Filters include Support Type, Status, Gender, Age, Religion, Caste, BPL/EWS, Marital Status, and Address Drilldown (Pincode/District/State/Tehsil/Village/Post).
Absolute elimination of fake entries via OTP and SHA-256 salted Aadhaar checking.
DigiLocker extraction removed massive manual screening delays and fake documents.
The accounting module gave directors pinpoint visibility into budget utilization.
Every single action endpoint is bound to the 'audit_logs' table for full accountability.
The strict Assignment-Based Authorization model (Stage, Dept, Direct) successfully resolved internal editing overlaps.
Cryptographic Aadhaar hashing proved that accurate duplicate prevention is entirely possible without violating data storage laws.
Utilizing DigiLocker for document extraction (Aadhaar, 10th/12th, Income) drastically reduces staff workload.
Integrating Meeting Scheduling (Zoom/Meet) directly into the Senior Verifier loop eliminated external communication silos.
Breakdown of the structured 10-week development strategy
Total Project Hours
Delivered across a 10-week sprint
Weeks Duration
Application Statuses
Database Tables
Problem: Multiple staff members editing the same application record caused workflow corruption.
Locked API write endpoints dynamically. Only the exact user ID present in the 'application_assignments' table can execute state changes.
Problem: National regulations prevent the raw storage of Aadhaar numbers.
Implemented localized SHA-256 + Salt hashing, storing only anonymized tokens in the 'aadhaar_hash' column.
Problem: Missing info bottlenecked the multi-stage verification pipeline.
Built a Clarification Module that holds state progress and routes data requests directly to the beneficiary's app dashboard.