Skip to content

Suarenz/PDAO-system

Repository files navigation

β™Ώ PDAO System

Person with Disability Affairs Office β€” Management System

A comprehensive full-stack web application for managing PWD (Person with Disability) records, services, appointments, and ID generation for the Municipality of Pagsanjan.

React Laravel TypeScript Tailwind CSS MySQL Vite


πŸ“‹ Table of Contents


🌟 Overview

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.


✨ Features

πŸ“Š 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

πŸ› οΈ Tech Stack

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

πŸ— System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     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  β”‚
               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Getting Started

Prerequisites

  • 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

npm install

3️⃣ Setup Backend

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=

4️⃣ Run Migrations

php artisan migrate --seed

5️⃣ Start the Application

From the project root, run both frontend and backend concurrently:

npm run dev

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

πŸ‘₯ User Roles

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

πŸ“ Project Structure

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

πŸ”Œ API Endpoints

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

πŸ“„ License

This project is licensed under the MIT License.


Built with ❀️ for the PWD community of Pagsanjan

About

A comprehensive web-based data management system for the Person with Disability Affairs Office (PDAO) of Pagsanjan, Laguna, Philippines. Built with React 19, TypeScript, Tailwind CSS, and Laravel 11, it manages PWD registration, ID generation, approval workflows, appointment scheduling, service requests, analytics dashboards, and reporting.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages