diff --git a/README.md b/README.md index d49f66d..3f4ff11 100644 --- a/README.md +++ b/README.md @@ -1,174 +1,63 @@ -TODO +# BarangaySystem +Barangay Management & Governance Platform built on Hypervel (Laravel-compatible on Hyperf/Swoole) + Vue 3 SPA. -# Member Information Record +## Stack -This document contains the member details collected for registration or profile purposes. +| Layer | Technology | +|---|---| +| Backend | Hypervel (PHP 8.x, Hyperf/Swoole) | +| Frontend | Vue 3 SPA + Pinia | +| Database | MySQL | +| Cache/Session | Redis | +| Auth | JWT (lcobucci) + Session dual guard | +| File Storage | Multi-disk (local/S3) with CDN pipeline | +| Queue | Redis-backed | ---- +## Core Modules -## 🧍 Personal Information +- **Resident & Household Management** — resident profiles, household registry +- **Document/Certificate Requests** — Clearance, Residency, Indigency, Good Moral, Business Clearance + QR PH payment +- **Blotter / Incident System** — filing, hearings, resolution tracking +- **Barangay Projects** — infrastructure, livelihood, health, education projects +- **Budget & Finance** — income/expense recording, fiscal year reports +- **Geography Hierarchy** — Region → Province → City/Municipality → Barangay → Purok +- **QR PH Payment** — InstaPay/QRPH for document fees (GCash, Maya, and all major banks) +- **Announcements** — barangay bulletins +- **Admin Console** — system settings, branding, module toggles, user management, logs, backups +- **Accounting** — chart of accounts, journal entries, financial reports -| Field | Value | -|-------|-------| -| **First Name** | Rex Moran | -| **Middle Name** | - | -| **Last Name** | Loba | -| **Suffix** | - | -| **Gender** | - | -| **Date of Birth** | - | -| **Email** | rexm.loba@gmail.com | -| **Phone** | - | +## User Roles ---- +| Role | Description | +|---|---| +| `super_admin` | System owner / platform administrator | +| `punong_barangay` | Barangay Captain | +| `kagawad` | Barangay Councilor | +| `secretary` | Barangay Secretary | +| `treasurer` | Barangay Treasurer | +| `sk_chairperson` | SK Chairperson | +| `sk_councilor` | SK Councilor | +| `tanod` | Barangay Tanod | +| `bhw` | Barangay Health Worker | +| `daycare_worker` | Daycare Worker | +| `staff` | Administrative Staff | +| `resident` | Registered Resident | +| `audit` | Internal Auditor | -## 📱 Social Accounts +## Git Remotes -| Platform | Account Name / Number | -|-----------|-----------------------| -| **Facebook** | - | -| **Messenger** | - | -| **Viber** | - | -| **TikTok** | - | +``` +primary ssh://git@git.hesed.sbs:6611/BarangaySystem +origin ssh://git@git2.hesed.sbs:6612/josh/BarangaySystem.git +``` ---- +## Setup -## 🚨 Emergency Contact Information - -| Field | Value | -|-------|-------| -| **Name** | - | -| **Address** | - | -| **Contact Number** | - | -| **Relation** | - | - ---- - -## 🏛 Membership Details for Cooperatives - -| Field | Value | -|-------|-------| -| **Membership Type** | - | -| **Organization Name** | - | -| **Membership Level** | - | -| **Officer Position** | - | -| **Officer Level** | - | -| **Concurrent Position** | - | -| **Concurrent Level** | - | -| **Cooperative Name** | - | -| **Cooperative Position** | - | -| **Year Beginning** | - | - ---- - -## 🏠 Address Information - -| Field | Value | -|-------|-------| -| **Address** | - | -| **Region** | - | -| **Province** | - | -| **City / Municipality** | - | -| **Barangay** | - | - ---- - -## 👪 Family & Education - -| Field | Value | -|-------|-------| -| **Civil Status** | - | -| **Number of Children** | - | -| **Highest Educational Attainment** | - | -| **Course** | - | -| **School Attended** | - | -| **Year Last Attended** | - | - ---- - -## 💼 Employment & Livelihood - -| Field | Value | -|-------|-------| -| **Current Source of Livelihood** | - | -| **Company Last Employed** | - | -| **Position in the Company** | - | -| **Year Last Employed** | - | - ---- - -## 🆔 Government Information - -| Field | Value | -|-------|-------| -| **Tax Identification Number (TIN)** | - | -| **PhilHealth ID Number** | - | -| **Government Issued ID** | - | - ---- - -## 🖼 Supporting Documents - -| Field | Value | -|-------|-------| -| **Photograph** | - | -| **Date Submitted** | - | -| **Date Approved** | - | - ---- - -### 🗒 Notes -- Fields marked with “–” are currently unfilled. -- Update this file as new information becomes available. -- Store sensitive data responsibly and avoid committing private identifiers in public repositories. - ---- - -📧 **Contact:** rexm.loba@gmail.com - - - - - -
- - - -## Introduction - -**Hypervel** is a Laravel-style PHP framework with native coroutine support for ultra-high performance. - -Hypervel ports many core components from Laravel while maintaining familiar usage patterns, making it instantly accessible to Laravel developers. The framework combines the elegant and expressive development experience of Laravel with the powerful performance benefits of coroutine-based programming. If you're a Laravel developer, you'll feel right at home with this framework, requiring minimal learning curve. - -This is an ideal choice for building microservices, API gateways, and high-concurrency applications where traditional PHP frameworks often encounter performance constraints. - -## Why Hypervel? - -While Laravel Octane impressively enhances your Laravel application's performance, it's crucial to understand the nature of modern web applications. In most cases, the majority of latency stems from I/O operations, such as file operations, database queries, and API requests. - -However, Laravel doesn't support coroutines - the entire framework is designed for a blocking I/O environment. Applications heavily dependent on I/O operations will still face performance bottlenecks. Consider this scenario: - -Imagine building an AI-powered chatbot where each conversation API takes 3-5 seconds to respond. With 10 workers in Laravel Octane receiving 10 concurrent requests, all workers would be blocked until these requests complete. - -> You can see [benchmark comparison](https://hypervel.org/docs/introduction.html#benchmark) between Laravel Octane and Hypervel - -Even with Laravel Octane's improvements, your application's concurrent request handling capacity remains constrained by I/O operation duration. Hypervel addresses this limitation through coroutines, enabling efficient handling of concurrent I/O operations without blocking workers. This approach significantly enhances performance and concurrency for I/O-intensive applications. - -> See [this issue](https://github.com/laravel/octane/issues/765) for more discussions. - -## Documentation - -[https://hypervel.org/docs](https://hypervel.org/docs) - -Hypervel provides comprehensive and user-friendly documentation that allows you to quickly get started. From this documentation, you can learn how to use various components in Hypervel and understand the differences between this framework and Laravel. - -> Most of the content in this documentation is referenced from the official Laravel documentation. We appreciate the Laravel community's contributions. - -## License - -The Hypervel framework is open-sourced software licensed under the [MIT](https://opensource.org/licenses/MIT) license. \ No newline at end of file +```bash +cp .env.example .env +composer install +npm install +php artisan migrate --seed +npm run build +``` diff --git a/app/Enums/Barangay/BlotterStatus.php b/app/Enums/Barangay/BlotterStatus.php new file mode 100644 index 0000000..cfc7d51 --- /dev/null +++ b/app/Enums/Barangay/BlotterStatus.php @@ -0,0 +1,25 @@ + 'Filed', + self::FOR_HEARING => 'For Hearing', + self::SETTLED => 'Settled', + self::RESOLVED => 'Resolved', + self::DISMISSED => 'Dismissed', + self::ENDORSED => 'Endorsed to Higher Authority', + }; + } +} diff --git a/app/Enums/Barangay/DocumentStatus.php b/app/Enums/Barangay/DocumentStatus.php new file mode 100644 index 0000000..bbf142c --- /dev/null +++ b/app/Enums/Barangay/DocumentStatus.php @@ -0,0 +1,27 @@ + 'Draft', + self::PENDING_PAYMENT => 'Pending Payment', + self::PAID => 'Paid', + self::PROCESSING => 'Processing', + self::READY => 'Ready for Pickup', + self::CLAIMED => 'Claimed', + self::CANCELLED => 'Cancelled', + }; + } +} diff --git a/app/Enums/Barangay/PaymentStatus.php b/app/Enums/Barangay/PaymentStatus.php new file mode 100644 index 0000000..c64e906 --- /dev/null +++ b/app/Enums/Barangay/PaymentStatus.php @@ -0,0 +1,21 @@ + 'Pending', + self::PAID => 'Paid', + self::REFUNDED => 'Refunded', + self::WAIVED => 'Waived', + }; + } +} diff --git a/app/Enums/UserActions.php b/app/Enums/UserActions.php index b0c4f4e..0ea4ba0 100644 --- a/app/Enums/UserActions.php +++ b/app/Enums/UserActions.php @@ -1,30 +1,40 @@ env('APP_NAME', 'BukidBountyApp'), + 'name' => env('APP_NAME', 'BarangaySystem'), /* |-------------------------------------------------------------------------- diff --git a/config/modules.php b/config/modules.php index 83ec960..616d932 100644 --- a/config/modules.php +++ b/config/modules.php @@ -4,10 +4,10 @@ declare(strict_types=1); /** * Module Configuration - * + * * Each module can be enabled or disabled via environment variables. * All modules default to true (enabled) when the env variable is not set. - * + * * Usage: * - Set MODULE_