Kravhantering in Swedish, Requirements Management in English. This repository contains a web application for managing requirements
Tip
Se längre ner för en svensk översikt.
There is no English user guide, but the Swedish guide includes screenshots that may be helpful.
The application supports the full requirements lifecycle:
- Register — create a new requirement or a new version
- Classify — assign area, category, owner, risk level, requirement packages
- Edit — update requirement text, guidance, and evidence
- Review — submit for review, collect comments, handle referrals
- Approve & publish — set decided status and make available
- Version — track versions, change history, and validity
- Phase-out — retire requirements without losing history
- Search & filter — find requirements by metadata, taxonomy, and context
- Export — produce requirement lists and reports for procurement or operations
- Track usage — record where a requirement version is applied
- Deviations — register and follow up exceptions linked to a requirement
- Improvement suggestions — collect feedback and link it to a requirement
- Report — show status, usage, deviations, changes, and history
graph TD
A[Register] --> B[Classify]
B --> C[Edit]
C --> D[Review]
D -->|referral| C
D --> E[Approve & Publish]
E --> F[Version]
F -->|new version| C
F --> M[Phase-out]
subgraph Published requirement
direction LR
G[Search & Filter] --> H[Export]
I[Track Usage]
J[Deviations]
K[Suggestions]
end
E --> G
E --> I
E --> J
E --> K
E --> L[Report]
I --> L
J --> L
K --> L
style A fill:#4ade80,color:#000
style E fill:#60a5fa,color:#000
style M fill:#f87171,color:#000
style K fill:#a3e635,color:#000
style L fill:#fbbf24,color:#000
Se även Användarguide för steg-för-steg-instruktioner med skärmdumpar.
Applikationen stödjer hela kravlivscykeln:
- Registrera — skapa ett nytt krav eller en ny version
- Klassificera — tilldela område, kategori, ägare, risknivå, kravpaket
- Redigera — uppdatera kravtext, vägledning och evidens
- Granska — skicka till granskning, samla kommentarer, hantera återremiss
- Godkänna och publicera — sätta beslutad status och göra tillgängligt
- Versionshantera — hålla reda på versioner, ändringshistorik och giltighet
- Markera som utgående — fasa ut krav utan att förlora historik
- Söka och filtrera — hitta krav utifrån metadata, taxonomi och kontext
- Exportera — ta fram kravlistor och rapporter för upphandling eller förvaltning
- Spåra användning — registrera var en kravversion tillämpas
- Hantera avsteg — registrera och följa upp undantag kopplade till ett krav
- Samla förbättringsförslag — ta emot synpunkter och koppla dem till ett krav
- Rapportera — visa status, användning, avsteg, ändringar och historik
graph TD
A[Registrera] --> B[Klassificera]
B --> C[Redigera]
C --> D[Granska]
D -->|återremiss| C
D --> E[Godkänna & Publicera]
E --> F[Versionshantera]
F -->|ny version| C
F --> M[Markera utgående]
subgraph Publicerat krav
direction LR
G[Söka & Filtrera] --> H[Exportera]
I[Spåra användning]
J[Avsteg]
K[Förbättringsförslag]
end
E --> G
E --> I
E --> J
E --> K
E --> L[Rapportera]
I --> L
J --> L
K --> L
style A fill:#4ade80,color:#000
style E fill:#60a5fa,color:#000
style M fill:#f87171,color:#000
style K fill:#a3e635,color:#000
style L fill:#fbbf24,color:#000
This project also includes an in-app MCP server for requirements management.
- User guide: docs/mcp-server-user-guide.md
- Contributor guide: docs/mcp-server-contributor-guide.md
| Topic | Document |
|---|---|
| Status transitions | Lifecycle workflow |
| Version timestamps | Version lifecycle dates |
| Data model | Database schema |
| Architecture (SV) | Arkitekturbeskrivning |
| UI behaviour | Requirements UI |
| Reports | Reports |
| Admin settings | Admin center |
The application uses Microsoft SQL Server + TypeORM as its sole database stack. See docs/sql-server-developer-workflow.md for setup, migrations, seeding, and the developer browse workflow.
- Framework: Next.js 16 (React 19)
- Language: TypeScript 5
- Styling: Tailwind CSS 4
- Database: Microsoft SQL Server via TypeORM
- Internationalization: next-intl (Swedish & English)
- App runtime: Native Next.js self-hosting (
next dev,next start) - Production target: OpenShift-compatible Node container deployment
- Testing: Vitest (unit) · Playwright (integration)
- Linting: Biome · Pyright · markdownlint · cspell
- Node.js >= 24
- npm
- Docker Desktop or another Docker-compatible
docker composeruntime
Start the devcontainers by opening the project in VS Code and accepting the prompt to "Reopen in Container". The devcontainer includes the local SQL Server Developer container, so you can run the full application and database stack without any additional setup.
The repository ships a devfile.yaml for Red Hat
OpenShift Dev
Spaces.
Create a workspace from this Git URL in your Dev Spaces dashboard and the
same SQL Server + Keycloak stack is provisioned as sidecar containers in a
single pod. See
docs/openshift-devspaces.md for required
secrets, editor selection, and SCC requirements.
See CONTRIBUTING.md for the full local setup, including Node.js prerequisites, environment files, and database commands. The condensed flow is:
npm install
docker compose -f docker-compose.sqlserver.yml up -d
npm run db:setup
npm run devThe app will be available at http://localhost:3000.
For a production-like local run, use:
npm run start:prodlikenpm run start:prodlike rebuilds with NODE_ENV=production and then starts
the built app on port 3001.
The production build now requires database-backed UI terminology and
requirement column defaults to load successfully. If DATABASE_URL points to
an unavailable or uninitialized database, npm run build and
npm run start:prodlike will fail instead of falling back to shipped defaults.
Each pull request to main runs an authenticated OWASP ZAP baseline
scan against a disposable copy of the application. See
docs/security-ci.md for the workflow design,
failure policy, and tuning instructions.
See CONTRIBUTING.md for development setup, database management, and coding guidelines.
This project is licensed under the MIT License. © 2026 Viscalyx

