Skip to content

Repository files navigation

X-Charity NGO Management System

Laravel PHP Filament Tests License: MIT

A full-stack NGO operations and content management platform built with Laravel and Filament. X-Charity brings public storytelling, fundraising records, programme delivery, volunteer coordination, compliance, internal operations, and email engagement into one administration system.

The project adapts a charity website into a database-driven CMS while retaining its public-facing visual identity. Demo data is focused on realistic Nigerian NGO workflows and uses fictional people and records.

Highlights

  • CMS-managed public pages, navigation, reusable page sections, blog posts, events, causes, gallery items, testimonials, sponsors, and team profiles
  • Fundraising operations for donors, donations, causes, and campaign progress
  • Programme delivery through NGO projects, milestones, beneficiaries, staff assignments, and impact dashboards
  • Volunteer intake and contact-message management from the public website
  • Newsletter lists, tags, subscribers, campaigns, queued delivery, scheduling, unsubscribe handling, and open/click tracking
  • Operations tooling for internal tasks, procurement requests, assets, and compliance documents
  • Secure Filament admin panel with resource-based CRUD workflows and dashboard widgets
  • Database-backed queues, cache, and sessions with SQLite as the zero-configuration local default
  • Seeded portfolio demo content, automated feature tests, and a production-readiness checklist

Technology stack

Layer Technology
Backend PHP 8.2+, Laravel 12
Admin Filament 4, Livewire (via Filament)
Public UI Blade, Bootstrap theme, JavaScript/jQuery components
Asset pipeline Vite 7, Tailwind CSS 4
Database SQLite by default; MySQL/PostgreSQL compatible
Async work Laravel database queue and task scheduler
Testing PHPUnit 11, Laravel feature and unit tests

Core modules

Area Modules
Content CMS pages, page sections, navigation, blog, events, gallery, testimonials, sponsors
Fundraising Causes, donors, donations, campaign progress
Programmes Projects, milestones, beneficiaries, staff, volunteers
Communications Contacts, subscribers, lists, tags, campaigns, recipients, tracking
Operations Tasks, procurement, assets, compliance documents, settings
Reporting Impact, operations-queue, and communications dashboard widgets

Requirements

  • PHP 8.2 or newer with the extensions required by Laravel
  • Composer 2
  • Node.js 22+ and npm
  • SQLite, MySQL, or PostgreSQL

Installation

git clone https://github.com/seunoseya44-tech/x-charity-ngo-management-system.git
cd x-charity-ngo-management-system
composer install
npm ci
cp .env.example .env
php artisan key:generate

Create the default SQLite database:

touch database/database.sqlite
php artisan migrate --seed
php artisan storage:link
npm run build

On Windows PowerShell, use Copy-Item .env.example .env and New-Item database/database.sqlite -ItemType File -Force in place of cp and touch.

Start the application:

php artisan serve

The public site is available at http://127.0.0.1:8000; the admin panel is at http://127.0.0.1:8000/admin.

Background workers

Run these in separate terminals when testing queued or scheduled campaigns:

php artisan queue:work
php artisan schedule:work

Environment and database configuration

The included .env.example uses SQLite and safe local mail logging. To use MySQL, update only your local .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=x_charity
DB_USERNAME=root
DB_PASSWORD=

Never commit .env, production credentials, database snapshots, or generated keys. The repository ignore rules exclude these files.

Demo access

Running php artisan migrate --seed creates a local demonstration administrator:

Email: admin@xngo.test
Password: Password123!

These credentials are intentionally public and are for local portfolio evaluation only. Change or remove the seeded account before any deployment.

Project structure

app/
  Filament/Resources/   Admin CRUD modules
  Filament/Widgets/     Impact and operations dashboards
  Http/Controllers/     Public website and newsletter flows
  Jobs/                 Queued campaign delivery
  Models/               NGO, CMS, and communications domain models
  Services/             Campaign audience and delivery logic
database/
  migrations/           Application schema
  seeders/              Fictional Nigeria-focused demo data
docs/                   Production notes and media inventory
public/theme/           Preserved public-site theme assets
resources/views/        Blade templates and reusable partials
routes/                  Web routes and scheduled commands
tests/                   Feature and unit tests

Screenshots

X-Charity public homepage

Portfolio screenshots are stored in docs/screenshots. Recommended additional showcase views are:

  1. Filament impact dashboard
  2. Projects, donations, and beneficiaries tables
  3. Newsletter campaign composer and delivery analytics
  4. Mobile public-site navigation

Testing and code quality

php artisan test
./vendor/bin/pint --test
npm run build

GitHub Actions runs the Laravel tests and production asset build on pushes and pull requests to main.

Production notes

Review docs/production-readiness.md before deployment. At minimum:

  • replace the demo administrator and all fictional organisation data;
  • set APP_ENV=production, APP_DEBUG=false, and a production APP_URL;
  • configure a production database, mail provider, queue worker, scheduler, backups, and HTTPS;
  • review uploaded-file validation, data-retention obligations, and access policies;
  • run php artisan optimize after environment configuration is complete.

Roadmap

  • Integrate a Nigerian payment provider such as Paystack or Flutterwave
  • Add role-based permissions and approval workflows
  • Add donor receipts, exports, and richer financial reporting
  • Expand automated coverage for every public form and critical admin action
  • Add object-storage support and an image optimisation pipeline
  • Publish a short product walkthrough and hosted demonstration environment

License

This project is open-source software licensed under the MIT License.

Developer

Built and maintained by seunoseya44-tech.

For portfolio or project enquiries, use the contact details published on the developer's GitHub profile.

About

A Laravel 12 and Filament 4 NGO management system for fundraising, projects, beneficiaries, communications, compliance, procurement, volunteers, and CMS-driven public pages.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages