lotta-schule / web

Lotta Web Monorepo
https://lotta.schule
GNU Affero General Public License v3.0
4 stars 0 forks source link
nextjs react

Lotta

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 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.

Components

Webapp

Location: packages/webapp

The Webapp is a NextJS app that serves the application. Its primary purpose is serving the frontend.

Hubert

Location: packages/hubert

Hubert is our component library. See our storybook to get an overview over the available components.

Theme

Location: packages/theme

Here lie the definition and schema lotta uses for theming.

Storybook Hubert

Location: packages/storybook-hubert

The storybook project for hubert.

Storybook-Addon-Theme

Location: packages/storybook-addon-theme

A storybook-addon which allows editing the theme in storybook

Development

For monorepo managing, we use nx.

Prerequisites

Commands

  1. Install the necessary dependencies. In the project's root folder, run:
pnpm install
  1. Run all available tests (this will take a few minutes, depending on the machine you run it on):
pnpm test -- --no-watch
  1. Run all available linters / typecheckers:
pnpm lint
pnpm typecheck
  1. Start the Development environment:
pnpm dev

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