Setup Development
Wir richten das Framework für die lokale Entwicklung ein.
Lets get started
Mono-Repo clonen und ins Verzeichnis wechseln:
git clone git@office.devtim.org:devtim/freda-typescript.git
cd freda-typescript
Zugang für das Repo bei DEVTIM anfragen!
Um einen Einblick in die Architektur und Order-Struktur zu bekommen folgen Sie den Links:
Installationsanleitung
Konfiguration von Zugängen, Endpoints und Datenbank für GraphQL-Server, Postgraphile Admin-UI und Middleware TypeORM
(5 x .env Dateien anlegen und bearbeiten):
cp external/adminui-graphile/.env.sample external/adminui-graphile/.env && vim external/adminui-graphile/.env
cp external/prodat-graphile/.env.sample external/prodat-graphile/.env && vim external/prodat-graphile/.env
cp backend/freda-middleware/.env.sample backend/freda-middleware/.env && vim backend/freda-middleware/.env
cp frontend/freda-adminui/.env.sample frontend/freda-adminui/.env && vim frontend/freda-adminui/.env
cp frontend/freda-app/.env.sample frontend/freda-app/.env && vim frontend/freda-app/.env
Alle Abhängigkeiten installieren:
yarn install
Datenbank aufsetzen und Initiale Inhalte befüllen (Befehl startet über lerna ein custom npm script in backend/freda-middleware package):
yarn setup
Ab hier gibt es jetzt zwei weitere mögliche Vorgehensweisen:
Option 1: alles mit einer Console und einem Befehl starten (schnellster start, dauert ca. 60 Sec bis alles gestartet ist):
yarn dev
Option 2: jeden Microservice und jede Anwendung in einem eigenen Terminal starten:
Diese Option hat den Vorteil das die Logging-Ausgaben pro Service in einem Terminal geschehen, besser für die Entwicklung am Projekt. Erfordert aber beim Start die Dienste in folgender Reihenfolge zu starten, da alle Anwendungen aufeinander aufbauen und abhängig sind (wir gehen immer vom root des Repos aus):
Postgraphile Prodat DB (unabhängig):
cd external/prodat-graphile
yarn start
Postgraphile FrEDA DB (unabhängig):
cd external/adminui-graphile
yarn start
FrEDA Middleware (benötigt Postgraphile Prodat DB & Postgraphile FrEDA DB):
cd backend/freda-middleware
yarn dev
FrEDA Frontend Admin-UI (benötigt FrEDA Middleware):
cd frontend/freda-adminui
yarn start
FrEDA Frontend APP (benötigt FrEDA Middleware):
cd frontend/freda-app
yarn start
Danach laufen folgende Dienste unter folgenden Ports:
| Dienst | Standard-Port | Browser-UI |
|---|---|---|
| GraphQL-Server: Postgraphile Prodat (Microservice) | 4444 | [Protokoll]://[Host]:4444/postgraphile/graphiql (GraphiQL) |
| GraphQL-Server: Postgraphile Admin-UI (Microservice) | 5555 | [Protokoll]://[Host]:5555/postgraphile/graphiql (GraphiQL) |
| GraphQL-Server: Middleware (Gateway) | 4000 | [Protokoll]://[Host]:4000/api (GraphQL-Playground) |
| Frontend: Admin-UI | 3002 | [Protokoll]://[Host]:3002 (React-App) |
| Frontend: App | 3001 | [Protokoll]://[Host]:3001 (React-App) |
Standard Admin-Login
User: info@devtim.de
Passwort: 123456
E-Mail und Passwort kann nach initialer Einrichtung in der Admin-UI angepasst werden
Neustart / Kill
wenn beim Start etwas schief gelaufen ist, gehe sicher das alle Anwendungen gestoppt werden, bevor sie wieder neu gestartet werden (Script killt alle Standardports der Anwendungen):
yarn kill-ports
