- [x] Constrcut DB Schema - [x] Issue requests from Lap to Pi or vica versa - [x] Decide HTTP vs MQTT vs CoAP - [x] Hash passwords - [x] Salt passwords - [x] User registraion - [x] User login in API - [x] JWT token access - [x] Look into how to revoke a signed key - [ ] Record Session info in token & db (allow for session cancel) - [x] Add username for users (now only email) - [X] Expose Room monitor function (temp, count humid..) - [X] Expose door lock function - [X] Record access log - [X] Expose data analysis - [X] Load backend onto RPi - [X] Test connections in lab network - [X] Define emrgancy triggers (manual and automatic) - [ ] Expose temporary control in case of emergancy - Triggers - Acccess - Resolve (revoke access) - [X] Temporal door open commands (Needs door state to operate efficiatly) - [X] Open for 1H - [ ] Open to 1:30PM - [ ] Set schedual - [X] Issue door open command - [X] Make functions to gen a IotEntity token - [ ] Write a small program/script to generate new Iot token and add new Iot Device into database - [X] Make inital database entries automatic for easy reset - [X] Expose access list endpoint for doors - [X] Access list coutner for iot door - [X] Force close in middle of timed open request - [ ] Record user connections and time - [ ] Record Iot dev connection and time - [ ] Write unit tests - [ ] Develop a program to visualize the data - [ ] CLI frontend - [X] Emergaency - [X] Send state with accesslist - [X] Split monitor into different class - [ ] Make a script that adds types, and thier basic database ops?? (avoid writing boiler-plate) - [ ] Make a script that emulates a door and monitor - [ ] Check file premissions on .env file, if global reject eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJibHVldG9vdGhfbWFjIjoic3RyaW5nIn0.ELl5AfBR1NdM4_OFhl_SCTm9EMPpqjiCKOSS0CrOJps