A comprehensive Laravel-based parish management system designed to help parishes efficiently manage their members, households, and ministries.
Matthew is a modern parish management solution that organizes parishioners into households (rather than traditional "families" to accommodate single persons, shared housing arrangements, etc.) and provides tools for tracking membership, attendance, and ministry participation.
- Household Management: Organize parishioners into households with flexible structures
- Member Directory: Comprehensive member profiles and contact information
- API-First Design: RESTful API with Laravel Sanctum authentication
- Admin Dashboard: Filament-powered administrative interface
- Secure Authentication: Household-based API authentication system
- Catechism Groups: Manage religious education classes with attendance tracking
- Ministry Rosters: Schedule and track participation in parish ministries
- Attendance Registers: Comprehensive attendance management system
- Communication Tools: Parish-wide and group-specific messaging capabilities
- Backend: Laravel 12.x with PHP 8.2+
- Database: SQLite (default), with support for MySQL and PostgreSQL
- Authentication: Laravel Sanctum for API token management
- Admin Panel: Filament v4 for administrative interface
- Assets: Vite for modern asset bundling
- File Management: Spatie Media Library
- Permissions: Spatie Permissions package
- Queue System: Database-driven background job processing
The system features a household-centric API design:
POST /api/household/register - Register new household
POST /api/household/login - Household authentication
POST /api/household/logout - End session (protected)
GET /api/household - Get authenticated household details
PUT /api/household - Update household information
DELETE /api/household - Remove household
GET /api/household/members - List household members
POST /api/household/members - Add new member to household
GET /api/members/{member} - Get member details
PUT /api/members/{member} - Update member information
DELETE /api/members/{member} - Remove member
- PHP 8.2 or higher
- Composer
- Node.js & npm (for asset compilation)
- Clone the repository:
git clone https://github.com/yourusername/matthew.git
cd matthew- Install dependencies:
composer install
npm install- Environment configuration:
cp .env.example .env
php artisan key:generate- Database setup:
touch database/database.sqlite
php artisan migrate
php artisan db:seed- Build assets:
npm run buildcomposer devThis command starts:
- Laravel development server
- Queue worker for background jobs
- Pail log viewer for enhanced debugging
- Vite asset compilation with hot reload
composer test# Run migrations
php artisan migrate
# Seed development data
php artisan db:seed
# Create new migration
php artisan make:migration create_table_nameapp/
├── Http/Controllers/Api/ # API controllers
├── Models/ # Eloquent models
├── Filament/ # Admin panel configuration
└── Jobs/ # Background job classes
database/
├── migrations/ # Database schema migrations
└── seeders/ # Database seeders
routes/
├── api.php # API routes
└── web.php # Web routes
tests/
├── Feature/ # Integration tests
└── Unit/ # Unit tests
- Household-Based Authentication: Only households can authenticate via API
- Token Management: Laravel Sanctum provides secure API token handling
- Role-Based Access: Spatie Permissions for granular access control
- Secure by Default: All household data is scoped to authenticated user
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Make your changes following the coding standards
- Add tests for new functionality
- Run the test suite:
composer test - Commit your changes:
git commit -m 'Add new feature' - Push to the branch:
git push origin feature/new-feature - Submit a pull request
- Follow Laravel conventions and PSR-12 coding standards
- Use snake_case for database columns and field names
- Use PascalCase for model and controller names
- Write comprehensive tests for new features
- Document API endpoints and significant functionality
This project is licensed under the MIT License - see the LICENSE file for details.
For questions, issues, or contributions:
- Open an issue on GitHub
- Check the documentation in the
/docsdirectory - Review existing issues and discussions
- Core household and member management
- API authentication system
- Admin dashboard
- Data import/export functionality
- Catechism group management
- Attendance tracking system
- Ministry roster management
- Communication tools
- Mobile application
- Advanced reporting and analytics
- Integration with parish financial systems
- Multi-parish support
Matthew Parish Management System - Helping parishes build stronger communities through better organization.