A Content Management System for State Welfare and Educational Society Kalah. This system helps manage welfare applications, donor information, financial transactions, and balance sheets.
SWAES CMS is a web-based application built with Laravel and Filament that streamlines the management of various welfare assistance applications. The system allows administrators to:
- Manage different types of assistance applications (fee, medical, marriage, goods, expenses, uniform, and books)
- Track donors and their contributions
- Record financial transactions
- Maintain monthly balance sheets
- Generate reports and manage organizational settings
- Backend: Laravel 12
- PHP: 8.2 or higher
- Admin Panel: Filament 4.0
- Database: SQLite (default) or MySQL
- Frontend: Vite, Tailwind CSS 4
- Containerization: Docker & Docker Compose
Before you begin, ensure you have the following installed on your system:
- PHP 8.2 or higher
- Composer
- Node.js (v18 or higher) and npm
- SQLite (for default setup) or MySQL (for production)
- Docker and Docker Compose (optional, for containerized setup)
-
Clone the repository
git clone https://github.com/KhawarMehfooz/swaes-cms.git cd swaes-cms -
Install PHP dependencies
composer install
-
Install Node.js dependencies
npm install
-
Environment Configuration
Create a
.envfile in the root directory:cp .env.example .env
If
.env.exampledoesn't exist, create a.envfile with the following content:APP_NAME="SWAES CMS" APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost:8000 DB_CONNECTION=sqlite DB_DATABASE=database/database.sqlite
-
Generate Application Key
php artisan key:generate
-
Create SQLite Database (if using SQLite)
touch database/database.sqlite
-
Run Database Migrations
php artisan migrate
-
Create Admin User
php artisan make:filament-user
Follow the prompts to create your first admin user.
-
Build Frontend Assets
npm run build
-
Start the Development Server
php artisan serve
Or use the combined dev command (runs server, queue, and vite):
composer run dev
-
Access the Application
- Frontend: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
-
Clone the repository
git clone https://github.com/KhawarMehfooz/swaes-cms.git cd swaes-cms -
Start Docker Containers
docker-compose up -d
-
Install Dependencies (inside the app container)
docker-compose exec app composer install docker-compose exec app npm install
-
Environment Configuration
Create a
.envfile with MySQL configuration:APP_NAME="SWAES CMS" APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost:8000 DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel DB_PASSWORD=secret
-
Generate Application Key
docker-compose exec app php artisan key:generate -
Run Database Migrations
docker-compose exec app php artisan migrate -
Create Admin User
docker-compose exec app php artisan make:filament-user -
Access the Application
- Frontend: http://localhost:8000
- Admin Panel: http://localhost:8000/admin
- phpMyAdmin: http://localhost:8080
swaes-cms/
├── app/
│ ├── Filament/ # Filament admin panel resources
│ │ ├── Pages/ # Custom admin pages
│ │ ├── Resources/ # Resource definitions (CRUD)
│ │ └── Widgets/ # Dashboard widgets
│ ├── Http/
│ │ └── Controllers/ # Application controllers
│ ├── Livewire/ # Livewire components
│ ├── Models/ # Eloquent models
│ ├── Observers/ # Model observers
│ ├── Providers/ # Service providers
│ └── Settings/ # Application settings
├── config/ # Configuration files
├── database/
│ ├── migrations/ # Database migrations
│ └── seeders/ # Database seeders
├── public/ # Public assets
├── resources/
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript files
│ └── views/ # Blade templates
├── routes/ # Route definitions
└── storage/ # Storage directory
The system supports multiple types of assistance applications:
- Fee Applications: Manage educational fee assistance requests
- Medical Assistance Applications: Track medical aid requests
- Marriage Assistance Applications: Handle marriage support applications
- Goods Assistance Applications: Manage goods/material assistance
- Expenses Applications: Track expense-related assistance
- Uniform Applications: Manage uniform assistance requests
- Books Applications: Handle book/educational material requests
- Donor Management: Track donor information and contributions
- Transactions: Record all financial transactions with receipts
- Balance Sheets: Monthly balance sheet management with automatic opening balance calculation
- User authentication with multi-factor authentication support
- Role-based access control
- Settings management
- Dashboard with statistics
- Navigate to
http://localhost:8000/admin - Log in with your admin credentials
- Use the navigation menu to access different sections:
- Applications (various types)
- Donors
- Transactions
- Balance Sheets
- Settings
- Navigate to the desired application type from the sidebar
- Click "New" to create a new application
- Fill in the required information
- Save the application
- Go to Transactions section
- Create a new transaction with:
- Receipt number
- Amount
- Purpose
- Type (income/expense)
- Associated donor (if applicable)
- Date
- Balance sheet period
- Navigate to Balance Sheets
- Create a new monthly balance sheet
- The system automatically sets the opening balance from the previous month's closing balance
- Add transactions to the balance sheet
- Update the closing balance as needed
If you encounter permission issues with storage or cache:
php artisan storage:link
chmod -R 775 storage bootstrap/cacheIf migrations fail:
php artisan migrate:freshClear node modules and reinstall:
rm -rf node_modules package-lock.json
npm install
npm run buildThis project is open-sourced software licensed under the MIT license.
Developed by Khawar Mehfooz
For issues, questions, or contributions, please open an issue on the repository.