FrEDA

FrEDA

  • Docs
  • Tutorial
  • Demo

›Präambel

Präambel

  • Architektur
  • MonoRepo Struktur

External

  • PostgreSQL / Postgraphile
  • GraphiQL

Backend

  • GraphQL Server
  • GraphQL-Modules
  • TypeGraphQL
  • GraphQL-Playground
  • Besonderheiten
  • REST-Endpoints

Frontend

  • FrEDA ReactJS-Basics
  • Common Frontend-Library
  • CLI-Tools

Deploy

  • Deployment

Roadmap

  • geplante Weiterentwicklung

MonoRepo Struktur

Das MonoRepo liegt in folgender Ordner- und File-Struktur vor (# Kommentare dienen zum besseren Verständnis):

├── backend
│   └── freda-middleware #Ort des GraphQL-Gateways / NodeJS GraphQL Apollo-Server
│       ├── src
│       │   ├── constants # Konstanten
│       │   │   └── role.enum.ts
│       │   ├── externalSchemas # Intitialisierung / Introspection von externen GraphQL-Servern / Schemas
│       │   │   ├── fredaSchema.ts
│       │   │   └── prodatSchema.ts
│       │   ├── middleware # Resolver-Middleware / Composition Funktionen wie Auth oder Logging
│       │   │   ├── isAuth.middleware.ts
│       │   │   ├── logging.middleware.ts
│       │   ├── migration # Migrations-Daten, z.B. für die initiale Nutzer-Einrichtung des Systems
│       │   │   └── 1571130343016-SeedInit.ts
│       │   ├── modules # Ort für GraphQL-Modules, welche in der server.ts zusammengeführt werden
│       │   │   ├── media
│       │   │   │   ├── resolver
│       │   │   │   │   └── media.resolver.ts
│       │   │   │   ├── type
│       │   │   │   │   └── media.type.ts
│       │   │   │   └── index.module.ts
│       │   ├── seeds # initiale Seed-Daten
│       │   │   ├── role.seed.ts
│       │   │   └── user.seed.ts
│       │   ├── static # Ort für statische Dateien, z.B. Word-Vorlage
│       │   │   ├── Einrichteblatt_Drehen_PRODAT_Template.docx
│       │   ├── utils # Services, welche gloabl genutzt werden, z.B. Logging oder Authorisation
│       │   │   ├── isAuth.service.ts
│       │   │   ├── logging.service.ts
│       │   ├── app.ts # init Express-Server App
│       │   ├── context.ts # Context Interface für GraphQL-Modules
│       │   ├── env.ts # Env-Vars in TypeScript überführen
│       │   ├── index.ts # App entry main-Funktion
│       │   └── server.ts # declaration Apollo-Server
│       ├── ormconfig.ts # TypeORM Konfiguration
│       ├── package.json # NPM-Packages + Versionen
│       ├── tsconfig.json # TypeScript Lint-Config
│       └── yarn.lock # NPM-Packes Version control lock
├── doc # docusraus
│   ├── docs
│   │   └── doc1.md
│   ├── website
│   │   ├── core
│   │   │   └── Footer.js
│   │   ├── i18n
│   │   │   └── en.json
│   │   ├── pages
│   │   │   └── en
│   │   │       ├── help.js
│   │   │       ├── index.js
│   │   │       └── users.js
│   │   ├── static
│   │   │   ├── css
│   │   │   └── img
│   │   ├── README.md
│   │   ├── package.json
│   │   ├── sidebars.json
│   │   ├── siteConfig.js
│   │   └── yarn.lock
│   ├── Dockerfile
│   └── docker-compose.yml
├── external # externe Postgraphile GraphQL-Server
│   ├── adminui-graphile
│   │   ├── src
│   │   │   ├── app.ts
│   │   │   ├── declarations.d.ts
│   │   │   ├── env.ts
│   │   │   ├── index.ts
│   │   │   └── postgraphile.ts
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── yarn.lock
│   └── prodat-graphile
│       ├── src
│       │   ├── app.ts
│       │   ├── declarations.d.ts
│       │   ├── env.ts
│       │   ├── index.ts
│       │   ├── postgraphile.ts
│       │   └── tableIntrospection.ts
│       ├── package.json
│       ├── tsconfig.json
│       └── yarn.lock
├── frontend # Frontend-Apps
│   ├── common # FredaCommon-Library
│   │   ├── src
│   │   │   ├── components
│   │   │   ├── hooks
│   │   │   ├── interfaces
│   │   │   ├── services
│   │   │   ├── stores
│   │   │   ├── utils
│   │   │   ├── index.ts
│   │   │   └── types.ts
│   │   ├── package.json
│   │   └── tsconfig.json
│   ├── freda-adminui # ReactJS App Admin-UI
│   │   ├── public # static files wie Logo oder index.html
│   │   ├── src # Source-Code
│   │   │   ├── components # React-Componenten frei strukturierbar (aktuell nur als Idee)
│   │   │   │   ├── elements # Elemente, welche nur für diese App gültig sind (z.B. Trans)
│       │   │   ├── forms # Formular-Komponenten (Artikel hinzufügen o.ä.)
│   │   │   │   └── pages # Seiten-Komponenten (wie Wareneingangliste)
│   │   │   ├── graphql # GraphQL-Queries
│   │   │   │   ├── fragments
│   │   │   │   ├── mutations
│   │   │   │   ├── queries
│   │   │   │   ├── subscriptions
│   │   │   │   └── types.tsx # generierte Types und hooks durch GraphQL-Codegen
│   │   │   ├── appConfig.ts # Konfiguration der gesamten App + Module
│   │   │   ├── index.css
│   │   │   ├── index.tsx
│   │   │   ├── react-app-env.d.ts
│   │   │   └── serviceWorker.ts
│   │   ├── codegen.yml # GraphQL-Codegen config
│   │   ├── package-lock.json
│   │   ├── package.json
│   │   ├── tsconfig.json
│   │   └── yarn.lock
│   └── freda-app # ReactJS FrEDA-App
│       ├── public # static files wie Logo oder index.html
│       ├── src # Source-Code
│   │   │   ├── components # React-Componenten frei strukturierbar (aktuell nur als Idee)
│   │   │   │   ├── elements # Elemente, welche nur für diese App gültig sind (z.B. Trans)
│       │   │   ├── forms # Formular-Komponenten (Artikel hinzufügen o.ä.)
│   │   │   │   └── pages # Seiten-Komponenten (wie Wareneingangliste)
│       │   ├── graphql # GraphQL-Queries
│       │   │   ├── fragments
│       │   │   ├── mutations
│       │   │   ├── queries
│       │   │   ├── subscriptions
│       │   │   └── types.tsx # generierte Types und hooks durch GraphQL-Codegen
│       │   ├── appConfig.ts # Konfiguration der gesamten App + Module
│       │   ├── index.css
│       │   ├── index.tsx
│       │   ├── react-app-env.d.ts
│       │   └── serviceWorker.ts
│       ├── codegen.yml # GraphQL-Codegen config
│       ├── package.json
│       ├── schema.graphql
│       ├── tsconfig.json
│       └── yarn.lock
├── lerna.json
├── package.json
└── yarn.lock
← ArchitekturPostgreSQL / Postgraphile →
FrEDA
Docs
Getting StartedFrontendBackendFrEDA Users
Tutorial
RequirementsSetup DevelopmentQuick run
Mehr
Prodat-SQLHochschule MittweidaDEVTIM IT Softwareentwicklung
Facebook Open Source
Copyright © 2021 Prodat-SQL. Built with ❤ and Docusaurus.