Lotta is a simple-to use platform aimed at schools. Its comprehensible interface makes it easy for students and teachers to create a sophisticated webpage for their school, providing articles, files, messages and media in access-controlled spaces.
See https://lotta.schule for more information.
The latest git tag is the currently deployed version that also runs unmodified on our infrastructure.
Location: apps/webapp
The Webapp is a NextJS app that serves the application. Its primary purpose is serving the frontend.
Location: apps/core
The Core is a Phoenix app that serves the backend, handles authentication and authorization, data storage and retrieval, real-time notifications, and more. The boundary to the outside wolrd consists primarily of a GraphQL API.
Location: libs/hubert
Hubert is our component library. See our storybook to get an overview over the available components.
Location: libs/theme
Here lies the definition and schema lotta uses for theming.
Location: apps/storybook-hubert
The storybook project for hubert. It's just for illustration purposes and drives the storybook for hubert.
Location: libs/storybook-addon-theme
A storybook-addon which allows editing the lotta theme in storybook
For monorepo managing, we use nx.
apps/core-api/docker-compose.services.yml
.We know getting started is not very easy at this point, but it has not been a priority yet. If you are interested in contributing, or have any questions, feel free to reach out to us.
pnpm install
docker-compose -f apps/core-api/docker-compose.services.yml up -d
pnpm test
pnpm lint
pnpm typecheck
pnpm dev:full
This will start:
The easiest is to start by creating a new lotta tenant, or copying over
the data from some prod or test system. As lotta recognizes its tenants
via the host url, we suggest you use http://<tenant-slug>.local.lotta.schule:3000
;
It's pointed directly to your localhost, but with the extra of having
a multitenant-capable hostname