Challenge Overview
Project Overview
The Access Request Module will allow people to request access to secured spaces through an easy to use interactive web application. It will allow security personnel to review access requests and grant, deny, or perform other actions with them. This application will rely heavily on the Lenel OnGuard Access Control system and utilize our API to make business decisions.
Competition Task Overview
Previously, we have implemented the Requester role part functionality (see Module Assembly - Styx Access Request Module Web Application - Requester), for this challenge, we'd like to continue the development by implementing the functionality for Approver and Configuration part. This will include implement the backend services and integration the UI Prototype which is implemented by using AngularJS. So the application is working from end to end.
Note: Please read the whole Application Design Specification first. All the details not mentioned in this specification are provided in that document.
Note: Extensive implementation notes are provided at method documentation on UML Class Diagrams. Please follow them for implementation.
Note: You are expected to follow the same methodology used in the winning submission of Module Assembly - Styx Access Request Module Web Application - Requester
The high level use cases specified in ARM Requirements for Approver Challenge.docx section 9, 10 and 12 should be covered in the challenge.
Scope
Following stuff should be in scope if anything related to Approver and Configuration part is not implemented yet.
- AccessRequestService (updateStatus function), ConfigurationService, EmailNotificationService, MiscService, ConfigurationController, AccessRequestController, MiscController in Back End Services and Controllers Diagram. Notes, logic related to Requester role is already implemented.
- ConfigurationService, MiscService, AccessRequestSerivce in Front End AngularJS Services Class Diagram. Notes, logic related to Requester role is already implemented.
- ApproverCtrl, ConfigurationCtrl in Front End AngularJS Controllers Class Diagram
Some Changes from the Original Architecture
Besides the original architecture, we needs some changes, please follow ARM Architectural details.pdf like
- Please use meaningful name for MiscService instead. See Suggestion as following
Old name: Security Service
New name: LS ARM Security Service
Old name: Configuration Service
New name: LS ARM Configuration Service
Old name: AccessRequestService
New name: LS ARM Request Service
Old name: EmailNotificationService
New name: LS ARM Notification Service
Old name: MiscService
New name: LS ARM Information Service
- all service names need to have "LS" in front of them as we outlined in the Architecture document.
Authentication and Authorization
The implementation of Login Screen is not in scope, Use the following credentials for the backend API service authentication (OpenAccess).
Username: sa
Password: sas
Use the following credentials for the database user:
Username: lenel
Password: Secur1ty#
Other information will be posted in forum for competitors' usage only.
Virtual Machine Information
This challenge requires a VM with OpenAccess API installed, please request your VM in forum.
Pages
views/approver.html
Wireframe: Approver
Controller: ApproverCtrl
This page handles approver page. The “New Requests” is same as “In-Progress Requests”, and they are merged to a single “In-Progress Requests” section.
views/configurator.html
Wireframe: Configurator
Controller: ConfiguratorCtrl
This page handles configurator page.
Final Submission Guidelines
- Updated Source Code for Frontend and Backend, related to Configuration and Approver part.
- Deployment Guide for application setup.
- Verification Steps for verifying related functionality.