MIL-003 Documentation and Publishing #25
@@ -0,0 +1,47 @@
|
||||
[English](Development) · **Dansk** · [Bahasa Malaysia](Development-ms)
|
||||
|
||||
# Udvikling
|
||||
|
||||
## Opbygning
|
||||
|
||||
| Mappe | Indhold |
|
||||
| --- | --- |
|
||||
| `src/password_manager/domain` | Post, adgangskodegenerator og fejl; ingen ind- eller udlæsning |
|
||||
| `src/password_manager/application` | Use cases og lagerporten |
|
||||
| `src/password_manager/infrastructure` | JSON-lageret |
|
||||
| `src/password_manager/presentation` | MVVM-visningen og visningsmodellen |
|
||||
| `src/password_manager/constants.py` | Alle konstanter og beskeder |
|
||||
| `tests/` | `unit`-, `integration`- og `e2e`-tests |
|
||||
| `tools/` | `capture_screenshots.py` |
|
||||
|
||||
Importer peger indad; kun `main.py` forbinder lagene.
|
||||
|
||||
## Tests og lint
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
python -m ruff format src tests tools
|
||||
python -m ruff check src tests tools
|
||||
```
|
||||
|
||||
## Kildedokumentation
|
||||
|
||||
Kommentarerne er i Doxygen-stil. Byg HTML med `doxygen Doxyfile`; den åbnes på
|
||||
`docs/doxygen/html/index.html`.
|
||||
|
||||
## Skærmbilleder
|
||||
|
||||
På Windows med det virtuelle miljø aktivt:
|
||||
|
||||
```bash
|
||||
python tools/capture_screenshots.py
|
||||
```
|
||||
|
||||
Billederne skrives til `docs/images/` fra det rigtige vindue og en midlertidig
|
||||
datafil.
|
||||
|
||||
## Projektdokumenter
|
||||
|
||||
Projektet følger en planlæg-først-arbejdsgang: Business Case, interessentanalyse,
|
||||
projektplan og milepæle ligger i `docs/`. Arbejdet udføres på én gren og én pull
|
||||
request pr. milepæl.
|
||||
@@ -0,0 +1,27 @@
|
||||
[English](Home) · **Dansk** · [Bahasa Malaysia](Home-ms)
|
||||
|
||||
# Password Manager
|
||||
|
||||
En lille Tkinter-adgangskodemanager fra dag 30 af Udemys "100 Days of Code: The
|
||||
Complete Python Pro Bootcamp". Den genererer adgangskoder, gemmer dem i en
|
||||
JSON-fil og søger efter dem på websted.
|
||||
|
||||

|
||||
|
||||
## Hvad den gør
|
||||
|
||||
- **Genererer** en tilfældig adgangskode og kopierer den til udklipsholderen.
|
||||
- **Tilføjer** et websted, en e-mailadresse og en adgangskode til `data.json`.
|
||||
- **Søger** efter et websted og viser den gemte e-mailadresse og adgangskode.
|
||||
- Kører videre, når `data.json` mangler, er tom eller er beskadiget.
|
||||
|
||||
> **Sikkerhedsnote.** Adgangskoderne gemmes som almindelig JSON og er ikke
|
||||
> krypterede. Det er et læringsprojekt; brug det ikke til rigtige adgangskoder.
|
||||
|
||||
## Sider
|
||||
|
||||
- [Installation](Installation-da)
|
||||
- [Brug](Usage-da)
|
||||
- [Udvikling](Development-da)
|
||||
|
||||
Kildekode og opgaver: [repository](https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/030-password-manager).
|
||||
@@ -0,0 +1,39 @@
|
||||
[English](Installation) · **Dansk** · [Bahasa Malaysia](Installation-ms)
|
||||
|
||||
# Installation
|
||||
|
||||
## Krav
|
||||
|
||||
- Python 3.13 eller nyere med Tkinter. På Debian eller Ubuntu installeres
|
||||
`python3-tk`.
|
||||
- `venv` og `pip`, som begge er en del af Python.
|
||||
- Ingen afhængigheder i drift.
|
||||
|
||||
## Opret et lokalt virtuelt miljø
|
||||
|
||||
Windows (PowerShell):
|
||||
|
||||
```powershell
|
||||
python -m venv .venv
|
||||
.venv/Scripts/Activate.ps1
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
Linux og macOS:
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
python -m pip install --upgrade pip
|
||||
python -m pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
Tillægget `[dev]` installerer pytest og ruff. Udelad det
|
||||
(`python -m pip install -e .`), hvis du kun vil køre programmet.
|
||||
|
||||
## Kontrollér installationen
|
||||
|
||||
```bash
|
||||
python -m pytest
|
||||
```
|
||||
@@ -0,0 +1,50 @@
|
||||
[English](Usage) · **Dansk** · [Bahasa Malaysia](Usage-ms)
|
||||
|
||||
# Brug
|
||||
|
||||
Start programmet med det virtuelle miljø aktivt:
|
||||
|
||||
```bash
|
||||
python -m password_manager
|
||||
```
|
||||
|
||||
Programmet gemmer sine data i `data.json` i den mappe, du starter det fra.
|
||||
|
||||
## Generér og tilføj en adgangskode
|
||||
|
||||
1. Skriv webstedet.
|
||||
2. Tryk på **Generate Password**. En adgangskode indsættes og kopieres til
|
||||
udklipsholderen.
|
||||
3. Kontrollér e-mailadressen og tryk på **Add**. Bekræft dialogen, så gemmes
|
||||
posten.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Hvis et felt er tomt, vises en advarsel, og intet gemmes.
|
||||
|
||||
## Søg
|
||||
|
||||
Skriv et websted og tryk på **Search**. Den gemte e-mailadresse og adgangskode
|
||||
vises.
|
||||
|
||||

|
||||
|
||||
Hvis der ikke er gemt noget for webstedet, eller datafilen endnu ikke findes,
|
||||
fortæller en besked det.
|
||||
|
||||

|
||||
|
||||
## Datafilen
|
||||
|
||||
`data.json` indeholder én post pr. websted:
|
||||
|
||||
```json
|
||||
{
|
||||
"example.com": {
|
||||
"email": "jens@example.com",
|
||||
"password": "Sample#Pass123"
|
||||
}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user