Web based approval system

Web based approval system

With the COVID-19 and the introduction of remote work, a many japanese companies were struggling with the approval of documents, since those needed to be physically stamped with one's personal seal named Hanko.

I decided to solve this issue by creating a web application to keep track of approvals (or rejections). The application, allows users to submit application forms of various kinds to recipients of their choice. Each recipient can decide wether to approve or reject the submission.

This data is stored in a Neo4J database, which serves as a centralized ledger. Here, Neo4J has been chosen for its ability to store data as a graph, making the representation of submissions and approvals intuitive.

Article image

The storage and querying of data is achieved using a Node.js application and provides a REST API built with Express. Moreover, a GUI was built using Vue.js and interfaces with the API.

In order to keep the approval process intuitive, the GUI of the application indicates the approval of submissions using a digital hanko such as this one:

Article image

This digital hanko is meant to feel familiar to those used to physical stamps, with the addition of a QR code. This code contains the ID of the APPROVED relationship that stores the approval of a recipient on a given submission in Neo4J. As such, every QR code, and thus digital Hanko is unique.

This application also allows documents to be attached with submissions. If an attachment is a PDF file, one's digital hanko can be directly embedded in it via the GUI.

Article image

The source-code for this application has recently been released as open-source software on GitHub: