Developer Guide
Welcome to the Chamilo 2.0 Developer Guide. This guide is for developers who want to understand the Chamilo architecture, extend the platform with plugins, use the API, customize the interface, or contribute to the project.
Architecture at a Glance
Chamilo 2.0 is built on:
Backend: Symfony 6.4 (PHP 8.2+) with Doctrine ORM and API Platform 3.0
Frontend: Vue 3 with PrimeVue, Pinia state management, and Vue Router
Build system: Webpack 5 via Symfony Webpack Encore, with Tailwind CSS
Authentication: JWT tokens (lexik/jwt-authentication-bundle)
File storage: Flysystem (supports local, AWS S3, Azure Blob, Google Cloud)
The codebase is organized into three Symfony bundles:
CoreBundle
Platform core: users, settings, resources, admin, AI providers, security
CourseBundle
Course-specific features: documents, exercises, learning paths, forums, etc.
LtiBundle
LTI 1.3 integration for external learning tools
How This Guide Is Organized
Getting Started — Tech stack, development setup, project structure
Backend — Symfony architecture, entities, resource system, controllers, settings
API — REST API via API Platform, JWT authentication, custom actions
Frontend — Vue components, views, routing, state management, build system
Theming — Color themes, CSS/Tailwind, Twig templates
Plugins — Plugin architecture and development
Contributing — Coding conventions, git workflow, testing
Last updated
Was this helpful?