Opens Source AGPL license project. Your Finances in One Place Set unlimited daily, weekly, monthly, or one-time budgets See every transaction, categorized automatically with tags or categories.
The Budget Control V3.0 is designed using a microservice architecture, which allows for better scalability, flexibility, and maintainability of the application. The application is divided into multiple independent budgetcontrol, each responsible for a specific functionality.
- php version >= 8.2
- Docker version 27.0.3
- node version v20.8.0
Install the Task tool on your local machine to access useful commands. For instance, running 'task install' will set up the necessary environment infrastructure. Official guide
Before install modify your etc host adding the following domain ( nano /etc/hosts ---> 127.0.0.1 dev.app.budgetcontrol.lan ) copy .env.example to .env
- run ./install.sh
- enjoy
- clone Front End application ( git clone git@github.com:BudgetControl/Pwa.git )
- lunch docker compose ( docker-compose up -d )
Go to https://dev.app.budgetcontrol.lan or your desidered domain and enjoy the application
- Core: The backbone of the application, managing essential functionalities and providing the foundational budgetcontrol that other microbudgetcontrol rely on.
- Entries: Handles the creation, modification, and management of financial entries, such as income and expenses.
- Wallets: Manages different wallets or accounts, allowing users to track balances and transactions across multiple financial sources.
- Budgets: Provides tools for creating and maintaining budgets, helping users plan and control their spending.
- CommandJob: Manages background jobs and scheduled tasks, ensuring that operations like data synchronization and periodic updates run smoothly.
- SearchEngine: Powers the search functionality within the application, enabling users to quickly find transactions, entries, and other data.
- Stats: Generates and displays statistical data and reports, providing users with insights into their financial activities and trends.
- Workspace: Organizes user activities and projects within the application, offering a structured environment for managing finances.
- Authentication: Handles user authentication and authorization, ensuring secure access to the application.
- Labels: Manages labels and tags, allowing users to categorize and organize their financial data more effectively.
You can set-up xdebug interactive debuging mode
- configure your IDE for every microservice
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/workdir": "${workspaceRoot}",
}
}
Some utils for development
- Create docker multi platform docker buildx build --platform linux/amd64,linux/arm64 -t mlabfactory/php8-apache:v1.4.1 --push .
- docker run --rm -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e FTP_USER_NAME=user -e FTP_USER_PASS=12345 -e FTP_USER_HOME=/home/user stilliard/pure-ftpd
-
docker run --platform linux/amd64 -d -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=user -e FTP_PASS=12345 -e PASV_ADDRESS=127.0.0.1 -e PASV_MIN_PORT=21100 -e PASV_MAX_PORT=21110 --name ftpd_server fauria/vsftpd
-
docker network connect [budgetcontrol_network] ftpd_server
You can use an fake mailhog server
- docker run --rm -d --name mailhog -p 8025:8025 -p 1025:1025 mailhog/mailhog
- docker network connect [budgetcontrol_network] mailhog
- openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
- Marco De Felice
- Marco De Felice - Developer marcodefelice.it
- Martina Manca - Brand Strategist martinamanca.com
We welcome contributions to Budget Control please refer to the contribution guide in the project documentation for more information on how to contribute.
Please support US with a coffe donation at the following link open collective
If you discover any security vulnerabilities in Budget Control please report them to the project team immediately. We take security seriously and will address any vulnerabilities promptly.
Budget Control is open-source software licensed under the AGPL license.