Add project instructions and development roadmap

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Dennis Nemec
2026-09-02 21:21:11 +02:00
parent f4395620db
commit 741c5e35ad
2 changed files with 386 additions and 0 deletions

28
CLAUDE.md Normal file
View File

@ -0,0 +1,28 @@
# SoftVisor Infrastructure Monitoring System
In the following document, the project description is elaborated along with engineering constraints.
# Goal of the project
SoftVisor GmbH operates a root-server running with Debian on it. On the server runs a Kubernets cluster where Gitea is installed for source control of the company's projects. We want to monitor the server in a way that we always know a software version drift, if vulnerabilities exist and to handle backups. On one hand we want to backup the applications running on kubernets. This means, the gitea and postgres data shall be backuped separately, not the entire cluster.
# How does the application look like?
We want you to develop a web app with modern authentication. WIth the web app we want to see what applications are installed on Debian, we want to manage the kubernetes cluster and we want to manage backup strategies.
# Use cases
In the following important use cases are described:
1. Update Management of the OS and packages/applications
As a user I want to see the current OS version and all the packages and applications that are installed on it. For every package, application and even the OS we want to update the version.
2. Vulnerability Management
As a user I want to see current vulnerabilities of packages, applications, pods on kubernetes, images and OS. I want to get notified by E-Mail if new vulnerabilities are detected.
3. Backup Strategy Management
As a user I want to create backup strategies. A backup strategy consists of the application/data/kubernetes volume/image/etc.pp to be saved, the interval and the remote target where the backup should be stored. The remote target may be a samba server or FTP.
4. User management and authentification
As an admin, I want to create and manage users who have access to the application.
# Engineering constraints
Please use Rust as backend and webserver, Vue.js and Tailwind CSS as Frontend. Please use clean code techniques and use clean architecture patterns. Do not over-engineer, be pragmatic. Write short and consistend code. For every feature requested, commit and push the changes you did. Always make a plan and decide which options is the best to choose from in order to develop a feature. If you are unsure, please ask immediately for clarification. Use modern authentification techniques, and if required modern encryption.
Test-driven development is mandatory: when planning a new feature, plan and implement the tests BEFORE the feature implementation. Tests means unit tests, integration tests where applicable and UI tests. Write the test cases first (red), then implement the feature until they pass (green), then refactor.
# Server access
The Debian root server is reachable via the SSH config alias `softvisor` (`ssh softvisor`). Use it to inspect the host, the Kubernetes cluster and to deploy/test the application on the real target.