- User registration
- User login
- After registration user gets default categories
- Categories CRUD
- Transactions CRUD (every transaction has category and transaction can be income or expense)
- Transactions can be filtered by date, category, type (income or expense), min amount, max amount and when transaction will become active
- Transaction data aggregation endpoint with sum of income and expense transactions, number of income and expense transaction and balance. Endpoint can be filtered by date and categories
- Clone this repository
git clone https://github.com/tomopongrac/home-budget.git
cd
into the project directorycd home-budget
- Run
composer install
- Create .env.local file
touch .env.local
- Add
DATABASE_URL
to .env.local file - Run
php ./bin/console doctrine:database:create
- Run
php ./bin/console doctrine:migrations:migrate
- Since application use JWT for authentication, you need to generate public and private keys. Run
php ./bin/console lexik:jwt:generate-keypair
symfony server:start
symfony open:local
- open http:8000/api/doc
- Add
DATABASE_URL
to .env.test.local file - To create test database run
php ./bin/console doctrine:database:create --env=test
- To run tests run
php bin/phpunit
composer phpstan
composer cs-fixer-fix