Basic Banking System

Simple login + transactions with PHP backend.

ROLE
Web Dev Intern
PERIOD
Feb 2020
STATUS
Published

OVERVIEW

Simple login + transactions with PHP backend.

ARRIVED AS

Minimal banking flow for learning + demo.

This was one of my first complete web applications, built during my internship to learn the fundamentals of full-stack development. The goal was to understand the complete request-response cycle, database interactions, and basic security considerations in a controlled learning environment. While the scope was intentionally limited (basic CRUD operations for banking transactions), the project served as a practical introduction to server-side programming, SQL databases, and user authentication - concepts I'd only known theoretically before this.

WHAT I BUILT

  1. 01Auth, transfers, and ledger views; clean UI.

WHAT CHANGED

  • Good primer on forms, security basics, and SQL ops.

Decisions, with the cost of each.

A decision without its trade-off is marketing. Each row says what was chosen, why, and what it gave up.

Choosing procedural PHP over frameworks

Wanted to understand the fundamentals before using abstractions like Laravel. This helped me appreciate what frameworks do under the hood.

Manual SQL queries instead of ORM

Needed to learn SQL syntax, table relationships, and query optimization basics. Wrote JOIN queries by hand to understand database operations.

Session-based authentication

Simplest authentication mechanism to implement. Learned about session cookies, server-side storage, and state management.

Minimal frontend styling

Focus was on backend logic. Used basic HTML/CSS to make it functional but not fancy - this was about learning server-side concepts.

✓ LEARNED

  1. Security fundamentals

    First real exposure to SQL injection, XSS vulnerabilities, and why input validation matters. Initially wrote vulnerable code, then learned to use prepared statements and sanitize outputs.

  2. Database design basics

    Understanding primary keys, foreign keys, and why atomicity matters in financial transactions. Learned the hard way about race conditions when two transfers happened simultaneously.

  3. State management

    How sessions work, cookie-based authentication, and the stateless nature of HTTP. This foundation helped later when learning about JWT tokens and modern auth patterns.

  4. Form handling and validation

    Server-side validation, error messaging, and user feedback. Learned why client-side validation alone isn't enough.

  5. Development workflow

    Setting up local PHP/MySQL environment (XAMPP), debugging with var_dump(), and basic version control with Git. First project where I used branches and commits meaningfully.