EPI-USE Labs Recruiting Exercise
Table of Contents
SecuriTree is an access control management application that provides a visual tree view of the security and access control units installed in a client’s S3(Super Secure Systems) system. This application allows authorised security operatives to monitor and manage physical security and access control units (areas, doors, elevators, floors, etc.), at a client’s premises.
The SecuriTree API server runs separately from the web application.
The server is built on Node.js which can also be used to serve the static files for the web application.
Download and install Node.js for your operating system here.
-
Open a new Terminal window. If you're using Windows, open a new Node.js Command Prompt Window, it comes bundled with the Windows installer.
-
Clone or download the repo and navigate to the project folder:
git clone https://github.com/iamdanre/SecuriTree.git && cd SecuriTree
-
Server: To run the API server, navigate to the server directory and install dependencies:
cd server && npm install
*Note: The MongoDB Atlas database will initially be empty for review purposes. The database can be populated using the JSON files in the server/setup directory by passing the command line argument "setup" to server.js like so:
node server.js setup
This will populate the database with the user data required to log in after salting and hashing the passwords. It also populates the relevant system data collections required for constructing the Security Entity Hierarchy.
If the database is already populated the setup argument may be omitted:node server.js
-
Web App: For simplicity the Angular application has been compiled using the "ng build --prod" command. Open a separate Terminal/Node,js Command Prompt window and navigate to:
{project-root-directory}/webapp/webserver
Once in the directory the command:npm install && node appServer.js
will serve the application. Navigate to http://localhost:8081 in your browser to use the application.
Using the application is trivial. Chevrons expand and collapse nested data, lock buttons lock doors, unlock buttons unlock doors.
Distributed under the MIT License.
Danré - Telegram - dev.danre@icloud.com
Project Link: https://github.com/iamdanre/SecuriTree