You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.9 KiB
3.9 KiB
EasySmartInventory - Project Plan
Overview
- Goal: Python tool dat interactieve HTML inventarisatieformulieren genereert op basis van YAML configuratie
- Deadline: Flexibel
- Priority: High
Deliverables
- Python Generator (
src/generator.py) - Leest YAML, genereert standalone HTML - YAML Schema (
examples/config.yaml) - Configuratiebestand met alle opties - 3 Voorbeeld HTML bestanden - Verschillende stijlen (modern, corporate, minimal)
Architectuur
EasySmartInventory/
├── src/
│ ├── __init__.py
│ ├── generator.py # Main HTML generator
│ ├── yaml_parser.py # YAML config parser
│ └── templates.py # HTML/CSS/JS templates
├── templates/
│ └── base.html # Jinja2 base template
├── styles/
│ ├── modern.css
│ ├── corporate.css
│ └── minimal.css
├── examples/
│ ├── config.yaml # Voorbeeld configuratie
│ ├── inventory_modern.html
│ ├── inventory_corporate.html
│ └── inventory_minimal.html
├── exports/ # CSV export folder
├── docs/
│ └── README.md
├── requirements.txt
└── README.md
Phases
Phase 1: Core Structure (M size)
- Git repo setup
- Project structure
- YAML schema design
- Base Python generator
Phase 2: HTML Features (L size)
- Field types implementatie
- Validation
- Auto-save (localStorage)
- CSV export
- Mailto functionaliteit
- Foto capture (base64)
Phase 3: Styling (M size)
- Responsive CSS framework
- 3 verschillende themes
- Logo support
Phase 4: Testing & Docs (S size)
- Generate voorbeelden
- Test responsive
- Documentatie
- Push to Gitea
YAML Schema Design
# Configuratie structuur
name: "Inventarisatie Naam"
version: "1.0.0"
# Styling
style:
theme: "modern" # modern, corporate, minimal
logo: "base64_or_url"
primary_color: "#007bff"
# Export opties
export:
csv:
enabled: true
folder: "./exports"
mailto:
enabled: true
to: "email@example.com"
subject_prefix: "Inventarisatie"
subject_fields: ["Serienummer"]
# Velden definitie
sections:
- name: "Basisinformatie"
fields:
- id: "serienummer"
label: "Serienummer"
type: "text"
required: true
min_length: 5
- id: "type_nummer"
label: "Type-/modelnummer"
type: "text"
- id: "merk"
label: "Merk / fabrikant"
type: "dropdown"
options: ["HP", "Dell", "Lenovo", "Apple", "Anders"]
- id: "soort_apparaat"
label: "Soort apparaat"
type: "dropdown"
options: ["Laptop", "Desktop", "Server", "Printer", "Anders"]
- id: "productiejaar"
label: "Productiejaar"
type: "number"
min: 1990
max: 2030
- id: "aanschafdatum"
label: "Aanschafdatum"
type: "date"
format: "dd-mm-yyyy"
- id: "in_gebruik"
label: "In gebruik"
type: "boolean"
- id: "certificeringen"
label: "Certificeringen"
type: "multiselect"
options: ["CE", "ISO9001", "ISO27001", "GDPR"]
- id: "foto"
label: "Foto apparaat"
type: "photo"
Risks
| Risk | Impact | Mitigation |
|---|---|---|
| Mailto bijlage limitatie | Medium | Base64 in body of apart veld |
| LocalStorage limiet | Low | Compressie, waarschuwing |
| Cross-browser support | Medium | Testen, polyfills |
Agent Assignments
| Task | Agent | Status |
|---|---|---|
| Architecture | Senior Developer | In progress |
| YAML Schema | Programming | Pending |
| HTML Generator | Programming | Pending |
| CSS Themes | GUI Designer | Pending |
| UX Flow | UX Designer | Pending |
| Testing | Junior Developer | Pending |