eXeLearning is an AGPL-licensed free/libre tool to create and publish open educational resources.
Explore the project »
Report a Bug
·
Request Feature
eXeLearning 3+ is a modern re-implementation of the original eXeLearning authoring tool, initially created in the eXeLearning.org project in New Zealand and subsequently continued by eXeLearning.net project by the Spanish Ministry of Education, Vocational Training and Sports (MEFPD) through Cedec-INTEF.
The new code has been created within the collaboration between the MEFPD and the regional educational administrations of Andalucía and Extremadura. The revision and further developments of eXe 3.0 are carried out also with the participation of other regional administrations (Canarias, Madrid, Comunidad Valenciana and Galicia).
This version is built with modern technologies (Bun, Elysia, Kysely) and provides an accessible and up-to-date user interface for creating interactive educational content.
- Creation and edition of interactive educational content
- Multiple iDevices (interactive elements)
- Multilingual support
- Exportation to various formats
- Moodle integration
- RESTful API built with Elysia
- Real-time collaborative editing powered by Yjs WebSocket
- Architecture Documentation
- Modern and accessible interface built with Bootstrap
- Multiple authentication methods (Password, CAS, OpenID Connect)
- Compatible with MySQL, PostgreSQL, and SQLite databases
- Offline installers supported via Electron and nativePHP
docker run --pull always -p 8080:8080 --name exelearning exelearning/exelearning:latestThis will start eXeLearning at http://localhost:8080 with the default credentials: user@exelearning.net / 1234.
First install Bun if you don't have it yet. Then:
git clone https://github.com/exelearning/exelearning.git
cd exelearning
bun install
bun run start:devThis will start eXeLearning at http://localhost:8080.
Offline installers for Linux, Windows and macOS are also available on the Releases page.
To deploy eXeLearning in a production environment, see:
- Overview: doc/deployment.md
- Sample Compose files: doc/deploy/README.md
- Upgrading from previous versions: UPGRADE.md
See doc/development/environment.md for full setup instructions.
git clone https://github.com/exelearning/exelearning.git
cd exelearning
bun install
bun run start:devThis will start the development server at http://localhost:8080 with hot reload.
More development tools, options, and real-time collaboration info are documented in the doc/ folder. See also Architecture Documentation.
exelearning/
├── src/ # Elysia backend (TypeScript)
│ ├── routes/ # API routes
│ ├── services/ # Business logic
│ ├── db/ # Kysely database (queries, migrations)
│ └── websocket/ # Yjs WebSocket collaboration
├── public/ # Static files
│ ├── app/ # Vanilla JS frontend
│ │ └── yjs/ # Yjs integration (real-time)
│ ├── libs/ # jQuery, Bootstrap, TinyMCE
│ └── style/ # CSS/SCSS
├── views/ # Nunjucks templates
├── doc/ # Documentation
├── test/ # Integration tests
├── main.js # Electron main process
├── Makefile # Build commands
└── package.json # Dependencies
eXeLearning enables educators to:
- Create interactive educational projects
- Add different types of content using iDevices
- Structure content with a hierarchical index
- Export content for use in Moodle or other platforms
- Share and collaborate on educational resources
The project supports multiple languages using i18n. Currently available:
- English (default)
- Español
- Català
- Euskara
- Galego
- Valencià
- Esperanto
For more information on translation management, see the internationalization documentation.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See our versioning guide for details about our Git workflow.
The project includes a Makefile to simplify development tasks:
make install # Install dependencies (bun install)
make start:dev # Start development server with hot reload
make test-unit # Run unit tests
make test-coverage # Run tests with coverage report
make build # Build for production
make package # Build Electron installers for all platforms
make lint # Run Biome linter
make fix # Automatically fix linting issues
To see all available commands, run:
make help
The full project documentation is available in the doc directory
Distributed under the GNU AFFERO GENERAL PUBLIC LICENSE v3.0. See LICENSE for more information.
eXeLearning is a free/libre tool to create and publish open educational resources.