Skip to content
BF.
Full stack systemStatus: Completed2026

Finora

Full stack financial management system

A financial management platform for accounts payable and receivable, contacts, and operational indicators, with asynchronous processing, automation, and a Docker-based environment.

Finora dashboard with financial indicators, pending items, and upcoming transactions

Overview

The project in perspective.

Finora is a full stack financial management application built to organize accounts payable and receivable, contacts, due dates, settlements, and financial closing workflows through an integrated frontend, backend, database, and asynchronous processing experience.

Objective
Build a reliable, well-structured financial solution for recording transactions, tracking due dates, consolidating indicators, and automating work that should not block application requests.
Context
The project was structured as a complete application with a React frontend, Laravel API, PostgreSQL persistence, Redis for queues and locks, Sanctum authentication, and a reproducible Docker environment.
Project type
Full stack system
Role
Full stack architecture and development
Status
Completed
Year
2026

01

What this project demonstrates

  • Full stack architecture

    A clear separation between the frontend, API, database, and infrastructure keeps responsibilities well defined.

  • Asynchronous processing

    Jobs and queues handle work such as reminders and financial closings without blocking HTTP requests.

  • Task automation

    A scheduler identifies eligible transactions, dispatches reminders, and reconciles interrupted financial processes.

  • Consistency and idempotency

    Safeguards reduce duplicate reminders, closings, retries, and concurrent executions.

  • Persistence and infrastructure

    PostgreSQL is the primary data source, while Redis supports queues, caching, and synchronization mechanisms.

  • Automated quality

    Core flows are covered by automated tests, linting, and build validation.

02

My role

  • Solution architecture

    Defined the integration between React, Laravel, PostgreSQL, Redis, and supporting services.

  • Frontend

    Built the authentication, dashboard, contacts, transactions, and period overview screens.

  • Backend and business rules

    Implemented APIs, authentication, validation, settlements, filters, Jobs, the Scheduler, and financial workflows.

  • Infrastructure and quality

    Configured Docker Compose, queues, Redis, Mailpit, automated tests, and validation of the primary flows.

03

Features

  • User authentication

    Protected SPA access using Laravel Sanctum, session authentication, and CSRF protection.

  • Contact management

    Create, update, and delete contacts used in financial transactions.

  • Accounts payable and receivable

    Create and track transactions with amounts, due dates, type, linked contacts, and status.

  • Transaction settlement

    Record payments and receipts while preserving the financial history.

  • Dashboard and period overview

    Monitor indicators, upcoming due dates, and consolidated financial data by date range.

  • Reminders and financial closing

    Process alerts and financial closings asynchronously, including CSV generation and email delivery.

04

Interfaces and visual records that help explain the project's experience and primary flows.

  1. Finora dashboard with receivables, payables, pending items, and upcoming transactions

    01

    Financial dashboard

    A consolidated view of receivables, payables, pending items, and upcoming transactions.

    Objective: Demonstrates how the system organizes financial indicators and due dates in a single operational view.

  2. Finora transactions screen with payable and receivable records, statuses, due dates, and linked contacts

    02

    Transaction management

    A screen for creating, viewing, updating, settling, and deleting accounts payable and receivable.

    Objective: Demonstrates the core financial management flow, including statuses, amounts, due dates, and linked contacts.

  3. Finora period overview with date filters and consolidated open, settled, and overdue totals

    03

    Period overview

    Financial reporting by date range, with totals for open, settled, and overdue accounts.

    Objective: Demonstrates date filtering, value consolidation, and the financial closing workflow for a selected period.

  4. Finora contacts screen for maintaining customers and suppliers

    04

    Contact management

    Create and maintain the contacts used in financial transactions.

    Objective: Demonstrates how customers and suppliers related to the system's transactions are organized.

  5. Finora authentication screen with email and password fields

    05

    Authentication

    An application access flow protected by authentication.

    Objective: Demonstrates secure entry into the SPA before financial resources become available.

05

Architecture

  1. React

    The system's interface, navigation, and user experience.

  2. Laravel

    REST API, authentication, business rules, Jobs, the Scheduler, and data integration.

  3. PostgreSQL

    Relational persistence for users, contacts, transactions, and financial closings.

Supporting elements

  • Redis
  • Laravel Sanctum
  • Queues
  • Scheduler
  • Mailpit
  • Docker

06

Technical stack

  • Frontend

    • React
    • TypeScript
    • Vite
    • Axios
  • Backend

    • PHP
    • Laravel
    • Laravel Sanctum
    • REST API
  • Database

    • PostgreSQL
    • SQLite for testing
  • Infrastructure

    • Docker
    • Docker Compose
    • Redis
    • Laravel Queues
    • Laravel Scheduler
    • Mailpit
  • Quality

    • PHPUnit
    • Laravel Pint
    • Oxlint
    • TypeScript
    • Integration tests

07

Technical decisions

  • Asynchronous processing with queues

    Potentially time-consuming operations are queued so they do not block HTTP requests.

  • PostgreSQL as the source of truth

    Financial process state remains persisted in the database, while Redis serves as supporting infrastructure.

  • Overdue as derived state

    An account is considered overdue based on its pending status and due date, avoiding unnecessary state duplication.

  • Idempotency and retries

    Jobs and persistent records help prevent duplicate processing and support recovery from temporary failures.

  • Docker as the official environment

    Application services run reproducibly through Docker Compose.

08

Learnings

  • Building a full stack financial application with decoupled frontend and backend layers.
  • Using queues, Jobs, the Scheduler, and Redis in real asynchronous processing flows.
  • Applying idempotency, retries, and reconciliation to financial processes.
  • Integrating SPA authentication, PostgreSQL, Redis, email, and Docker infrastructure.
  • Creating automated tests for critical business workflows.

09

Result

The result is a functional, tested full stack financial application with authentication, contact management, accounts payable and receivable, settlements, indicators, automation, and asynchronous processing in a reproducible Docker environment.

  • React frontend integrated with the Laravel API
  • Relational persistence with PostgreSQL
  • Redis, queues, and the Scheduler for automation
  • Financial closings with CSV generation and email delivery
  • 66 automated tests with 232 assertions
  • Reproducible Docker environment

Next step

Let's build something together.

I am open to professional opportunities, projects, and conversations about software development.

Get in touch