This project is under active development. Currently it has successfully transitioned from a file-based prototype to a robust PostgreSQL-backed OOP architecture. Current Focus: Phase 3: Enterprise Ecosystem (Web Framework) where the project will be refactored to use the Django Framework.
You can check the DEVLOG to follow my progress, technical hurdles, and implemented solutions while building this app.
Proggy Wallet is a comprehensive engineering roadmap designed to architect a production-ready Full-Stack Fintech solution. This project documents the complete lifecycle of modern software development, bridging the gap between a dynamic Frontend prototype and a scalable Django ecosystem.
It serves as a definitive technical reference for industry best practices, implementing a Monolithic Architecture through Djangoβs MTV (Model-Template-View) pattern. By consolidating logic and presentation, the project integrates advanced Python logic, SQL persistence, and automated DevOps workflows (Docker & CI/CD) to demonstrate the rigorous evolution from initial code to global cloud deployment.
- π Key Features
- π Quick Start
- π Project Evolution
- π Project Structure
- ποΈ Architecture & Security
- π οΈ Tech Stack
Proggy Wallet combines a modern user experience with a robust backend engine. The system is designed to handle the core requirements of a digital wallet while maintaining high standards of data integrity and security:
- Financial Integrity: All operations are managed by a
TransactionManagerservice, ensuring atomic updates between accounts and persistent ledger records. - Advanced Security:
- Password hashing using bcrypt.
- Strict data validation and API schemas using Pydantic models.
- Real-time SQL History: Dynamic transaction history with server-side sorting and filtering, replacing static file reads.
- Live User Directory: A dynamic recipient selector for transfers that reflects the real-time state of the database.
- OOP Architecture: Clean separation of concerns using Domain Entities, Services, and Repositories.
This project uses uv for blazing-fast Python package and project management. If you don't have it installed:
curl -LsSf https://astral.sh/uv/install.sh | shClone the repository and sync the environment:
git clone https://github.com/your-username/proggy-wallet.git
cd proggy-wallet
uv syncStart the FastAPI server. It will be available at http://localhost:8000.
uv run uvicorn backend.app:app --reloadOpen frontend/index.html in your browser (Recommended: Use VS Code 'Live Server').
Configure the environment variables: You can edit .env.example to your liking, or just copy it to .env and edit it.
cp .env.example .envInitialize the database:
uv run python scripts/init_db.pyIf you have Docker and Docker Compose installed, you can skip manual installation:
# It will be initialized with the schema from backend/database/schema.sql.
docker-compose up -dThis project follows strict PEP 8 standards and is fully tested.
# Linting
uv run ruff check
# Tests
uv run pytestThis document provides a comprehensive overview of the project's evolution, from the initial prototype to the current state:
- π DEVLOG: Daily technical logs, hurdles, and solutions.
- πΊοΈ ROADMAP: Our path from prototype to production.
- ποΈ ARCHITECTURE: Deep dive into our system design and ADRs.
proggy-wallet/
βββ backend/
β βββ database/ # ποΈ Persistence layer (PostgreSQL)
β βββ modules/ # π§ Core business logic (Auth, Services, Entities, Repositories)
β βββ tests/ # π§ͺ Automated Unit Test suite (Pytest)
β βββ app.py # π FastAPI REST entry point
βββ docs/
β βββ adr/ # π Architecture Decision Records (ADRs)
β βββ development/ # π Development guide and DEVLOG
β βββ ARCHITECTURE.md # π System design & Layer map
β βββ DATABASE.md # π Database schema and data model
β βββ PRD.md # π Project Requirements Document
β βββ ROADMAP.md # π Technical Roadmap
βββ frontend/
β βββ css/ # π¨ Custom styles & Bootstrap 5
β βββ js/ # β‘ Interactive logic (jQuery & Fetch API)
β βββ *.html # π₯οΈ UI Views (Login, Dashboard, Transfers)
βββ scripts/ # π Scripts for DB initialization
βββ .env.example # π Environment variables example
βββ docker-compose.yml # π³ Docker Compose configuration
βββ pyproject.toml # βοΈ Project configuration & dependencies
βββ README.md # π Project documentation
Proggy Wallet is built with a focus on maintainability and financial integrity. It's currently transitioning to a professional enterprise architecture:
- ποΈ Layered Architecture: Clear separation of concerns between API, Service Layer (
TransactionManager), and Domain Entities to ensure the system is easy to scale and test. - π Software Atomicity: Financial transactions follow the "all-or-nothing" principle. Manual rollback mechanisms are implemented to prevent data corruption during failures.
- π‘οΈ Industry-Standard Security: User protection is paramount.
bcryptis used for secure, non-reversible password hashing and Pydantic for strict schema enforcement. - π¦ Repository Pattern: Abstracting data access to allow a seamless migration from flat files to PostgreSQL without touching the core business logic.
- Frontend:
Bootstrap 5+jQuery. - Backend:
Python 3.12+FastAPI,Pydantic V2. - Core: Domain-Driven Design (Entities, Services, Repositories).
- Database:
PostgreSQL. - Security:
bcryptpassword hashing. - Tooling:
uv(Package Manager),Ruff(Linter/Formatter),Pytest. - Infrastructure:
Docker,GitHub Actions(Coming soon).
Done with β€οΈ by AnΓbal Rojo.