← Junaid Afzal All work
Open source Semester project · full-stack web + mobile

HBL Banking System

One Express API powering a React web app and an Expo mobile app

View on GitHub ↗

4
Roles: customer, employee, manager, admin
5
Account types
2
Client apps on one API
Role
Sole developer — backend, web and mobile
Company
University of Central Punjab
Period
Semester project (Advanced Web Programming)
HBL Banking System web app screenshot

01

Overview

I designed and built a full-stack banking platform on my own. A single Node.js/Express backend serves a React web app and an Expo React Native mobile app, so both clients share one API.

02

How it fits together

  1. 01

    React web app

    Vite · Tailwind CSS

  2. 02

    Expo mobile app

    React Native · NativeWind

  3. 03

    Express API

    JWT · Socket.IO · Swagger

  4. 04

    MongoDB + Redis

    Data and caching

03

What the platform does

  1. 01

    Accounts and transactions

    Multiple account types (savings, current, fixed deposit, Islamic savings, salary), fund transfers, deposits and withdrawals, with real-time notifications over Socket.IO.

  2. 02

    Cards and loans

    Debit and credit card management, loan applications with EMI calculation and an approval workflow, and a branch and ATM locator.

  3. 03

    Administration

    An admin dashboard with system statistics, user and transaction oversight, and reporting.

04

Security and quality

  1. 01

    Access control

    JWT authentication with role-based access for customers, employees, managers and admins.

  2. 02

    Abuse protection

    Rate limiting, account lockout after failed logins, transaction monitoring that flags suspicious activity, and audit logging.

  3. 03

    Performance and docs

    Redis caching and an OpenAPI/Swagger specification documenting the REST API.

05

Clients

The web app is built with React, Vite and Tailwind CSS. The mobile app uses Expo with file-based routing, NativeWind for styling and Axios against the same backend.

06

Stack

  • Node.js
  • Express
  • MongoDB
  • Redis
  • JWT
  • Socket.IO
  • Swagger / OpenAPI
  • React
  • Vite
  • Tailwind CSS
  • React Native
  • Expo