|
|
# Overview
|
|
|
|
|
|
## Parts
|
|
|
This project consists of four distinct parts. The API server, the web frontend, the old elock server,
|
|
|
and the door controller code. The server API serves as the authoritative entity for determining
|
|
|
access to doors as well as managing its own data. It has two API's, the first of which is used for management
|
|
|
actions, while the second api is used by connecting doors to perform their basic functions such as
|
|
|
get their open mode schedules or check access to a door from a specified doorcode. The web frontend allows for
|
|
|
management of the system. The server API is self-sufficient, but the other parts rely on ONLY the server API.
|
|
|
|
|
|
### Server API
|
|
|
The server api is a cluster of docker containers that consist of the webserver, database, database management system,
|
|
|
and the actual api code itself. The technologies used are as follows:
|
|
|
- Web Server: [Nginx 1](https://www.nginx.com/)
|
|
|
- Database: [PostgreSQL 13](https://www.postgresql.org/)
|
|
|
- Database Management System: [pgAdmin 4](https://www.pgadmin.org/)
|
|
|
- API Code: [PHP 7.4](https://www.php.net/), [Laravel 7.x Framework](https://laravel.com/)
|
|
|
|
|
|
See more at its documentation page. [API](api.md)
|
|
|
|
|
|
### Web Frontend
|
|
|
The web fronted is a SPA written in [Vue.js](https://vuejs.org/). It provides an administration management interface
|
|
|
as well as a student portal to be able to perform actions such as changing ones doorcode.
|
|
|
|
|
|
|
|
|
### Door Controllers
|
|
|
The new generation of door controllers are written in C11 for maximum control, speed, stability, and portability.
|
|
|
They are running on an esp32 microcontroller in Espressif's
|
|
|
[ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) framework.
|
|
|
They are the ones that initiate contact with the API. The API cannot initiate contact with them.
|
|
|
They talk to the API only when needed and will make requests to verify a user's code, or to
|
|
|
gather when the next open mode events are.
|
|
|
|
|
|
|
|
|
See more at its documentation page. [Controller](controller.md)
|
|
|
|
|
|
### Old Elock System
|
|
|
The old elock system is running modified translation code to use the new frontend server API. Since the old
|
|
|
microprocessors cannot be re-flashed, the old server is still running in place, but running
|
|
|
a modified version of its old code to redirect requests to the new API server to keep only one central
|
|
|
authoritative power. It hails under the version name of `OLD ELOCK TRANSLATION AGENT`.
|
|
|
|
|
|
\ No newline at end of file |