Official plugins for the Schuly backend - monorepo
Plugins built against the SchulyPluginAbstractions contract. Each plugin extends SchulyBackend with background tasks, event handlers, and integrations with external school-management systems - and contributes its own entry to the app's school-system catalog.
| Plugin | Purpose |
|---|---|
Schuly.Plugin.Example |
Reference / scaffolding plugin for new authors |
Schuly.Plugin.Schulware |
Integration with SchulwareAPI |
Schuly.Plugin.OdaOrg |
Integration with OdA Org |
- Copy
Schuly.Plugin.Example/toSchuly.Plugin.<Name>/ - Implement
ISchulyPluginfrom the PluginAbstractions NuGet package - Open an issue with the
new-pluginlabel - Open a PR
Adding a plugin walks through it in full.
Full documentation lives at docs.schuly.dev/SchulyPlugins.
| Guide | What it covers |
|---|---|
| Adding a plugin | Scaffold, implement, and register a new plugin. |
| Development setup | Build and run plugins against a local backend. |
| Distribution | How built plugins are packaged and served to the backend. |
| Kiota client | Regenerate a plugin's HTTP client from an upstream OpenAPI spec. |
| Migrations | Per-plugin EF Core migrations. |
| Contributing | Workflow, branch and PR conventions. |
The contract itself is documented at the plugin contract.
| Repo | Purpose |
|---|---|
| Schuly | Flutter mobile app |
| SchulyBackend | ASP.NET Core API backend |
| SchulyKeycloak | Keycloak image + the schuly realm |
| SchulyPluginAbstractions | Plugin contract (NuGet) |
| SchulyPlugins | Official plugins monorepo (this repo) |
| SchulyWebsite | Landing site (schuly.dev) |
| SchulyDocs | Documentation site (docs.schuly.dev) |