Files

212 lines
4.9 KiB
Markdown

# TODO - OpenParcelBox
This document tracks the remaining work required to reach the first stable release of OpenParcelBox.
Tasks are grouped by development phase and updated throughout the project.
---
## Phase 0 - Project Foundation
### Repository
- [x] Create repository.
- [x] Create project structure.
- [x] Create README.
- [x] Create ROADMAP.
- [x] Create TODO.
- [x] Add LICENSE files.
### Documentation
- [x] Create documentation tree.
- [x] Create firmware documentation.
- [x] Create hardware documentation baseline.
- [ ] Create development documentation.
- [x] Create BLE protocol documentation.
### Firmware Baseline
- [x] Configure Zephyr.
- [x] Configure west and CMake.
- [x] Define firmware architecture.
- [x] Configure formatting conventions.
---
## Phase 1 - Reverse Engineering
### Mechanical
- [ ] Measure enclosure.
- [ ] Measure internal space.
- [ ] Measure mounting points.
- [ ] Measure keypad.
- [ ] Measure NFC area.
### Lock
- [x] Identify lock mechanism.
- [x] Validate lock command behavior.
- [x] Validate feedback contact behavior.
- [ ] Design production lock driver circuit.
### Electronics
- [ ] Identify every connector.
- [ ] Document original PCB.
- [ ] Document wiring.
- [ ] Document LEDs.
- [x] Validate active buzzer approach.
---
## Phase 2 - Development Platform
### Firmware Infrastructure
- [x] RGB LED driver.
- [x] GPIO expander driver.
- [x] Matrix keypad driver.
- [x] Active buzzer driver.
- [x] Lock driver.
- [x] Door or lock state driver.
- [ ] Battery driver.
- [x] PN532 NFC driver over I2C.
### Documentation
- [x] keypad.md.
- [x] gpio_expander.md.
- [x] buzzer.md.
- [x] debug.md.
- [ ] led.md.
- [x] lock.md.
- [ ] battery.md.
- [x] nfc.md.
---
## Phase 3 - Hardware Validation
### Lock
- [x] Drive lock through the selected circuit.
- [x] Validate opening pulse.
- [x] Validate opening detection.
- [ ] Validate timeout.
- [ ] Validate error handling.
### Door or Lock State
- [x] Read feedback contact.
- [x] Validate state changes.
- [ ] Validate debounce.
### Battery
- [ ] Read voltage.
- [ ] Implement low battery detection.
- [ ] Calibrate battery measurement.
### NFC
- [x] Select PN532 development NFC reader.
- [ ] Design reader antenna.
- [ ] Validate reader tuning network.
- [x] Read UID through the PN532 reader.
- [ ] Detect badge removal.
### Buzzer
- [x] Single keypad beep.
- [ ] Double beep.
- [x] Error beep.
- [x] Success beep.
---
## Phase 4 - Firmware Core
### Initialization
- [x] Keep the local keypad path available before Settings and BLE startup.
- [x] Initialize all currently implemented peripherals.
- [ ] Standardize error handling.
### Access Control
- [ ] Administrator PIN.
- [x] PIN verification.
- [ ] PIN timeout.
- [ ] Anti brute-force logic.
- [x] Lock opening sequence.
- [x] Door or lock state validation.
### Configuration
- [x] Persistent storage.
- [x] Factory reset.
- [ ] Version information.
---
## Phase 5 - Power Management
- [ ] Battery monitoring.
- [ ] Battery warnings.
- [ ] Sleep mode.
- [ ] Wake on keypad.
- [ ] Wake on dedicated NFC reader.
- [ ] Measure sleep current.
- [ ] Measure battery life.
---
## MVP - Standalone Firmware
- [ ] Complete firmware startup.
- [x] Lock opening.
- [x] Door or lock feedback.
- [ ] Battery monitoring.
- [ ] Administrator PIN.
- [x] Administrator NFC badge through the PN532 reader.
- [x] Audible feedback.
- [x] Standalone local keypad and NFC operation.
- [ ] Battery-powered operation.
- [x] No mandatory cloud dependency.
- [x] No subscription.
---
## Later Phases
- [x] Firmware BLE command service.
- [x] Initial Flutter mobile application shell.
- [x] Mobile Bluetooth scan and connect UI.
- [x] Mobile clock-sync command.
- [x] Mobile random permanent and one-time code management UI.
- [x] Mobile permanent-code editing and clipboard actions for both code lists.
- [x] Mobile NFC tag add/remove UI.
- [x] Mobile direct lock-open command UI.
- [x] Mobile stored-state readback from firmware.
- [x] Administrator and named guest identity storage.
- [x] Local seven-day event history.
- [x] Secure BLE pairing and encrypted application authorization.
- [x] App-triggered named NFC enrollment flow.
- [x] Branded Android launcher icon and native splash screen.
- [x] French/English application localization and language override.
- [x] Secure saved-box registration and automatic BLE reconnection.
- [x] Administrator/guest modal dashboard and role restrictions.
- [x] Guest invitation QR generation, scanning, and revocation.
- [x] Password-protected AES-256-GCM application backup and restore.
- [x] Mobile opening-history, NFC, and factory-reset administration.
- [ ] Validate pairing recovery and guest invitation on Android and iOS hardware.
- [ ] Zigbee connectivity.
- [ ] Home Assistant integration.
- [x] One-time temporary PINs.
- [ ] Time-limited and usage-count temporary credentials.
- [ ] Dedicated PCB.
- [ ] Field validation.
- [ ] Complete user, maker, and developer documentation.