How dariocasciato/iot-access-controller works
This repository combines a web-based access-management service with ESP8266 access-point firmware. The main workflow is an RFID card read, a server-side authorization check against assigned rights, and feedback at the access point; the web interface manages users, devices, assignments, and logs. The tree and README identify several subsystems whose source was not sampled, so those are shown at their documented boundaries without guessing internal wiring. CSV data paths are referenced in sampled code, but the data files are not in the supplied tree.
Main entry points: server.js Express server · main.cpp Device loop · data CSV records · Access.cpp Access control
Components 26
Web management
- Management pages
access-manager/public/pages - User management UI
access-manager/public/pages/UserCreation/script.js - Access point UI
access-manager/public/pages/AccessPointConfig/script.js - Assignment UI
access-manager/public/pages/AccessAssignment/script.js - Log overview UI
access-manager/public/pages/LogOverview/script.js
Server domain API
- Express server
access-manager/server.js - User routes
access-manager/Routes/users.js - Access point routes
access-manager/Routes/accessPoints.js - Assignment routes
access-manager/Routes/assignments.js - Authorization endpoint
access-manager/Routes/accessRequest.js - Access log routes
access-manager/Routes/logs.js - CSV records
access-manager/data
Access-point firmware
- Device loop
access-point-firmware/src/main.cpp - Access state
access-point-firmware/src/state.cpp - RFID reader
access-point-firmware/src/RFID/RFID.cpp - Access control
access-point-firmware/src/Access/Access.cpp - Host API
access-point-firmware/src/Host/Host.cpp - Wi-Fi connectivity
access-point-firmware/utils/Connectivity/ESPWiFi/espWiFi.cpp - HTTP API client
access-point-firmware/utils/Connectivity/APIHandler/APIHandler.cpp - Decision feedback
access-point-firmware/src/Signalization/Signal.cpp
Device hardware and storage
- Flash layout
access-point-firmware/src/Flash/Flash.cpp - ID storage
access-point-firmware/utils/Storage/IDStorage.cpp - Rolling storage
access-point-firmware/utils/Storage/RollStorage.cpp - EEPROM
Other components
- Operator
- RFID card
Connections 33
- Operator → Management pages: uses
- Management pages → Express server: loads pages
- User management UI → Express server: manages users
- Access point UI → Express server: manages devices
- Assignment UI → Express server: assigns rights
- Log overview UI → Express server: views logs
- Express server → User routes: mounts routes
- Express server → Access point routes: mounts routes
- Express server → Assignment routes: mounts routes
- Express server → Authorization endpoint: mounts routes
- Express server → Access log routes: mounts routes
- Access point routes → CSV records: reads/writes
- Assignment routes → CSV records: reads/writes
- User routes → CSV records: reads/writes
- Access log routes → CSV records: reads/writes
- Authorization endpoint → CSV records: checks and logs
- RFID card → RFID reader: presents card
- Device loop → Access state: drives state
- Device loop → RFID reader: refreshes reader
- Device loop → Wi-Fi connectivity: initializes Wi-Fi
- Device loop → Host API: initializes host
- Device loop → Flash layout: initializes flash
- Device loop → Decision feedback: signals connection
- Access state → Access control: handles access
- Access control → HTTP API client: requests validation
- HTTP API client → Wi-Fi connectivity: uses connection
- HTTP API client → Express server: sends access request
- Express server → Host API: scans device API
- Access control → Decision feedback: signals decision
- Flash layout → ID storage: configures storage
- Flash layout → Rolling storage: configures storage
- ID storage → EEPROM: reads/writes
- Rolling storage → EEPROM: reads/writes