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.

158 lines
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)
- [x] 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
```yaml
# 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.