Skip to content

Extending

Schulbuchaktion ist so konzipiert, dass es modular und leicht erweiterbar ist. Darüber hinaus haben wir auch eine standardisierte Arbeitsweise (Git-Flow, GitHub-Projekte, Issues, Pull Requests usw.).

Es wird dringend empfohlen, diese Richtlinien zu befolgen.

Lernen

Bevor Sie an Schulbuchaktion arbeiten, sollten Sie ein solides Verständnis für folgende Dinge haben:

INFO

Obwohl Sie die Grundlagen kennen sollten, müssen Sie nicht alles auswendig wissen. Wichtige Themen sind fett markiert.

Sprachen

  • TypeScript (JavaScript)
  • PHP

Frameworks & Bibliotheken

  • Vue 3
  • Nuxt 3
  • Pinia
  • Vue Router
  • Vitest (Jest)
  • Playwright
  • Symfony

Werkzeuge

  • Docker
  • Vite
  • Composer
  • Git

Die Erweiterung der Dokumentation erfordert nur Kenntnisse in Markdown.

Architektur

Schulbuchaktion verwendet die monolithische Architektur. Das Repository enthält die folgenden Hauptverzeichnisse, /frontend, /backend und /docs. Wie Sie sehen können, haben wir auch ein Monorepo anstelle einer Aufteilung der Dienste in separate Git-Repositories, z.B. Schulbuchaktion-client, Schulbuchaktion-backend, …

REST-API

In diesem Projekt fungiert Symfony ausschließlich als REST-API, ohne Twig-Templates bereitzustellen.

Nuxt

Nuxt ist ein Full-Stack-Framework, das bedeutet, es kann sowohl für das Frontend als auch das Backend verwendet werden. Wir ignorieren das Verzeichnis /server und verwenden nur die Frontend-Funktionen von Nuxt.

Containerisierung

Das gesamte Projekt ist in einer einzigen docker-compose.yml eingerichtet. Die MySQL-Datenbank hat ein Volume (mysql_data), das in /backend eingebunden ist.

Empfohlene IDE und Werkzeuge

Schulbuchaktion wurde in PHPStorm erstellt; es wird empfohlen, es auch zu verwenden, da es alles von Haus aus bereitstellt. Wenn Sie VSCode verwenden möchten, müssen Sie Ihre eigene .vscode-Konfiguration bereitstellen.
NeoVim- und Vim-Benutzer sollten wissen, wie sie ihre Umgebung selbst konfigurieren können.

Für manuelle API-Tests verwenden wir Postman.

Dependabot

Wir verwenden Dependabot von GitHub, um unsere Abhängigkeiten auf dem neuesten Stand zu halten. Es ist so konfiguriert, dass es wöchentlich überprüft wird.

CommitCheck

Wir verwenden den CommitCheck-Bot, um die korrekten Commit-Nachrichten zu überprüfen. Er ist so konfiguriert, dass er den Conventional Commits folgt.

RegEx-Filter: ^(feat|fix|chore|docs|style|refactor|perf|test|build|ci|revert)(\([^\)]+\))?(\!)?\: .+

Designs

UI/UX-Designs werden in Figma erstellt. Wenn Sie sich das ansehen möchten, hier ist der Link. Wir verwenden NuxtUI als Basis für die Komponenten.

Konventionen

Besuchen Sie den Abschnitt Konventionen, um mehr zu erfahren.

Veröffentlicht unter der MIT Lizenz.