GitHub - wheevu/synergy-flow: Enterprise-grade agentic SaaS substrate for Kanban execution, AI project intelligence, RBAC workspaces, real-time telemetry, and executive-ready delivery entropy mitigation. (original) (raw)

SynergyFlow

Go PostgreSQL Redis React TypeScript Docker GitHub Actions

Kanban Board

An enterprise-grade, agentic-first, cross-functional delivery intelligence substrate engineered to transmute fragmented execution chaos into stakeholder-resonant, outcome-aligned, mission-critical operational momentum. Powered by a cloud-native, event-driven, polyglot microservice mesh spanning Go, PostgreSQL, Redis, React, and Docker — converging JWT-hardened identity governance, permission-stratified workspace orchestration, drag-and-drop Kanban execution choreography, S3-compatible document-synergy materialization, ambient activity telemetry, full-text knowledge traversal, notificationized awareness propagation, Server-Sent Event consciousness streaming, and a next-generation deterministic AI Project Analyst purpose-built to convert raw delivery entropy into executive-ready unblockment primitives.

What it demonstrates

Screenshots

Dashboard

Members

settings

command

Chatbot

Tech stack

Layer Technology
Backend Go, Gin, pgx/v5, PostgreSQL 16, Redis 7
Frontend React 18, TypeScript, Vite 6, Tailwind 3, React Query 5, Zustand 5
Drag & Drop @hello-pangea/dnd
Storage AWS S3 SDK v2, MinIO (local dev)
Auth golang-jwt/v5, bcrypt
Charts SVG-based (donut, line, bar)
Container Docker Compose, Nginx 1.27
CI GitHub Actions

Local setup

cp .env.example .env docker compose up --build

Open:

Non-default host ports avoid conflicts with services already running:

Service Host Port
Postgres localhost:55432
Redis localhost:56379
MinIO API localhost:59000
MinIO Console localhost:59001

Override with POSTGRES_PORT, REDIS_PORT, MINIO_API_PORT, MINIO_CONSOLE_PORT, BACKEND_PORT, FRONTEND_PUBLIC_URL, or FRONTEND_PORT in .env.

Demo account

Architecture

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Frontend   │────▶│   Backend    │────▶│  PostgreSQL  │
│  React/TS    │     │   Go/Gin     │     │              │
│  Vite/Tailwind│    │   pgx        │     │              │
└──────┬───────┘     └──────┬───────┘     └──────────────┘
       │                    │                    ▲
       │ SSE (events)       │ Redis pub/sub ─────┘
       │                    │
       │                    ▼
       │            ┌──────────────┐
       └────────────│   Worker     │
                    │  email jobs  │
                    └──────────────┘

See docs/ARCHITECTURE.md for the full architecture guide.

Features

Dashboard

Kanban Board

Task Drawer

Members & Roles

Notifications

AI Project Analyst

Activity Feed

API overview

See the full route map in app.go.

Authentication

Method Path Description
POST /api/auth/register Create account
POST /api/auth/login Log in
POST /api/auth/refresh Rotate refresh token
POST /api/auth/logout Revoke session
GET /api/me Current user

Workspaces & Projects

Method Path Min Role
GET/POST /api/workspaces
GET /api/workspaces/:id Viewer
GET /api/workspaces/:id/members Viewer
PATCH/DELETE /api/workspaces/:id/members/:uid Admin
POST/GET /api/workspaces/:id/invites Admin
GET/POST /api/workspaces/:id/projects Viewer/Member
GET /api/workspaces/:id/activity Viewer
GET /api/workspaces/:id/dashboard Viewer

Kanban & Tasks

Method Path Min Role
GET /api/projects/:id/board Viewer
GET /api/projects/:id/events Viewer (SSE)
GET /api/projects/:id/tasks Viewer
POST /api/projects/:id/tasks Member
GET/PATCH/DELETE /api/tasks/:id Member
POST /api/tasks/:id/move Member
GET/POST /api/tasks/:id/comments Member
POST /api/tasks/:id/attachments Member
GET/DELETE /api/attachments/:id Viewer/Member

AI & Notifications

Method Path Description
POST /api/projects/:id/ai/analyze Deterministic project analysis
GET /api/notifications User notifications
POST /api/notifications/read Mark all as read

Real-time architecture (SSE)

  1. Backend actions publish events to Redis channels (project:{projectId})
  2. Clients connect to GET /projects/:id/events — returns an SSE stream
  3. Redis subscription forwards events to all connected clients
  4. Ping events every 25 seconds prevent proxy timeouts
  5. Nginx is configured with proxy_buffering off for streaming
  6. Client-side reconnection with live/reconnecting state indicator

Task movement

Drag-and-drop uses a database transaction:

  1. Lock source/destination column rows (SELECT ... FOR UPDATE)
  2. Close gap in source column (position = position - 1)
  3. Open gap in destination column (position = position + 1)
  4. Update moved task (column_id, position)
  5. Publish task.moved event to Redis

Maintains dense integer ordering. Cross-project moves are rejected.

Auth & sessions

Permission matrix

Action Viewer Member Admin Owner
View workspace/projects
View board/tasks
View activity
Create/update tasks
Move tasks
Add comments/attachments
Create projects
Manage invites
Change member roles
Remove members (non-Owner)
Edit/delete projects
Delete workspace

AI Project Analyst

The analyst performs deterministic project health analysis — no external LLM calls:

  1. Fetches all tasks, members, and activity from PostgreSQL
  2. Computes metrics: overdue, urgent, unassigned, stale, workload, completion rate
  3. Detects signals: blocked tasks (label-based), risk concentration, bottlenecks
  4. Matches prompt keywords to answer templates
  5. Returns structured signals[], suggestedActions[], and answer string

Prompt categories: next actions, risk detection, overload analysis, sprint summary, overdue/urgent list, recent changes, project health, blocker detection.

Security

See docs/SECURITY.md for the full security review.

Production deployment

See docs/DEPLOYMENT.md for the full guide.

Quick start

cp .env.example .env

Edit .env with production values

docker compose -f docker-compose.prod.yml up -d --build

Required env vars

Variable Description
DATABASE_URL Full Postgres connection string (use sslmode=require for RDS)
JWT_SECRET At least 32 random bytes: openssl rand -base64 32
FRONTEND_URL Public frontend URL (CORS + invite links)
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY S3 storage credentials
S3_BUCKET S3 bucket for file attachments
RESEND_API_KEY Transactional email (optional)

Demo script

Walk through the full app in 5 minutes: docs/DEMO_SCRIPT.md

Known limitations

Testing

Backend unit tests

cd backend && go test ./...

Backend build

cd backend && go build ./cmd/server ./cmd/worker

Frontend type check

cd frontend && npm run lint

Frontend build

cd frontend && npm run build

Docker Compose validation

docker compose config

Contributing

We welcome mission-aligned contributors prepared to operate within our collaborative value creation framework. Before submitting a pull request, ensure your changes have been validated against our internal synergy rubric and do not introduce delivery entropy into the main branch consciousness stream. All contributors are expected to embody a growth-oriented, psychologically-safe, async-first execution mindset. Please do not submit PRs on Fridays as this conflicts with our end-of-week momentum crystallization rituals.