A home budget management application built with Laravel (PHP), MySQL and Tailwind CSS. The project was created as a way to return to PHP after a long break and as a practical approach to learning the Laravel framework through the creation of a complete, modern application.
Budżetownik allows you to easily manage your finances — add and browse transactions, create custom categories with colors, filter data, and track key indicators on the main dashboard.
The app provides monthly income–expense summaries and visualizes data using interactive charts (Chart.js). Category colors are automatically reflected on charts, keeping the visual layer consistent and clear.
Users can freely filter data by period, category or transaction type, use search and sorting, and easily edit or delete entries. The system supports both manual transactions and those imported from external sources.
The backend is built with Laravel using Eloquent ORM, REST controllers and form requests with validation. The view layer is based on Blade and Tailwind CSS (utility-first), with assets compiled via Vite.
The application was designed for simplicity and clarity — the interface is lightweight, modern and prepared for further expansion, such as monthly budget planning, advanced analytics or integrations with additional banking services.
Authentication and registration are handled by Laravel Breeze. A consistent layout and ergonomic UI components ensure the user can manage finances quickly and intuitively.
Take a look inside the application
Application login screen
Budżetownik integrates with my MockBank API, from which it retrieves bank transactions. Simply provide the Owner identifier (email / prefix / ObjectId), and the app fetches data using a global API key.
The system distinguishes the source of each operation (Bank / Manual) and applies auto-categorization based on rules and presets. If a description does not match known categories, the transaction goes to the Uncategorized section, from where the user can easily assign it.
Ideas for future development: