Git Product home page Git Product logo

Timeterm

Pipeline Status

Timeterm is een embedded roostersysteem voor scholen, wat op het moment alleen streeft het roosterysteem Zermelo te ondersteunen.

Timeterm is open-source, maar niet alle delen vallen onder dezelfde licentie. Zie de verschillende mappen voor de verschillende licenties die gebruikt zijn. De root van de repository valt onder Apache 2.

© 2021 Kees Blok, Robert van der Maas en Rutger Broekhoff

Oplevering

Het project is woensdag 16 december 2020 opgeleverd voor BM3a. Er is toen een tag met de naam 'bm3a' aangemaakt. Klik hier om de broncode op dat moment in GitLab te bekijken.

Het project is donderdag 11 februari 2021 opgeleverd voor BM3b (12 februari 2021). Er is toen een tag met de naam 'bm3b' aangemaakt. Klik hier om de broncode op dat moment in GitLab te bekijken.

Het project won de tweede prijs en de publieksprijs voor de 3i Award (VWO) in 2021 (zie https://3i-award.nl/winnaars/).

Projectstructuur

/:

  • api/ - API-documentatie en verdere informatie (over bijv. de Zermelo API)
  • backend/ - Broncode voor het backend van Timeterm (Go), gehost op https://api.timeterm.nl/
  • design/ - Designbestanden van de UI en het apparaat
  • docs/ - Praktische documentatie van Timeterm, gehost op https://docs.timeterm.nl/
  • frontend-admin-web/ - Broncode voor het administratorsfrontend (React, TypeScript & JavaScript), gehost op https://admin.timeterm.nl/
  • frontend-embedded-devtools/ - Broncode voor ontwikkelingstools voor frontend-embedded (nepkaartlezer om lokaal in te loggen) (Qt, C++ & JavaScript)
  • frontend-embedded/ - Broncode voor het frontend wat op een embedded Timeterm-apparaat draait (Qt, C++ & JavaScript)
  • mfrc522/ - Broncode voor het gebruik van een MFRC522 op een Raspberry Pi 4 (maakt gebruik van het Linux GPIO character device via libgpiod) (C++)
  • nats-manager/ - Broncode voor het programma wat NATS (JetStream) streams en AuthZ beheert (en een NATS account server implementeert) met JWTs (Go)
  • oci-images/ - Docker images (build-time en overigen)
  • os/ - Broncode voor Timeterm OS (wat draait op het embedded apparaat), gebaseerd op Boot2Qt (BitBake)
  • proto/ - Beschrijvingen van berichten die gebruik maken van (Google) Protocol Buffers

Het project maakt gebruik van GitLab CI. Alleen de gewijzigde componenten worden gebouwd.

Het backend opstarten (development)

De eerste keer opstarten vereist wat meer stappen dan de keren daarop. We gaan er vanuit dat je toegang hebt tot Docker Compose en de Vault CLI.

  1. timeterm $ cd backend
  2. backend $ docker-compose up -d vault postgres
  3. backend $ vault operator init -address http://localhost:8300
    Deze stap kan weggelaten worden wanneer Vault al eens eerder is opgestart. Sla de initial root token en de unseal keys op een veilige plek op (en zorg vooral dat je ze niet vergeet).
  4. backend $ vault operator unseal -address http://localhost:8300
    In het geval van deze setup moet dit commando 3x uitgevoerd worden (de helft + 1 (quorum) van de aangemaakte unseal keys moet geleverd worden).
  5. backend $ cd ../nats-manager
  6. nats-manager $ ./nats-manager
    Voor deze stap moet je nats-manager al gebouwd hebben en je omgevingsvariabelen moeten ook juist ingesteld zijn. nats-manager en het backend laden automatisch omgevingsvariabelen uit het bestand .env. Er is een bestand .env.example in de map van nats-manager toegevoegd waarin voorbeeldwaarden voor de vereiste omgevingsvariabelen staan.
  7. (in een andere terminalsessie/venster) timeterm $ cd backend
  8. backend $ docker-compose up -d nats
  9. backend $ ./backend
    Voor deze stap geldt ook dat de omgevingsvariabelen juist ingesteld moeten zijn. Dit kan hier ook met een .env-bestand gedaan worden.

Timeterm's Projects

timeterm icon timeterm

Embedded timetable system (integrates with Zermelo) – monorepo – mirror of https://gitlab.com/timeterm/timeterm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.