Denver, Colorado
Food pantries and charities around the country are required to keep records on the people they serve and the frequency that they receive benefits. I was tasked with rebuilding their existing solution built on top of Microsoft Access as an internal web application.
Core Features:I opted for a single page application built in React as it is especially suited for complex, multi-layer applications like this. Once the JavaScript bundle is loaded, it feels like a desktop application.
Application styling and layout is handled by Bootstrap 5 with a custom sidebar ribbon component for navigation. I wanted the application to be easy to navigate and not overwhelming so I implemented the ribbon with only a handful of broader categories/sections. More specific functions can be accessed from their respective category's main screen.
This is the top level screen for the intake category. From this view the user can move to create a new client record, view upcoming scheduled visits today, or find existing client records to take action on.
This is the applet responsible for recording new shipments of inventory to the food bank. The UPC input can be selected and a USB barcode scanner can be used to scan in products individually. Product definitions can be redefined on the fly and a database of products is dynamically built as they are defined because using a third party UPC API is cost prohibitive.
Additional screenshots are available upon request. I can only share small snippets of the code. This is a real application that I built for an organization and is running in a production environment.
I chose to implement the backend in Node.js using the ExpressJS framework. Data is stored in a MongoDB database for its parity with the rest of the JavaScript stack.
An NGINX instance acts as a reverse proxy for the Node.js service. The DCM service runs as a dedicated non-privileged user so that any code execution exploits do not affect the broader system.
To migrate data from the existing Microsoft Access application to the new MongoDB database, the data was manually exported from the Access tables into a standard XML file using the export data menu in Access. I assembled a set of one-off python scripts that would read in these XML files, remap their fields to the new fields present in the MongoDB database, and then push those entries document by document to the new database.
Although I now have a lesser involvement with the ministry directly, I periodically continue to provide support and small updates. I designed a modular database architecture that can accomodate additional applications for the ministry beyond the food bank management program.
As I built the platform I documented both my technical decisions as well as instructions for future developers and end users to reference.
Copyright © 2020-2025 Konstantin Zaremski — All rights reserved. Styles by Neumorphism UI Bootstrap.