Mobile App • Web CRM • Workflow Engine

UnitedGlobal Peace Foundation (UGPF)
Centralized Beneficiary Portal & Web CRM (v2.0)

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.

React Native React.js Node.js MySQL

Project Overview & Exclusions

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.

Launch Date

2026

Project Duration

10 Weeks (2.5 Months)

Staff Roles & Responsibilities Handled

BENEFICIARY

Mobile app users who can register via OTP, submit applications, track stage-wise progress, and reply to clarification requests.

SCREENING_STAFF

Handles Stage 1 verifications. Can 'Approve Next', 'Hold for Clarification', or 'Reject with Reason' for assigned apps only.

SENIOR_VERIFIER

Handles Stage 2 verifications. Creates Google Meet/Zoom schedules and executes post-approval institute/course/PG mappings.

DIRECTOR & ADMIN

Director holds final approval/hold authority. Admins have full access to manage user roles, assignments, and advanced reports.

ACCOUNTANT

Manages installments, payment logs, proofs for approved cases, and exports custom date budget utilization reports.

PG_ADMIN & COACHING_ADMIN

Can view assigned students, manage attendance logs, and provide performance reports for students allocated to their institutes.

How It Was Built (10-Week Timeline)

1

Week 1: Requirement Freeze & Planning

Final feature list lock, UI wireframe/UX flow design, and drafting the PostgreSQL database schema and ERD.

2

Week 2-3: Beneficiary App (Core)

Implemented OTP + Gmail authentication, support type selection, application forms, and student dashboard.

3

Week 4-5: DigiLocker + Verification Layer

Integrated Aadhaar verification, DigiLocker document fetching, duplicate check logic, and application lock-on-submit.

4

Week 6: Web CRM (Stage Workflows)

Configured staff logins, application listing with filters, Stage 1 (Screening) actions, and the clarification holding system.

5

Week 7: Director + Meeting Scheduling

Developed the Stage 3 Director final queue and integrated Google Meet/Zoom API for scheduling interview links.

6

Week 8: Post Approval + Letters

Coded course/institute mapping, PG allocation, PDF letter auto-generation, and app/email notification sending.

7

Week 9: Accounting + Installments

Built the Accountant module for installment plans, due alerts, payment logs, proof uploads, and budget reporting.

8

Week 10: Reporting, Testing & Deployment

Finalized advanced drill-down reports (Gender, Caste, Pincode), Excel/PDF exports, QA bug fixing, and live deployment.

work

Platform Architecture Preview

Our Expertise

Technology Stack

Modern Full-Stack Setup
React.js & React Native
Node.js (Backend API)
Express.js Routing
MySQL Database
JWT Auth & RBAC
DigiLocker Verification
Zoom / Meet API
Automated PDF Generator

Deep Dive: Detailed Features & Logic

Strict Assignment-Based Authorization Rules

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.

Complete 13-Status Workflow Engine

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.

Normalized 12-Table Database Architecture

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.

Aadhaar Hash Policy & Identity Checks

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.

Comprehensive 13 API Categories

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.

Clarification Module & Meeting Scheduler

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.

Post-Approval Postings & PDFs

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.

Advanced Reporting & Global Filters

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).

Results That Speak & Project Outcomes

Zero Duplicate Applications

Absolute elimination of fake entries via OTP and SHA-256 salted Aadhaar checking.

Accelerated Verification

DigiLocker extraction removed massive manual screening delays and fake documents.

Granular Budget Tracking

The accounting module gave directors pinpoint visibility into budget utilization.

100% Audit Transparency

Every single action endpoint is bound to the 'audit_logs' table for full accountability.

Key Takeaways

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.

Time & Effort Analysis

Breakdown of the structured 10-week development strategy

Total Project Hours

400

Delivered across a 10-week sprint

Requirement, DB Architecture & APIs 40 hrs · 10%
Mobile Beneficiary App Frontend 80 hrs · 20%
DigiLocker Integration & Workflow Engine 120 hrs · 30%
Web CRM Staff Roles & Integration 80 hrs · 20%
Accounting, Auto-Letters & Deployment 80 hrs · 20%

10

Weeks Duration

13

Application Statuses

12

Database Tables

Challenges & Solutions

Problem: Multiple staff members editing the same application record caused workflow corruption.

Solution

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.

Solution

Implemented localized SHA-256 + Salt hashing, storing only anonymized tokens in the 'aadhaar_hash' column.

Problem: Missing info bottlenecked the multi-stage verification pipeline.

Solution

Built a Clarification Module that holds state progress and routes data requests directly to the beneficiary's app dashboard.

Chat with Neo IT on WhatsApp +91-7742737030