Care Hero Shift Booking

Care Hero is a shift booking web portal we built for an entrepreneur who has strong ties to the care industry in the UK. The Care Hero service is designed to operate under the “software as a service” model, charging care homes a commission on all shifts booked using the web portal.

The web portal is designed to replace and improve efficiency over the paper-based shift booking systems typically adopted by individual care homes and care home groups. Shifts are inputted into the system by managers and relevant care staff are notified of shift availability via text or email, so that they can accept or decline. All of this data is stored in a structured way, so that administrators can export shift details with ease and pass the data on to the organisation’s finance or payroll department.

Another important feature of the Care Hero system is that the access control mechanism allows administrators and managers to control site (care home) access, i.e. filtering what sites the users on the system will have access to. For example, staff will only get shift notifications for sites that they have been granted access to – perfect for small to large care home groups.

The access control mechanism thus plays an important role in ensuring that the Care Hero system can be easily integrated into most care homes or groups of care homes in the UK, considering that they largely follow the same hierarchical structure in terms of job roles within the organisation, i.e. Administrators, Managers, and Staff.

The Care Hero web portal is a full-stack JavaScript system, comprised of a front-end application written in AngularJS, a NodeJS API and a MongoDB database.


We helped the United Kingdom Hydrographic Office (UKHO) build PortDB, a web portal which displays maritime related geospatial data such as berths, dredged areas, restrictions, and many more. The geospatial data is stored in a PostgreSQL database and rendered using Mapbox GL JS, a JavaScript library that uses WebGL to render interactive maps from vector tiles and Mapbox styles.

We used completely open source tools to build this platform. It’s hosted using an Amazon EC2 server running Linux Ubuntu.

We used AngularJS to build the front-end application and MapBox GL JS to render the map. For the back-end system we built a PHP API which interacts with a PostgreSQL database which stores the user authentication data along with some of the geospatial data.

Map Filter

PortDB has a filter whereby the user can choose what should be displayed to them on the map. They can also this filter to switch between a raster map layer or a satellite image.

User Profile

We implemented a user profile in PortDB which allows the user to define a profile about themselves. This was designed so that, if a user was responsible for sailing a tanker, then they could opt to only show relevant geospatial data for tankers on the map. The profile also allows the user to define the vessel size, draft size, and length of their vessel to further tailor the data displayed to them.

Site Tour

PortDB has a “tour” which we built using AngularJS. This function gives the user a tour of the web portal showing them all of the key features that they can use.

“Typeahead” Location Search

We implemented a “typeahead” search function for PortDB. As the user types into the location search bar we send Ajax JavaScript requests from our Angular app to the PHP API which then queries the PostgreSQL database for any ports matching the text the user input. Upon clicking on a search result the map then pans to the desired location.

Maritime Information Portal

MIP (Maritime Information Portal) is a web application we produced for the United Kingdom Hydrographic Office (UKHO). MIP was created for mariners who wish to view a variety of information sources including:

  • Reported and unconfirmed Hydrographic Notes sourced directly from the portal and via the ADMIRALTY H-Note App
  • Product Limits
  • Maritime information such as RNWs, World Ports, and Anti shipping activity

The portal aids mariners, particularly those who actively use a vessel by presenting them with relevant maritime information data such as wrecks, water pollution, and new sea features (such as piers). This data can help mariners plan their journeys around any potentially hazardous maritime incidents.

The Maritime Information portal has a front-end AngularJS application which gets displayed to the user, this application uses a google map to display the geospatial data to users. There is a PHP API that the Angular app communicates with. This PHP API is connected to both a PostgreSQL database which holds the geospatial data and a MySQL database which holds the user authentication data.


We built in a “gamification” mechanism into the Angular app. Users would score points for every H-Note they submitted to the App which got verified. Once they reach certain milestones, their H-Note rank increases. This is displayed visually on the front-end as a collection of stars. Users ranking range from 1 to 5. This mechanism helps users engage with the portal and provides an incentive for them to report H-Note incidents via the portal.

Bello Wild Food

Bello Wild Food

The Bello Wild Food App is a bespoke, ecommerce solution built for a producer / distributor of British wild ingredients, e.g. seaweed, mushrooms, etc. They sell their freshly sourced wild ingredients directly to restaurants around the UK.

We developed a full-stack Javascript solution for Bello Wild Food, comprising of a NodeJS / MongoDB backend database, along with an AngularJS / Apache Cordova hybrid mobile (JavaScript) application, which runs on both Android and iOS mobile operating systems.

We utilised the AngularJS JavaScript framework in this project to develop some of the following elements:

  1. Develop both the client-facing, and administration elements of a product ordering system, allowing clients to fill a basket of goods, and fulfil a purchase order, as well as an administration suit, which allows the administrators of the Bello Wild Food app to login and manage / analyse their orders, and order history. We used the flexibility of Angular’s router to conditionally declare routes in the application, this allowed us to create a completely different experience for both clients, and administrators of the system, through the same application.
  2. We developed the data-entry element of the app to work completely offline, this allows Bello Wild Food foragers to capture photos of their produce, straight from the source and upload a new product listing to the store. This process works completely offline, we developed an upload queue using Angular services, which stores the data for new products, places it in a queue, and attempts upload at the first available moment, i.e. when a network connection has been established.
  3. Both a local, and push notification services were developed for the Bello Wild Food app, notifying customers when new products have been uploaded to the store, and administrators when orders are made, and modified by clients using the app. The local notification service simply alerts, and displays notifications generated through actions on the app, to it’s users, e.g. client makes an order, admin gets a notification – these notifications are persistent, and act as an audit log history for your account in effect. The push notification service was developed to notify chefs directly, as soon as fresh produce was available, this has the advantage of not requiring the chef to be using the app to know something is available, their phone will ding, and let them know on their lock screen!
  4. Develop a data-light, lazy loading shop, which allows the user to scroll through the entire Bello Wild Food product listings, only loading items as they come into view, providing the user with a fluid user experience, whilst at the same time being very light on their data plan.
Lee Brindley - Web & App Developer

Lee Brindley

Memory Bubbles

Memory Bubbles is a social network which stores user’s photos and videos allowing them to organise them and add extra metadata to them, e.g. who took the photo, when was it taken, etc. Users can then search their photos using these fields.

Memory Bubbles consists of a web application, an iOS app, and an Android app, all of which were built using AngularJS.