CyberSecurity Coach
  • Project

    CyberSecurity Coach

  • Tech

    SPA, React, TypeScript, Azure Storage, Azure Functions, OpenAI API, GPT-4

img

CyberSecurity Coach

CyberSecurity Coach is a simple yet effective web single-page application (SPA) designed for training RAF Cadets in cybersecurity scenarios. The application is written in TypeScript using React and Milligram, and it is deployed on Azure Storage as a static website. It communicates with an Azure Function, which handles user authentication and interfaces with the latest OpenAI API chat engine. The Azure Function provides the application with information about the user, tailoring the training experience based on their background, such as IT specialists, home users, or teenage RAF Cadets.

The application acts as a cybersecurity coach by presenting users with a set of scenarios and guiding them through their responses. It begins by greeting the user and displaying five different cybersecurity training scenarios. The user selects a scenario and interacts with the GPT engine, which describes the situation and asks for the user's response. The engine then evaluates the user's actions, updates the scenario state, and continues to interact until the scenario is either successfully resolved or fails. After completing the scenario, the application provides a summary and advice, asking if the user wants to try another scenario. The system ensures an engaging and educational experience by adapting to the user's language and expertise level, making it a valuable tool for cybersecurity training.

ESN IBV (In-Building Visualization)
  • Project

    ESN IBV

  • Tech

    C#, .Net, WinForms, Vue.js, CefSharp, TypeScript, OpenLayers, PDF export

img

ESN IBV (In-Building Visualization)

ESN IBV, developed for Higher Mapping Solutions with the Home Office as the end client, is a sophisticated application designed for visualizing mobile signal data within building floor plans. The core application is a single-page application (SPA) developed in TypeScript and utilizing Vue.js, with OpenLayers for mapping functionalities. This SPA is embedded in a WinForms Windows application, written in C# .Net, using CefSharp to enable it to be deployed as an .msi package via WiX, allowing it to run as a Windows application. The compiled code is obfuscated using the Obfuscar package to enhance security. The application supports CSV input files, which users can update to work on a set of plans and paths within a 'workspace'. Additionally, the project includes a command-line licensing application for generating license files for the main application.

The ESN IBV application allows users to import mobile signal data from CSV files and building floor plans as basemaps for the OpenLayers control. This signal data is visualized on top of the building plans, providing various display modes, including heatmaps. The data comes from scanning devices that read mobile network signals as operators walk through the building. Once recorded, users can load the data into ESN IBV, modify paths as needed, and automatically distribute data points along the adjusted paths. The visualization can be exported as a PDF file, supporting layers for each floor plan and paths, facilitating comprehensive analysis and reporting.

WALMS
  • Project

    WALMS

  • Tech

    VB.Net, WPF, MVVM, EF, MS SQL Server CE, JavaScript, OpenLayers, RWNet

img

WALMS

WALMS is a project developed for Higher Mapping Solutions to facilitate the assignment of students to the closest schools based on calculated routes. This Windows desktop application, is written in VB.NET and utilizes Entity Framework and SQL Server CE for data management and storage. The application leverages WPF (MVVM) for the user interface and CefSharp for embedding web content, allowing the execution of JavaScript code using OpenLayers.

WALMS geocodes imported student addresses using the Ordnance Survey API. It has a built-in ITN road network and uses the RWNet library to calculate routes, either walking or direct distance, from students' addresses to schools. After the calculations, students are assigned to the closest schools, and the routes are displayed on the map. WALMS supports Ordnance Survey and OSM maps as base maps, overlaying the calculated routes on these backgrounds. Additionally, WALMS supports importing and exporting data in CSV format, including the EduBase format, facilitating seamless data integration.

RAVA
  • Project

    RAVA

  • Tech

    VB.Net, WPF, MVVM, EF, MS SQL Server CE, JavaScript, OpenLayers, RWNet, FleetEngine

img

RAVA

RAVA is a project developed for Higher Mapping Solutions. This Windows desktop application, written in WPF, calculates optimal bus routes to transport students from their homes to schools. It employs the MVVM pattern and the Caliburn.Micro framework, while Entity Framework and MS SQL Server CE handle data management and storage, including automatic database upgrades with new versions. MEF enables the dynamic loading of pluggable components, such as the CrystalReports module. The embedded map, located in a WebBrowser control (CefSharp), runs JavaScript code using OpenLayers. Additionally, RAVA uses WiX to create an .msi installation file, allowing it to be deployed through standard Windows installation and uninstallation processes.

The system calculates the optimal time/cost-based schedule and routes for buses to efficiently deliver students to schools and back. Users can define the fleet of vehicles, import bus stops and student data, and set up feeder routes. RAVA leverages WMS, WMTS, TMS, OSM, and Stamen map services to load the base map and utilizes a road network compatible with RW Net 4 and FleetEngine to compute students' walking paths and optimize bus routes. The system cooperates with data imports/exports with external systems like CapitaOne and the New Zealand MoEST system.

RW NetServer Demo
  • Project

    FleetEngine Demo

  • Tech

    HTML, jQuery, OpenLayers, GeoServer, REST, WCF, Windows service, FleetEngine

img

RW NetServer Demo

RW NetServer Demo, a project created for RouteWare, consists of four interactive and responsive web applications: Directions, TSP, Nearest Point, and Isochrones. The user interface is built with Bootstrap, jQuery, and OpenLayers. A RESTful service (.Net Web API) runs server-side, communicating with the NetServer service. GeoServer serves the base map and other layers, while MS SQL Server stores spatial data (isochrones) that are queried by GeoServer and sent to the client as PNG images. Additionally, a scheduled task clears the isochrones table, removing outdated data from the database.

The application suite allows users to test various functionalities of RW NetServer working with road networks. The Directions application provides routing between points, TSP (Traveling Salesman Problem) optimizes routes for multiple stops, Nearest Point finds the closest locations, and Isochrones generates areas reachable within a certain time or distance.

FleetEngine Demo
  • Project

    FleetEngine Demo

  • Tech

    HTML, jQuery, OpenLayers, GeoServer, REST, WCF, Windows service, FleetEngine

img

FleetEngine Demo

FleetEngine Demo, developed for RouteWare, is an interactive and responsive web application designed to optimize parcel delivery routes for three trucks. The user interface is built using HTML, Bootstrap, JavaScript, jQuery, and OpenLayers, while GeoServer serves the basemap. A RESTful web service on the server side communicates with the FleetEngine service via WCF. The system includes another sub-project - a continuously running Windows service that removes abandoned tasks. The application's color scheme is designed to accommodate colorblind users, making it easier for them to distinguish between different routes.

The application allows users to test simple scenarios and see how FleetEngine can optimize parcel delivery routes. Users can assign and adjust tasks for each truck, define each truck's depot location and working hours, and view real-time route optimization information on the map. FleetEngine's optimization algorithms ensure that routes are calculated to minimize total travel time and maximize efficiency.