Back to Projects

Web Application2024

BIABank.

View Code
ASP.NET CoreJWTSQLiteHTML/CSSJavaScript

Overview

BIABank is a full-stack banking simulation system designed to demonstrate modern web development practices. The application features secure user authentication, real-time notifications, comprehensive transaction management, and a dedicated admin portal for system oversight.

Screenshots

Main dashboard view showing account overview and recent transactions

01

Dashboard

Secure authentication interface with JWT login

02

Login Page

Administrative dashboard for user and system management

03

Admin Portal

Transaction history and transfer interface

04

Transactions

Project Metrics

25+

API Endpoints

12

Database Tables

85%

Test Coverage

<100ms

Response Time

Key Features

01

JWT Authentication

Implemented secure JSON Web Token authentication with refresh token rotation, ensuring session security and seamless user experience.

02

Real-time Notifications

Built real-time notification system using SignalR, allowing instant updates for transactions, account changes, and system alerts.

03

Admin Portal

Created comprehensive admin dashboard for user management, transaction monitoring, and system configuration.

04

Transaction Management

Developed secure transaction processing with validation, logging, and rollback capabilities for deposits, withdrawals, and transfers.

05

RESTful API

Designed and implemented RESTful API endpoints following best practices for resource naming, HTTP methods, and response codes.

06

Database Design

Architected normalized SQL Server database with Entity Framework Core for efficient data access and migrations.

Architecture

  • Three-tier architecture separating presentation, business logic, and data access layers
  • Repository pattern for data abstraction and testability
  • Dependency injection for loose coupling and easier testing
  • Middleware pipeline for authentication, logging, and error handling

Challenges & Solutions

Challenge

Handling concurrent transactions without data inconsistency

Solution

Implemented optimistic concurrency with row versioning and transaction isolation levels in SQL Server

Challenge

Securing API endpoints while maintaining performance

Solution

Used JWT with short expiry times and refresh tokens, caching validated tokens to reduce overhead

Challenge

Real-time updates across multiple connected clients

Solution

Leveraged SignalR groups to broadcast updates only to relevant users, reducing server load

What I Learned

Deepened understanding of ASP.NET Core middleware and dependency injection

Learned best practices for securing financial applications

Gained experience with real-time communication using WebSockets

Improved database design and query optimization skills

Future Improvements

TODO 01

Add two-factor authentication (2FA)

TODO 02

Implement transaction analytics dashboard

TODO 03

Add support for multiple currencies

TODO 04

Build mobile companion app

TODO 05

Integrate with external payment gateways

Explore more projects