The PDAO System is a digital solution designed for the Persons with Disability Affairs Office of Pagsanjan. It streamlines the management of PWD records, automates ID generation, handles appointment scheduling, and provides powerful data analytics through an intuitive dashboard β empowering government staff to deliver better services to the PWD community.
π Admin & Staff Portal
Dashboard Analytics β Real-time statistics with interactive charts (age groups, gender, barangay, employment, disability types)
PWD Records Management β Register, search, update, and manage PWD profiles
Approval Queue β Review and approve/reject new PWD applications
Appointment Scheduling β Manage ID claim appointments
Service Request Management β Track and fulfill service requests
ID Layout Editor β Customize and generate PWD ID cards
Reports & Export β Generate masterlist, statistical, and demographic reports (Excel/CSV/PDF)
Backup & Restore β Database backup and restore functionality
Audit History Log β Track all system activities
User Account Management β Role-based account administration
π§β𦽠PWD User Portal
Online Registration β Submit PWD applications digitally
Application Tracking β Monitor registration status in real-time
Digital ID β View and access PWD ID digitally
Appointment Booking β Schedule ID pickup appointments
Service Requests β Request services and assistance online
Profile Management β Update personal and contact information
Accessibility Options β Built-in accessibility features (font size, high contrast, screen reader support)
ποΈ Executive Dashboard
Mayor's Dashboard β High-level overview for the Municipal Mayor with key metrics and trends
Layer
Technology
Frontend
React 19, TypeScript, Tailwind CSS 4, Vite
Backend
Laravel 11, PHP 8.2+, Sanctum (Auth)
Database
MySQL 8.0
Charts
Recharts
Icons
Lucide React
PDF Export
jsPDF, DomPDF
Excel Export
Maatwebsite Excel
Routing
React Router DOM v6
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β React Frontend β
β (Vite + TypeScript + Tailwind CSS) β
β β
β βββββββββββ βββββββββββββ ββββββββββββ βββββββββββββ β
β βDashboard β β PWD Mgmt β β Reports β βUser Portalβ β
β ββββββ¬ββββββ βββββββ¬ββββββ ββββββ¬ββββββ βββββββ¬ββββββ β
β βββββββββββββββΌβββββββββββββΌβββββββββββββββ β
β β Axios API Client β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
β REST API (JSON)
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
β Laravel Backend API β
β (PHP 8.2 + Sanctum Auth) β
β β
β ββββββββββββ βββββββββββββ ββββββββββββ βββββββββββββ β
β βAuth/RBAC β βControllersβ β Models β β Exports β β
β ββββββββββββ βββββββββββββ ββββββββββββ βββββββββββββ β
β β β
βββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββ
β
ββββββββ΄βββββββ
β MySQL DB β
βββββββββββββββ
Node.js β₯ 18.x & npm
PHP β₯ 8.2
Composer
MySQL 8.0+
XAMPP (or any local MySQL/Apache server)
1οΈβ£ Clone the Repository
git clone https://github.com/Suarenz/PDAO-system.git
cd PDAO-system
2οΈβ£ Install Frontend Dependencies
cd server
composer install
cp .env.example .env
php artisan key:generate
Configure your database credentials in server/.env:
DB_CONNECTION = mysql
DB_HOST = 127.0.0.1
DB_PORT = 3306
DB_DATABASE = pdao_system
DB_USERNAME = root
DB_PASSWORD =
php artisan migrate --seed
5οΈβ£ Start the Application
From the project root, run both frontend and backend concurrently:
Or start them separately:
# Terminal 1 β Backend API (port 8000)
cd server
php artisan serve
# Terminal 2 β Frontend (port 5173)
npm run dev:frontend
6οΈβ£ Access the Application
Service
URL
Frontend
http://localhost:5173
Backend API
http://localhost:8000/api
Role
Access Level
π Admin
Full system access β manage users, records, settings, backups
π Staff
Manage PWD records, approvals, appointments, reports
β¨οΈ Encoder
Add and register new PWD records
ποΈ Mayor
Executive dashboard with high-level analytics and reports
π§β𦽠PWD Member
Personal portal β view profile, digital ID, services
π€ User
Public portal β submit applications, track status
PDAO-system/
βββ public/ # Static assets (logos, images)
βββ src/ # React frontend source
β βββ api/ # API service layer (Axios clients)
β βββ components/ # Reusable UI components
β βββ context/ # React context (Auth)
β βββ pages/ # Admin/Staff page components
β β βββ Dashboard.tsx
β β βββ AddPwd.tsx
β β βββ ListPwd.tsx
β β βββ ApprovalQueue.tsx
β β βββ Reports.tsx
β β βββ ...
β βββ portal/ # PWD User Portal components
β β βββ UserPortal.tsx
β β βββ PortalDashboard.tsx
β β βββ MyDigitalId.tsx
β β βββ ...
β βββ App.tsx # Main application router
β βββ types.ts # TypeScript type definitions
βββ server/ # Laravel backend
β βββ app/
β β βββ Http/Controllers/
β β βββ Models/
β β βββ Observers/
β βββ config/
β βββ database/migrations/
β βββ routes/api.php # API route definitions
β βββ ...
βββ package.json
βββ vite.config.ts
βββ tsconfig.json
Authentication
Method
Endpoint
Description
POST
/api/login
User login
POST
/api/register
User registration
POST
/api/logout
User logout
GET
/api/me
Get current user profile
POST
/api/change-password
Change password
PWD Management
Method
Endpoint
Description
GET
/api/pwd
List all PWD records
POST
/api/pwd
Create new PWD record
GET
/api/pwd/{id}
Get PWD record details
PUT
/api/pwd/{id}
Update PWD record
GET
/api/pwd/search-by-number
Search by PWD number
GET
/api/pwd/lookups
Get lookup data (barangays, disabilities, etc.)
Dashboard & Reports
Method
Endpoint
Description
GET
/api/dashboard/stats
Dashboard statistics
GET
/api/reports/generate
Generate reports (Excel/CSV/PDF)
Appointments & Services
Method
Endpoint
Description
GET
/api/appointments
List appointments
POST
/api/appointments
Create appointment
GET
/api/service-requests
List service requests
POST
/api/service-requests
Create service request
This project is licensed under the MIT License .
Built with β€οΈ for the PWD community of Pagsanjan