A Laravel 12 CRM system
- Tech Stack
- General Information
- How To Setup
- How To Contribute
- General CLI Commands
- Sponsor The Project
| Tech | Version |
|---|---|
| PHP | 8.4.6 |
| Laravel Installer | 5.14.0 |
| Laravel | 12.28.1 |
| Composer | 2.8.8 |
| NPM | 11.5.2 |
| Node | v23.11.0 |
| VueJS | 3.5.18 |
| MySQL | 8.0.42 |
This project is an all-in-one CRM system designed to help businesses manage customers, leads, and internal workflows from a single platform. It is built with Laravel 12, following common Laravel OSS conventions, with an emphasis on clean architecture, extensibility, and long-term maintainability.
- Built in Laravel 12 - leveraging the latest framework features for performance, security, and scalability
- Modular & Extensible - easily add new modules or integrate with external APIs
- User-Friendly Interface - modern, responsive design for smooth navigation and usability
- Customer & Lead Management: Organise contacts, track leads, and maintain detailed profiles
- Role-Based Access Control: Secure user management with customizable permissions
- Analytics & Reporting: Gain insights into business performance with dynamic dashboards
Follow these steps to set up the project locally:
- Clone the repository
git clone https://github.com/MattYeend/CRM.git
cd CRM- Install PHP dependencies
composer install- Install Node dependencies
npm install && npm run build- Set up environment
cp .env.example .env
php artisan key:generate- Configure your database in
.envand run migrations:
php artisan migrate- Seed all tables if needed:
php artisan seed- Set up storage
php artisan storage:link- Run the development servers
php artisan serve
npm run devThis project follows the standard Laravel OSS fork-and-pull-request workflow, used by most open-source Laravel packages and applications.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name. - Make your changes and commit:
git commit -m '#issue-number Add your message here'. - Run
php artisan insightsand make any relevant changes that it might suggest. - Ensure that the relevant language file(s) have been created.
- Ensure there's relevant tests and that they work and pass.
- If anything requires
vue.jschanges, run:npm i && npm run build. - Push to your fork:
git push origin feature/your-feature-name. - Create a Pull Request.
Please follow the code style and commit message conventions.
To keep the commit history clean and consistent, please follow these conventions:
#issue-number Short, clear description in the imperative moodExamples
#42 Add customer export feature
#87 Fix validation for lead creation
#101 Refactor role permission checksGuidelines:
- Reference an issue number where applicable
- Use the imperative mood (“Add”, not “Added”)
- Keep commits focused and descriptive
- Avoid bundling unrelated changes into a single commit Maintainers may squash commits on merge.
For clarity and transparency:
- External contributors do not merge directly
- All changes enter the project via Pull Requests
- Pull Requests are reviewed before merging
- The preferred merge method is Squash and Merge
- Keeps
mainanddevelophistory clean - One commit per feature or fix
- Commit message may be edited by maintainers
The
mainanddevelopbranchs is protected and should never be pushed to directly.
| Command | Description |
|---|---|
php artisan make:model modelName -mcr |
Create a model, migration, and resource controller |
php artisan make:model modelName -a or php artisan make:model modelName --all |
Create a model, migration, factory, seeder, controller, resource, request(s) |
php artisan make:model modelName |
Create a model |
php artisan make:controller controllerName |
Create a controller |
php artisan make:controller controllerName --resource |
Create a resource controller |
php artisan make:migration migration_name |
Create a migration |
php artisan make:seeder SeederName |
Create a seeder |
php artisan make:factory FactoryName |
Create a factory |
php artisan make:request RequestName |
Creates a form request for validation |
php artisan make:event EventName |
Creates an event class |
php artisan make:listener ListenerName |
Creates a listener class |
php artisan make:job JobName |
Creates a queued job |
php artisan make:service ServiceName |
Creates a new service class |
If you find this project useful, consider sponsoring it to support future development and maintenance.
☕ Buy Me a Coffee
💸 Personal GitHub Sponsor
🏢 Company Github Sponsor