jerm / the-bike-shed

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

the-bike-shed

@TODO what are the high level goals of this project?

Development

For best results, listen to this on repeat: https://www.youtube.com/watch?v=T1CowKULMx8

VSCode

  1. Install and setup docker:
    • Windows & MAC install docker desktop
    • Ubuntu: 0. sudo apt install docker.io; sudo usermod -aG docker $USER
      1. re-login
    • Linux follow directions for your distro...
  2. Install the "Remote - Containers" (ms-vscode-remote.remote-containers) exension
  3. Clone this code locally.
  4. Open the project folder in VSCode
  5. It should prompt to "Reopen in Container", do that. else do Command Pallette -> "Reopen in Container"
    • Note: You can ignore the message about git missing, it will get installed in the next step
  6. Once it's loaded in the new container run the "setup dev environment" task. Command Pallette -> "Run Task"
  7. Re-open window (so that vscode will realize git is now installed)
  8. Run the default build task to build...
    • To clean and rebuild: uncomment line 44 and then comment out lines 45 & 47 of build.bash. Save and run build task again. Then undo and run build task again

Hardware List

This list is a work in progress.

  • Raspberry PI Zero W
  • PI0 GPIO keypad (@TODO what type? link?)
  • PI0 GPIO LCD 2x16 Char display (@TODO what type? link?)
  • SD Card (@TODO what type? link?)
  • Communication (See TODO -> Hardware Research)
  • Mains Power supply (See TODO -> Hardware Research)
  • Solenoid / electric strike (See TODO -> Hardware Research)
  • Internal 5v regulator (See TODO -> Hardware Research)

TODO

Items below are either incomplete (☐) or complete (). Skipped items are striked out.

Code

  • ☐ Create skeleton code for shed

    • ☐ async curl
    • ☐ p2p UDP packets...
    • ☐ Periodic autosave
  • ☐ Testing framework

  • ☐ non vscode directions for building

  • ☐ prototype code for PI0 GPIO keypad

  • ☐ prototype code for PI0 GPIO LCD 2x16 Char display

    • ☐ memfd device file...
  • ☐ LIBCURL grab master-config from server

  • ☐ Parse master config

  • ☐ Trade config with peers

  • ☐ Synchonize time?

    • Do it with the time http headers when we get master-config?
  • ☐ Crypto all the things

    • ☐ sign p2p configs? have peer keys in master-config?
    • argon2d for RFID serials
    • ☐ Encrypt the list of IPs in the master-config
  • ☐ Make buildroot config

Hardware

  • ☐ Make schematics for exterior board.
  • ☐ SDCARD leveling torture test, need to make sure that the SDcard will last for the lifetime, 30 new accesses per day * 365 days * 5 years should be plenty.

Hardware Research

Streatch Goals (TODOs for after MVP)

  • ☐ Research alternate auth mechanisms:
    • Just using serials from NFC has a few security issues:
      • Easily skimmed
      • Small address space, trivially brute-forced, especially on clippercards
    • Possible Solutions:
      • Use bigger (1k) payloads
      • Use Challenge response NFC
      • Use BLE (phone?)

About

License:Creative Commons Zero v1.0 Universal


Languages

Language:Shell 58.8%Language:C 41.0%Language:Dockerfile 0.2%