Refurb Workflow Diagrams¶
[HYPOTHESIS] — these diagrams describe the designed Boot Up pipeline (Phase 0). They are the working blueprint, not yet validated against a real cohort; steps will change once the first batch runs.
A donated or surplus machine moves through five stages: Acquisition → Intake → Sanitization → Install (Ubuntu + BNI Community Pack) → Ready for User. Units that can't be recovered are routed to responsible recycling or parts harvest.
End-to-end overview¶
flowchart LR
A["Acquisition"] --> B["Intake & Triage"]
B -->|"accepted"| C["Sanitization"]
B -->|"rejected"| X["Responsible recycling / parts"]
C --> D["Install: Ubuntu + BNI Community Pack"]
D --> E["QA & Finalize"]
E -->|"pass"| F(["Ready: award to graduate"])
E -->|"fail"| R["Repair / re-image"]
R --> D
1 — Acquisition¶
Three supply streams feed the program. Institutional surplus arrives stripped (destroy-drive policy), so power cords and drives are the parts the program must fund.
flowchart TD
subgraph Sources
S1["Institutional surplus<br/>State · City · Health · Industry"]
S2["Individual & family donations"]
S3["Corporate ITAD & national programs<br/>PCs for People, Human-I-T, etc."]
end
S1 --> N1["Driveless + cordless<br/>(mandatory destroy policy)"]
S2 --> N2["May include live drive + charger"]
S3 --> N3["Often tested, in bulk"]
N1 --> L["Log inbound unit + source"]
N2 --> L
N3 --> L
L --> P["Flag missing parts:<br/>drive / charger"]
P --> G["Parts funded by<br/>supplies grant / CSR"]
G --> I(["To Intake & Triage"])
2 — Intake & Triage¶
Every unit is logged, ownership is transferred in writing, and a minimum-spec gate keeps volunteer labor off machines that cost more than they're worth.
flowchart TD
A["Receive unit"] --> B["Log: source, make, model, serial"]
B --> C["Donation / transfer form signed"]
C --> D{"Meets minimum spec?<br/>64-bit · 4GB+ · Ubuntu-supported"}
D -->|"Yes"| E["Asset-tag + enter to inventory"]
D -->|"No"| F{"Viable with cheap parts?"}
F -->|"Yes"| G["Parts queue<br/>RAM · drive · battery · cord"]
G --> E
F -->|"No"| H["Responsible e-waste<br/>or parts harvest"]
E --> I(["To Sanitization"])
3 — Sanitization¶
Boot Up always performs a verified, certified wipe at intake — a donor's self-wipe is a courtesy, not the system of record. The method depends on the media type. (Full detail: Data Sanitization & Wipe Certificate; donor-side options: Donate a Laptop.)
flowchart TD
A["Unit at sanitization"] --> B{"Drive present?"}
B -->|"No"| C["Install fresh SSD"]
C --> Z(["To Installation"])
B -->|"Yes"| D{"Drive type?"}
D -->|"HDD"| E["nwipe — 1 pass + verify"]
D -->|"SATA SSD"| F["ATA Secure Erase (hdparm)"]
D -->|"NVMe SSD"| G["nvme format --ses=1 / sanitize"]
D -->|"Self-encrypting (Opal)"| H["Cryptographic erase"]
E --> V["Verify result"]
F --> V
G --> V
H --> V
V --> W["Generate wipe certificate<br/>+ log cert ID to inventory"]
W --> Z
4 — Install: Ubuntu + BNI Community Pack¶
A clean Ubuntu 24.04 LTS base, then the curated BNI Community Pack of open-source apps and accessibility defaults. (Stack detail: Software.)
flowchart TD
A["Boot Ubuntu installer USB"] --> B["Install Ubuntu 24.04 LTS"]
B --> C["Create default user<br/>+ accessibility defaults"]
C --> D["Apply BNI Community Pack"]
D --> Pack
subgraph Pack["BNI Community Pack"]
P1["Web · email · office"]
P2["Education & AI-literacy tools"]
P3["Creative & productivity apps"]
P4["Accessibility config (WCAG-minded)"]
P5["Security updates + firewall"]
end
Pack --> E["MPowerUP preinstalled<br/>(future — Phase 5)"]
E --> F(["To QA / Ready for User"])
[HYPOTHESIS]MPowerUP preinstallation depends on a desktop/web build of MPowerUP (its Phase 5) — shown as a future step, not a current capability.
5 — Ready for User¶
A QA gate confirms the machine actually works for a real person, then it's matched to a curriculum graduate and handed over with support.
flowchart TD
A["QA checklist"] --> B{"Boots · Wi-Fi · battery ·<br/>audio · camera · apps · a11y OK?"}
B -->|"No"| C["Repair / re-image"]
C --> A
B -->|"Yes"| D["Final label + inventory update"]
D --> E["Pair with curriculum graduate"]
E --> F["Handover pack:<br/>quick-start · support contact ·<br/>data-wipe certificate to donor"]
F --> G(["Ongoing support tier"])