Reviewed-on: #73
PSI Trail V2
Der PSI Trail V2 ist ein Rewrite des PSI Trail V1. Die Anwendung wurde UI-seitig modernisiert und stärker an das PSI Design angepasst.
Die Zielgruppe sind Neulinge am PSI. Der Trail wird jeweils am Einführungstag gemeinsam durchgeführt, welcher monatlich stattfindet.
Zweck
Der PSI Trail V2 hilft neuen Mitarbeitenden und Forschenden, das PSI-Areal besser kennenzulernen.
Da viele nach dem Einführungstag hauptsächlich im Büro arbeiten, bietet der Trail eine spielerische Möglichkeit, sich mit dem Gelände vertraut zu machen.
Ablauf
Der PSI Trail V2 besteht aus mehreren Screens:
- Die Gruppe wählt eine Route aus.
- Anschliessend erhält sie den ersten Hinweis zu einem Posten.
- Vor Ort findet die Gruppe einen QR-Code.
- Nach dem Scannen des QR-Codes muss eine Frage über das PSI beantwortet werden.
- Bei richtiger Antwort wird der nächste Posten freigeschaltet.
Technische Informationen
- Frontend-only Applikation
- Entwickelt mit Angular 21
- Deployment via CI/CD
- Routen- und Postendaten werden aus JSON-Dateien geladen
Projektstruktur
psitrail-2.0
├── .gitea/
│ └── workflows/
│ └── buildAndRun.yaml
├── psitrail/
│ ├── public/
│ │ └── assets/
│ │ └── i18n/
│ │ ├── de.json
│ │ └── en.json
│ ├── src/
│ │ ├── app/
│ │ │ ├── interfaces/
│ │ │ ├── pages/
│ │ │ ├── services/
│ │ │ ├── app.config.ts
│ │ │ ├── app.css
│ │ │ ├── app.html
│ │ │ └── app.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ └── styles.css
│ ├── posten.json
│ ├── routen.json
│ ├── angular.json
│ ├── package.json
│ └── readme.md
├── Dockerfile
└── README.md
Voraussetzungen
Für die lokale Entwicklung wird benötigt:
- Node.js
- npm
Andere Package Manager wie pnpm oder yarn können ebenfalls verwendet werden, entwickelt wurde jedoch mit npm.
Lokale Installation
-
Repository klonen
git clone git@gitea.psi.ch:bb_if_produktiv/psitrail.git -
Ins Repository wechseln
cd psitrail -
In den Frontend Ordner wechseln
cd psitrail -
Abhängigkeiten installieren
npm install -
Applikation starten
npm start
Daten
Die Daten für Routen und Posten liegen in JSON-Dateien:
- routen.json
- posten.json Änderungen an Routen, Fragen oder Posten können direkt dort vorgenommen werden.
Deployment
Wichtig: Es kann nur in den Branch dev gepusht werden.
Testumgebung
Sobald Änderungen auf dev gepusht werden, wird automatisch auf die Testumgebung deployed:
Hinweis: Die Dev-Umgebung ist nur intern erreichbar.
Produktion
Für ein Produktionsdeployment muss ein Pull Request nach main erstellt werden.
Ablauf:
- Änderungen nach dev pushen
- Testen auf psitrail-test.psi.ch
- Pull Request von dev nach main erstellen
- Process Review abwarten
- Nach dem erfolgreichen Process Review erfolgt das Deployment auf Produktion
Produktionsumgebung:
Hinweis: Die Produktionsumgebung ist von Überall erreichbar.
CI/CD
Der Deployment-Prozess läuft automatisch über Gitea Workflows.
Der Workflow:
- baut ein Docker-Image
- veröffentlicht dieses im Package-Repository: bb_if_produktiv/packages
- triggert anschliessend den Workflow im Repository: bb_if_produktiv/deployment
- dort wird das Image auf den Server deployed
Umgebungen
- dev → psitrail-test.psi.ch
- main / prod → psitrail.psi.ch
Hinweise
Der PSI Trail V2 hat kein Backend, rein nur Frontend. Die UI wurde für den Einführungstag und die Nutzung in Gruppen optimiert. Die Texte sind mehrsprachig vorbereitet über die Dateien unter public/assets/i18n/.