No description
Find a file
2026-04-12 10:43:31 +02:00
.cursor/plans feat:finished admin pages 2026-01-12 13:23:11 +01:00
.github/workflows fix: updated yml files to include retention days for artifacts 2026-03-06 15:38:58 +01:00
config updated cofig logic 2025-09-10 13:04:16 +02:00
docs ui all languages transferred 2026-04-09 00:11:35 +02:00
public revised ui components 2026-01-20 00:56:00 +01:00
scripts ui all languages transferred 2026-04-09 00:11:35 +02:00
src fixed udb rbac 2026-04-12 10:43:31 +02:00
work-around feat:chatbot dynamisch geladen 2026-01-29 15:37:38 +01:00
.gitignore updated cofig logic 2025-09-10 13:04:16 +02:00
env.d.ts deployment2 2025-05-07 12:08:11 +02:00
eslint.config.js deployment2 2025-05-07 12:08:11 +02:00
index.html revised ui components 2026-01-20 00:56:00 +01:00
package-lock.json added monaco editor 2026-03-17 22:51:36 +01:00
package.json added monaco editor 2026-03-17 22:51:36 +01:00
README.md updated cofig logic 2025-09-10 13:04:16 +02:00
staticwebapp.config.json test4 2025-05-07 11:13:57 +02:00
tsc-errors.txt ui all languages transferred 2026-04-09 00:11:35 +02:00
tsc-out.txt ui all languages transferred 2026-04-09 00:11:35 +02:00
tsconfig.app.json deployment2 2025-05-07 12:08:11 +02:00
tsconfig.json deployment2 2025-05-07 12:08:11 +02:00
tsconfig.node.json deployment2 2025-05-07 12:08:11 +02:00
Untitled next version of visual workflow editor with Clickup Connector 2026-03-25 09:39:19 +01:00
vite.config.ts issues fixed 2026-04-08 22:29:35 +02:00

PowerOn Nyla Frontend

🏗️ Project Architecture

graph TB
    %% Environment Files
    ENV_DEV[".env.dev<br/>Development"]
    ENV_PROD[".env.prod<br/>Production"]
    ENV_INT[".env.int<br/>Integration"]
    
    %% Configuration System
    CONFIG_TS["config.ts<br/>TypeScript Config<br/>(React Frontend)"]
    CONFIG_JS["serverConfig.js<br/>JavaScript Config<br/>(Node.js Servers)"]
    
    %% Source Code
    SRC["src/<br/>React Components"]
    PUBLIC["public/<br/>Static Assets"]
    HTML["index.html<br/>Main Template"]
    
    %% Build Process
    VITE["vite.config.ts<br/>Build Configuration"]
    PACKAGE["package.json<br/>Dependencies & Scripts"]
    TSCONFIG["tsconfig.json<br/>TypeScript Config"]
    
    %% Build Output
    DIST["dist/<br/>Built Application"]
    
    %% Servers
    SERVER_DEV["server.js<br/>Dev Server"]
    SERVER_DEPLOY["deploy-server.js<br/>Deploy Server"]
    SERVER_LEGACY["server.js<br/>Legacy Server"]
    
    %% Deployment
    GITHUB[".github/workflows/<br/>GitHub Actions"]
    AZURE["Azure Static Web Apps"]
    STATIC_CONFIG["staticwebapp.config.json<br/>Azure Config"]
    
    %% Environment Flow
    ENV_DEV --> CONFIG_TS
    ENV_PROD --> CONFIG_TS
    ENV_INT --> CONFIG_TS
    
    ENV_DEV --> CONFIG_JS
    ENV_PROD --> CONFIG_JS
    ENV_INT --> CONFIG_JS
    
    %% Configuration Usage
    CONFIG_TS --> SRC
    CONFIG_JS --> SERVER_DEV
    CONFIG_JS --> SERVER_DEPLOY
    CONFIG_JS --> SERVER_LEGACY
    
    %% Build Process
    SRC --> VITE
    PUBLIC --> VITE
    HTML --> VITE
    PACKAGE --> VITE
    TSCONFIG --> VITE
    CONFIG_TS --> VITE
    
    VITE --> DIST
    
    %% Server Usage
    DIST --> SERVER_DEV
    DIST --> SERVER_DEPLOY
    DIST --> SERVER_LEGACY
    
    %% Deployment Flow
    GITHUB --> ENV_PROD
    GITHUB --> ENV_INT
    GITHUB --> DIST
    GITHUB --> SERVER_DEPLOY
    GITHUB --> AZURE
    
    STATIC_CONFIG --> AZURE
    
    %% Styling
    classDef envFile fill:black,stroke:#01579b,stroke-width:2px
    classDef configFile fill:black,stroke:#4a148c,stroke-width:2px
    classDef sourceFile fill:black,stroke:#1b5e20,stroke-width:2px
    classDef buildFile fill:black,stroke:#e65100,stroke-width:2px
    classDef serverFile fill:black,stroke:#880e4f,stroke-width:2px
    classDef deployFile fill:black,stroke:#33691e,stroke-width:2px
    
    class ENV_DEV,ENV_PROD,ENV_INT envFile
    class CONFIG_TS,CONFIG_JS configFile
    class SRC,PUBLIC,HTML sourceFile
    class VITE,PACKAGE,TSCONFIG,DIST buildFile
    class SERVER_DEV,SERVER_DEPLOY,SERVER_LEGACY serverFile
    class GITHUB,AZURE,STATIC_CONFIG deployFile

Flow Overview:

  1. Environment filesConfiguration systemSource code
  2. Source codeBuild processBuilt application
  3. Built applicationServersDeployment
  4. GitHub ActionsAzure Static Web Apps

🔧 Configuration Setup

The app uses a dual configuration system to handle environment variables across different contexts:

Configuration Files

  • config/config.ts - TypeScript config for React frontend

    • Why: Provides type-safe access to environment variables in the browser
    • How: Uses import.meta.env (Vite's environment API) to access VITE_* variables
    • Used by: All React components, hooks, and frontend logic
  • config/serverConfig.js - JavaScript config for Node.js servers

    • Why: Node.js can't access import.meta.env, needs process.env
    • How: Uses dotenv to load .env files and process.env to access variables
    • Used by: Express servers and build scripts

Environment Files

  • config/.env.dev - Development environment variables

    • Why: Separate config for local development with debug settings
    • How: Copied to root .env by npm run dev command
    • Contains: Local API URLs, debug flags, dev-specific settings
  • config/.env.prod - Production environment variables

    • Why: Production-specific settings (live API URLs, optimized settings)
    • How: Copied to root .env by GitHub Actions workflow
    • Contains: Production API URLs, security settings, performance configs
  • config/.env.int - Integration environment variables

    • Why: Testing environment that mirrors production but with test data
    • How: Copied to root .env by integration deployment workflow
    • Contains: Staging API URLs, test user credentials, integration settings

Usage

# Development (loads .env.dev)
npm run dev

# Production build (loads .env.prod)
npm run build:prod

# Integration build (loads .env.int)
npm run build:int

🖥️ Server Files

  • scripts/server.js - Express server for local development

    • Why: Serves the built React app locally for testing
    • How: Serves static files from dist/ directory on port 3000
    • Used by: Developers running npm run dev or manual testing
  • scripts/deploy-server.js - Express server for deployment

    • Why: Production server that serves the built app in cloud environments
    • How: Serves static files and handles routing for SPA (Single Page Application)
    • Used by: Azure Static Web Apps and other deployment platforms
  • server.js - Legacy server (kept for compatibility)

    • Why: Backup server file in case deployment scripts need it
    • How: Basic Express server setup
    • Used by: Fallback option for deployments

Both servers use config/serverConfig.js for environment variables and logging.

📁 Root Directory Files

Core Application Files

  • package.json - Node.js project configuration

    • Why: Defines dependencies, scripts, and project metadata
    • How: Used by npm/yarn to install packages and run scripts
    • Contains: Dependencies, build scripts, project info
  • vite.config.ts - Vite build tool configuration

    • Why: Configures how Vite builds and serves the React app
    • How: Defines plugins, build options, and environment variable handling
    • Contains: React plugin, HTML plugin, environment loading, build settings
  • tsconfig.json - TypeScript compiler configuration

    • Why: Defines TypeScript compilation rules and target settings
    • How: Used by TypeScript compiler and IDE for type checking
    • Contains: Compiler options, file includes/excludes, module resolution
  • index.html - Main HTML template

    • Why: Entry point for the React application
    • How: Vite injects the built JavaScript and CSS into this template
    • Contains: HTML structure, dynamic title injection, script tags

Build and Deployment

  • staticwebapp.config.json - Azure Static Web Apps configuration
    • Why: Configures routing and MIME types for Azure deployment
    • How: Used by Azure Static Web Apps service
    • Contains: Navigation fallback rules, MIME type mappings

Source Code and Assets

  • src/ - Source code directory

    • Why: Contains all React components, hooks, and application logic
    • How: Vite processes these files during build
    • Contains: Components, pages, hooks, contexts, locales, assets
  • public/ - Static assets

    • Why: Files that should be copied directly to build output
    • How: Vite copies these files to dist/ during build
    • Contains: Images, logos, favicons, other static files

Configuration and Scripts

  • config/ - Configuration files directory

    • Why: Centralizes all configuration and environment files
    • How: Contains environment files and config modules
    • Contains: Environment files, config.ts, serverConfig.js
  • scripts/ - Server scripts directory

    • Why: Separates server-related files from main application code
    • How: Contains Express server implementations
    • Contains: server.js, deploy-server.js

CI/CD

  • .github/workflows/ - GitHub Actions workflows
    • Why: Automates deployment to different environments
    • How: Triggers on git pushes and deploys to Azure
    • Contains: YAML files for dev, int, and prod deployments