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

EasySmartInventory - Project Plan

Overview

  • Goal: Python tool dat interactieve HTML inventarisatieformulieren genereert op basis van YAML configuratie
  • Deadline: Flexibel
  • Priority: High

Deliverables

  1. Python Generator (src/generator.py) - Leest YAML, genereert standalone HTML
  2. YAML Schema (examples/config.yaml) - Configuratiebestand met alle opties
  3. 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

Powered by TurnKey Linux.