bottelet/flarepoint
======================
DaybydayCRM is an everyday customer relationship management system (CRM) to help you keep track of customers, tasks, appointments, invoices, payments, documents, and other daily workflows. The CRM is available as an open-source, self-hosted platform and as a hosted CRM system on daybydaycrm.com.
Demo
Try a demo version of DaybydayCRM at:
Support the project
If you benefit from or like using DaybydayCRM, please consider helping drive the future development of the project by:
- Starring the project. ⭐
- Creating a pull request. 🚧
- Donating/Sponsoring today. 💛
- Considering the hosted version of DaybydayCRM. ✔️
The project continues to ship features, releases, support, and fixes through community and sponsor support.
Features
- Tasks and leads management
- Invoice management
- Time registration
- User absence and vacation registration
- Client and user appointments
- Role and permission management
- Global search
- Client overview
- Uploading documents and tracking client files
- And much more; see daybydaycrm.com for a broader feature overview
Current stack
- PHP 8.3+
- Laravel 12
- MySQL/MariaDB
- Redis/queue support
- Blade + Vue 2 + Vite
- PHPUnit, Dusk, and Playwright
- Docker Compose and Makefile-driven workflows
Get started
For help getting started, take a look at the wiki first:
Quick start with Docker
make up
make dsh
make setup
Quick start on host
composer install
yarn install
cp .env.example .env
php artisan key:generate
php artisan migrate:fresh --seed
yarn run build
composer dev
Useful commands
PHPUnit testing
make test— run PHPUnit with stop-on-failure behaviormake test-filter f=SomeTest— run a filtered PHPUnit subsetmake test-fail— run PHPUnit, stop on first failuremake paratest— run tests in parallel
Playwright e2e testing
make e2e-install— install Playwright and browser dependenciesmake e2e-test— run all Playwright e2e testsmake e2e-test STOP_ON_FAILURE=true— run all tests, stop on first failuremake e2e-test-one E2E_SPEC=tests/e2e/auth/auth.spec.js— run a single spec filemake e2e-test-one E2E_SPEC=tests/e2e/auth/auth.spec.js STOP_ON_FAILURE=true— run single spec, stop on failuremake e2e-fail— run Playwright tests, stop on first failuremake e2e-list— list all discovered Playwright testsnpm run test:e2e— run e2e tests directly via npmnpm run test:e2e:stop-on-failure— run e2e tests, stop on first failure
Database and maintenance
make clear— clear Laravel cachesmake dmfs— fresh migrate/seed inside Dockermake dseed— seed demo and dummy data inside Docker
Code quality
git ls-files '*.php' | xargs -n1 php -l— minimum required PHP syntax lint before push/PR
Repository guide
AGENTS.md— contributor and AI-agent workflow guide.github/ARCHITECTURE.md— architecture and technical debt notes.github/TESTING.md— testing and isolation standards.github/ROADMAP.md— current modernization roadmap.github/copilot-instructions.md— concise Copilot-specific guidance.junie/*.md— short operational summaries for analysis, testing, fixes, and refactorsCHANGELOG.md— current branch changelog summary
Architecture snapshot
DaybydayCRM follows a layered Laravel architecture:
Routes -> Middleware -> Controllers -> Services/Actions -> Repositories/Models -> Views or JSON responses
Current repository conventions emphasize:
- thin controllers
- FormRequest-based validation
- service/action extraction for business logic
- enums and helpers for fixed value sets
- observer and trait-based model behavior
- explicit JSON vs web response handling
Contribution Guide
DaybydayCRM follows PSR-2 coding standards.
Before pushing changes:
- keep tests self-contained and factory-driven
- place new HTTP/controller coverage in
tests/Feature/* - normalize dates before assertions
- refresh users after permission changes in tests
- run
git ls-files '*.php' | xargs -n1 php -l
If workflows are available, all tests should pass on GitHub Actions, or failing expectations should be updated to reflect intentional behavior changes.
Feedback
Feel free to send feedback on Twitter or file an issue. Feature requests are always welcome. If you want to contribute, please take a quick look at the repository guidance above.
Localization
You can help translate DaybydayCRM into other languages by copying resources/lang/en into, for example, resources/lang/de and translating the files inside that folder.
Licenses
DaybydayCRM from version 2.0.0 and up is open-sourced software licensed under the GNU GPLv3. FAQ GPL
DaybydayCRM under and not including version 2.0.0 is open-sourced software licensed under the MIT license.