Course Manager is a Laravel 12 application for enterprise learning and workforce enablement. The platform is focused on helping organizations identify skill gaps, assign targeted learning, and track outcomes with governance and reporting built in.
- Strategy: enterprise-first B2B SaaS for learning, skills, governance, and outcomes.
- Primary customers: mid-market and enterprise organizations with active reskilling programs.
- Primary users: L&D admins, HR business partners, managers, and learners.
- Current platform emphasis: multi-tenancy, organization hierarchy, RBAC foundation, course and curriculum management, enrollment workflows, skills intelligence foundation, and enterprise administration groundwork.
Read the product documents for the fuller picture:
The full PRD index lives in the documentation map below and under docs/product/prd.
The repository is organized domain-first. Laravel remains the application shell, while business-owned code lives under domains/*. Architectural decisions and implementation patterns are documented in the ADRs linked below.
- PHP 8.2+
- Composer
- Node.js and npm
- Docker / Docker Compose
- MariaDB
composer setupThis installs dependencies, prepares the environment, runs migrations, and builds frontend assets.
docker-compose up -dThe default local database settings in .env.example target the MariaDB container defined in docker-compose.yml.
composer devThis starts the Laravel server, queue worker, Pail log viewer, and Vite dev server together.
Before finishing code changes, run:
composer testcomposer test runs:
phpcsphpstanphp artisan config:clearphp artisan test
You can run the quality tools individually when iterating:
composer lint
composer phpcs
composer phpstan
composer lint:fixMore detail lives in LINTING.md.
- Use
declare(strict_types=1);in PHP files. - Prefer simple, explicit code and typed contracts.
- Follow the repository ADRs before introducing new patterns.
- Keep feature behavior covered with PHPUnit tests.
- Product strategy
- Enterprise 12-month execution plan
- PRD-001: enterprise tenancy and organization hierarchy
- PRD-001 implementation plan
- PRD-002: RBAC baseline
- PRD-003: role-to-skill mapping UI
- PRD-003 implementation plan
- PRD-004: employee skill profile and gap scoring
- PRD-005: auto-suggested learning pathways by role
- PRD-006: manager assignment and progress tracking
- ADR-001: tenant modeling and isolation boundaries
- ADR-002: domain-first repository structure (superseded)
- ADR-003: root-level domain structure
- ADR-004: parameterized SQL service pattern
- ADR-005: typed domain service payloads
- ADR-006: domain enums for closed value sets
- ADR-007: route-driven domain component tests
- The repository started as part of a Laravel training project and has since been reshaped into an enterprise product codebase.
- If you materially reshape domain ownership, update this README and the relevant ADR documentation in the same change.
- The
Skillsdomain now anchors role-to-skill mapping UI scaffolding for the Pillar 1 rollout.