Scan Pay System Development

Bongani Brendon Gumbo
4 min readMar 5, 2022

--

Traditional checkout systems and popular self-checkout systems which invlove a central point of service can become exponentially slow as the number of customers trying to checkout increases.

Overview

Project statement

Scan Pay is a proof of concept system that I am developing as a response to the inefficiency of the traditional checkout system.

Although services that allow customers to scan and pay for products exist, these services are usually offered by banks to their clients or by a single store, the problem with this approach is that the customer will either need to bank with a certain bank or install an app for each store which offers this.

My Solution

My solution is a platform that functions similar to an e-commerce service by allowing users to add items into their virtual cart as they add them to their physical cart, once they are done shopping, they can pay using their smartphone without having to enter any physical queues.

Basic Functions

  • Allow businesses to set up stores
  • Allow businesses to add products to an individual store
  • Allow businesses to receive payments
  • Allow customers to scan a product barcode to add an item to their shopping cart using their smartphone
  • Allow a customer to add multiple products to their cart
  • Allow a customer to pay for products in their cart using their smartphone
Customer, Login, sign-up, and update personal Information
Customer, landing page, shopping cart, add product and invoice

Development

Architecture

The system is built using Three-Tier architecture. The tiers for the application are as follows:

  • Database Tier: SQL, Azure
  • Server/API Tier: ASP.NET Web API, Azure
  • Frontend: 2 x Android, Java

Using this architecture allows for all processing to be performed away from the client application making it near impossible for the user to manipulate processed data. This is especially important for this system as it will prevent users from changing product prices on their end and having the application process false prices.

Database

The database was developed using the following:

  • Language: SQL
  • Using: MS SQL Server
  • Deployment: Azure (not yet deployed)

The database is used to store the following:

  • User and Business information
  • Invoice and Shopping history
  • Product Information

The database makes use of stored procedures to do the following:

  • Populate tables (User/Business information, product information)
  • Create invoices
  • User authentication
  • Update/Delete records

Server [Github]

The server is developed using the following:

The server performs the following functions:

  • Receive HTTP requests and filter user input
  • Retrieve information from the database send the filtered results to the frontend
  • Write filtered user inputs to the database
  • Generate and manage user sessions
  • Communicate with the Stripe API to perform checkout
  • Generate invoice QR codes using the QR Code Generator API

Frontend

The frontend is made up of a business management application and a customer application. both applications are developed using the following:

The core features of the customer application are as follows:

  • The user scans a store QR Code to gain access to a shopping cart specific to an individual store
  • Once on the shopping cart page, the user can scan an instore product's barcode (provided the store owner has uploaded the product to the platform)
  • When the user scans a product, it is written to a cart table in the database.
  • Once the cart is full, the user can checkout.
  • Checkout functions are done in the database and the customer will receive a message indicating whether the transaction is successful. If successful, they will receive an invoice

The core features of the business application are as follows:

  • The business can create one or multiple stores.
  • When a store is created, the user will receive a QR code which will be used to identify the individual store enabling the system to correctly link products purchased to the store
  • Once a store has been created, the user can add products to the store by scanning the barcode or manually entering the barcode numbers as well as entering product information like name, price, and description
  • The user can edit product information and put products on sale.
  • The user can view the total stock left based on the products that have been bought.

--

--

Bongani Brendon Gumbo

Welcome to my blog where I will share my insights on software and data engineering, create tutorials and talk about some projects.