Migrated Master Repository.
  • JavaScript 78.9%
  • CSS 15.4%
  • HTML 5.5%
  • Dockerfile 0.2%
Find a file
2026-04-24 10:40:46 +02:00
.vscode fixing url and stuff 2026-04-21 10:32:26 +02:00
lib Dockerizing 2026-04-21 13:10:58 +02:00
webapp deleted unnecessary file and renamed othe one 2026-04-24 10:40:46 +02:00
.dockerignore Dockerizing 2026-04-21 13:10:58 +02:00
.env.example Dockerizing also for podman 2026-04-21 13:26:39 +02:00
.gitignore fixing url and stuff 2026-04-21 10:32:26 +02:00
docker-compose.yml Dockerizing 2026-04-21 13:10:58 +02:00
Dockerfile Dockerizing 2026-04-21 13:10:58 +02:00
package-lock.json Dockerizing 2026-04-21 13:10:58 +02:00
package.json Dockerizing 2026-04-21 13:10:58 +02:00
README.md Readme update 2026-04-22 10:51:10 +02:00
server.js Dockerizing 2026-04-21 13:10:58 +02:00
ui5-local.yaml fixing url and stuff 2026-04-21 10:32:26 +02:00
ui5.yaml fixing url and stuff 2026-04-21 10:32:26 +02:00

Reflect — Communication Self-Reflection (SAPUI5)

An AI-powered communication self-reflection tool built with SAPUI5. Analyze messages using Nonviolent Communication (NVC) principles or draft/overhaul emails with intelligent tone calibration.

Technology Stack

  • UI Framework: SAPUI5 1.132.0 (OpenUI5 CDN)
  • Theme: SAP Horizon (sap_horizon)
  • Architecture: MVC (Model-View-Controller)
  • Build Tool: UI5 CLI (@ui5/cli)
  • Backend: LiteLLM proxy (localhost:6655) for LLM chat streaming

Project Structure

webapp/
├── Component.js              # App entry point
├── manifest.json             # Central application descriptor
├── index.html                # Bootstrap page
├── view/
│   └── Main.view.xml         # Main chat UI (XML view)
├── controller/
│   └── Main.controller.js    # Chat logic, streaming, event handlers
├── model/
│   ├── api.js                # LiteLLM API: fetchModels() + streamChat()
│   ├── prompts.js            # Loads prompt modes from markdown files
│   └── formatter.js          # View formatters (time, markdown-to-HTML)
├── i18n/
│   ├── i18n.properties       # UI text strings (default)
│   └── i18n_en.properties    # English locale
├── prompts/
│   ├── email-drafting.md     # Email Drafting & Overhaul system prompt
│   └── nvc-communication.md  # NVC Communication Analysis system prompt
└── css/
    └── style.css             # Custom styles (extends SAP Horizon)

Getting Started

1. Install Podman

brew install podman
podman machine init
podman machine start

2. Clone the repo and set up your environment

cp .env.example .env

Edit .env and fill in your values:

API_KEY=your-actual-api-key
LITELLM_BASE_URL=http://host.containers.internal:6655/litellm/v1

3. Build and start the container

podman compose up --build

4. Open the app

http://localhost:8080/index.html

To start again later (no rebuild needed):

podman compose up

Option 2: Run with Docker

Same steps as above, but use docker instead of podman:

cp .env.example .env
# Set API_KEY and:
# LITELLM_BASE_URL=http://host.docker.internal:6655/litellm/v1
docker compose up --build

Option 3: Run locally (without container)

Prerequisites: Node.js 18+, a running LiteLLM proxy at localhost:6655

npm install
cp .env.example .env
# Set API_KEY=your-actual-api-key
npm start

The API key is injected server-side and never exposed to the browser.

Features

  • NVC Communication Analysis: Paste a message and get a scored analysis across 8 dimensions (Clarity, Empathy, Tonality, etc.) with NVC-aligned alternatives
  • Email Drafting & Overhaul: Draft new emails or improve existing ones with configurable tone selection
  • Ephemeral Sessions: No data persistence; everything resets on page refresh
  • Configurable Context: Set relationship type and situation description to inform AI responses
  • Model Selection: Dynamically fetches available models from the LiteLLM proxy