Case Study -Nexus Tyne & Wear Metro

Requirement
To design and install a cycle locker facility at each station on the Tyne and Wear Metro totalling over 120 individual lockers at 22 stations all inter-connected and monitored & administered by a back office web application.
Solution
![nexus-logo-cycle[1]](http://dotnetarchitect.co.uk/wp-content/uploads/2020/08/nexus-logo-cycle1.png)
My role as sub contractor was to design and implement all of the software components to control, administer and monitor the setting up, usage and access to the locker system.
The back office solution comprised of a IronSpeed ASP .Net web application where the administrators and operators could control the application. Authentication and authorisation was provided by Active Directory. All data was stored in a central SQL Server database. No direct access to the database was permitted. Reporting with SSRS was required and export to Excel & PDF.
The server also hosted web services controller to connect via SOAP to the 22 stations all reporting in with usage & diagnostics.
Each station controller (industrial PC with Windows) has a Windows service running autonomously, monitoring card swipes, opening locker, and controlling access. Integrated with a web service that connects to back office periodically to update and download new user and card access information. Data cached locally for speed and offloaded to local db.
Technologies
Backoffice: Windows Server, SQL Server, SSRS reporting, asp.Net, Web Services
Station controller(s): Industrial PC loaded with Windows and local SQL Server for caching. Web services using SOAP, Windows Service
The web interface solutions were built with an off the shelf product, Iron Speed and integrated into Visual Studio.
All code was written in C#.
Front end user screen

Data from each locker at each station is sent periodically to the back office where it can be monitored.
Usage Screens

Usage information is sent back and logged to assist operators if issues arise or lockers develop faults.
Challenges
There were several challenges:
- 1Access to the client network can only be done locally or via secure citrix session with monitoring and restricted access. This required that the solution worked straight out of the box and could integrate with exisiting systems and security requirements without disruption.
- 2Testing the system. Each of the stations need to update the back office and other stations to share status information and to prevent users from hijacking multiple lockers. Full checks of the Pop card, validity and user had to be carried out before access was allowed to place or retrieve a cycle from the locker. Anti tampering techniques had to be employed to keep the cycles safe.
- 3It was not possible to remotely monitor the system as we had no external access to the internal network. all servicing, updates had to be done by a monitored, restricted access citrix session.
Skills Required
Skills & Tools
C#
All projects in the solution used C#. Iron Speed with VS using .Net 4 web application, web services and Windows services at each controller for direct RS 485 connectivity to the swipe card unit and locker door opening mechanism.
SQL Server
Simple 20 table design in SQL server. Accessed via Iron Speed and Entity Framework db layer. SSRS reporting for back office.
HTML & JScript
Basic HTML and JScript used for layouts.