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
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 |
|