Dynavera/README.md
2026-03-16 20:14:19 +00:00

6.7 KiB

Dynavera: An Agentic Approach to Role-Specific Trainers

Vue 3 Vite Django DRF Channels PostgreSQL pgvector Redis Celery FastAPI Docker

Dynavera is a distributed agentic onboarding platform designed to solve the productivity gap in organizational training. The motivation was to create a system that delivers tailored, retrieval-grounded guidance for new roles, leveraging modern AI and orchestration techniques. This project was built to address the challenge of scalable, role-specific onboarding—where generic training fails to meet the needs of specialized positions. By combining curriculum generation, document-grounded retrieval, and live progress tracking, Dynavera enables organizations to onboard users efficiently and transparently. Through this project, I learned how to architect distributed systems, integrate retrieval-augmented generation, and design agent workflows for real-world impact.

Table of Contents

Overview & Core Features

Dynavera addresses the onboarding productivity gap by combining:

  • Role-aware curriculum generation
  • Retrieval-augmented responses grounded in uploaded organizational documents
  • Tool-aware orchestration over WebSockets
  • Local-first inference support for privacy-sensitive deployments

The runtime is intentionally distributed: Django manages state and governance, while a dedicated inference service handles model-intensive workloads.

Key features:

  • Distributed architecture separating application control plane and inference plane
  • Multi-agent style orchestration for curriculum, knowledge, assessment, and monitoring behaviors
  • RAG pipeline with semantic chunking, embeddings, and pgvector retrieval
  • Live onboarding session updates via Django Channels WebSockets
  • Persistent session/progress storage for auditability and recovery

Architecture

High-level architecture diagram:

High Level System Architecture

Key backend runtime entry points:

  • apps/onboarding/consumers.py for orchestration loop and WebSocket flow
  • apps/onboarding/mcp.py for tool routing and backend tool execution
  • apps/knowledge/tasks.py for ingestion/chunking/embedding workflow
  • gpu_server.py for inference and embedding endpoints

Quick Start

Prerequisites:

  • Docker Engine or Docker Desktop
  • NVIDIA drivers and NVIDIA Container Toolkit (for GPU inference)
  1. Clone repository
git clone https://git.cs.bham.ac.uk/projects-2025-26/vxn217
cd vxn217
  1. Create environment file

PowerShell:

Copy-Item .env.template .env

CMD:

copy .env.template .env

macOS/Linux:

cp .env.template .env
  1. Start development stack
docker compose -f compose/dev/docker-compose.yml --env-file .env up -d --build
  1. Open application

Usage/Smoke Test

Follow this end-to-end workflow to use the project and to run the smoke test:

  1. Create or select an organization and role
  2. Upload role-specific training files
  3. Wait for ingestion and embedding to complete (monitor the ingestion UI or logs)
  4. Invite a user to the configured role
  5. Log in as that user and start onboarding
  6. Complete at least one guided interaction and one assessment action

Expected behaviour:

  • Workflow completes without manual page refresh
  • UI state transitions update live
  • No dropped WebSocket session during onboarding

Project Structure

  • apps/accounts user, organization, and role membership logic
  • apps/knowledge training file ingestion and vector document persistence
  • apps/onboarding sessions, orchestration runtime, and tool integration
  • config Django settings, routing, ASGI/WSGI wiring
  • compose development and production container configuration
  • site frontend application
  • docs architecture and deployment documentation

Demo Access

Hosted URL:

Evaluation credentials:

Role Email Password
Admin admin@example.com admin
Manager haleisaac@example.com password
User j.thompson@example.com password

Manager registration code: MANAGER2026

Operational Commands

Stop services:

docker compose -f compose/dev/docker-compose.yml --env-file .env down

Tail logs:

docker compose -f compose/dev/docker-compose.yml --env-file .env logs -f

Run migrations:

docker exec -it fyp-django-dev python manage.py migrate

Reset seeded passwords:

docker exec -it fyp-django-dev python manage.py reset_passwords

Screenshots

Home:

Home Page

Organization:

Organization Page

Onboarding generation state:

Onboarding Loading

Onboarding content flow:

Onboarding Flow

Documentation