Skip to content
jrfrigatPublic

About

Resource planning PWA for teams: Gantt, capacity and risk analysis on Blazor WebAssembly and .NET 10.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

271 Commits

Folders and files

Repository files navigation

English - Русский

CI Pages License: MIT .NET 10

Alva

Alva is a web application (PWA) for strategic task planning and team resource balancing. It helps you distribute the workload across people as well as possible — without busywork — highlight the risks of slipping deadlines and show at once why the team is falling behind.

Core pieces: flexible task assignment (people and sub-teams), a shared skill dictionary, a two-dimensional Gantt (by task and by assignee), capacity and risk analysis, sprint auto-balancing and a full directory of participants.

Demo: https://jrfrigat.github.io/Alva/ — runs entirely in the browser, no server required.

Features

  • Planning — projects (M:N with teams), sprints, an unlimited task tree, change history, FS/SS/FF/SF dependencies, assignment to a person or a sub-team; required skills are matched against the team's skill dictionary.
  • Gantt — full-width axis, lanes, rollup, critical path, links, drag and drop, zoom and virtualization; one component behind three pages.
  • Capacity — work schedules with exceptions and recurring blocks, spreading an estimate over available hours, unmet demand by skill and sub-team.
  • Risk — no assignee, overdue, forecast past the due date, overload, unfinished dependency; a summary, filters and reason chips, plus a notification bell.
  • Auto-balance — assignment and date optimization (OR-Tools) in several modes, with the proposal shown right on the Gantt.
  • Authentication — sign in, sign up and sign out; workspaces and teams, members and owners, an opt-in permission matrix.
  • Data — export and import of a team snapshot in JSON/CSV/XLSX, atomic and with fresh identifiers.
  • Interface — a PWA built on Flare (Alva Stitch theme derived from Fluent UI 2, Sapphire palette), with an adaptive shell and desktop accessibility. English and Russian, chosen per browser and switchable.

Quick start

Demo in the browser

Open https://jrfrigat.github.io/Alva/ — the data lives in localStorage, no server is needed.

Docker (application + PostgreSQL)

Prepare .env and docker-compose.override.yml using Getting started. From the repository root, run:

./run-docker-compose.bat

The example override joins the existing proxy_network for Nginx Proxy Manager. Upstream is http://alva-app:8080, with no host ports. Set the database password in .env. If NPM uses a different network name, set NPM_PROXY_HOST to that name. The default is nginx-proxy. For loopback access and Caddy, see Deployment.

Locally, without Docker

dotnet restore Alva.slnx
$env:Database__Provider = "Sqlite"
dotnet run --project src/Alva.Api --urls http://localhost:8080

Install from a release

A release (a pushed v* tag) publishes the image to GHCR and, when DOCKERHUB_USERNAME is set, to Docker Hub:

docker pull ghcr.io/jrfrigat/alva:latest
docker run -p 8080:8080 \
  -e ConnectionStrings__Alva="Host=<host>;Port=5432;Database=alva;Username=alva;Password=<password>" \
  ghcr.io/jrfrigat/alva:latest
# Alva: http://localhost:8080

Full configuration is in Configuration.

Solution layout

Project Purpose
Alva.Domain, Alva.Contracts, Alva.Infrastructure Domain, contracts, data access (EF Core)
Alva.Api Minimal API, authentication, permissions, serves the WASM client
Alva.Client.UI Shared interface library and IApiService
Alva.Client, Alva.Client.Demo Production and demo shells
Alva.Integrations.Abstractions, Alva.Integrations.YandexTracker External task-source contracts and the Yandex Tracker integration
Alva.Theme.Alva Alva theme; Gantt comes from the Flare.Components.Gantt package

Documentation

Full documentation lives in docs/ (English and Russian):

Doc Description
Getting Started Running Alva (Docker, locally, demo), first sign-in
Configuration Every setting and environment variable
Architecture Projects, layers, data flow, authentication
Deployment Docker, compose, HTTPS, backups
Development Build, tests, conventions

Build and test

dotnet build Alva.slnx -c Release
dotnet test Alva.slnx -c Release

Requires .NET 10 (SDK 10.0.401, see global.json).

Contributing and licence

The interface is built on Flare.

License

MIT © 2026 FrigaT

About

Resource planning PWA for teams: Gantt, capacity and risk analysis on Blazor WebAssembly and .NET 10.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages