- The application allows users to add, edit, and delete their expenses and income as needed, making it easy to manage their finances in one place.
- The application also provides users with a clear view of their financial transactions, displaying a summary of their income and expenses for each month and year, in addition to that it's calculate saving amount, This feature allows users to quickly evaluate their financial performance and make informed decisions about their spending habits.
I've used:
- Laravel 10,
- Laravel Sanctum,
- Traits, Enums, Resources,
- Handle API versioning to enable scalability easily for the project in the future,
- DTO & Service Layer: I utilized the Data Transfer Object (DTO) pattern in my implementation, helped me to separate my model from the controller layer and allowed me to pass data between my application's various components in a structured format. Additionally, I implemented a Service Layer to encapsulate the business logic, which further enhanced the application's scalability and maintainability.
GET /api/v1/categories
Name | Location | Type | Required | Description |
---|---|---|---|---|
items_per_page | query | string | no | Cutomize results for pagination |
POST /api/v1/categories
Name | Location | Type | Required | Description |
---|---|---|---|---|
name | body | string | yes | none |
description | body | string | yes | none |
type | body | string | yes | income , expense |
GET /api/v1/categories/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
GET /api/v1/categories/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
POST /api/v1/categories/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
name | body | string | yes | none |
description | body | string | yes | none |
type | body | string | yes | income , expense |
_method | body | string | yes | PUT |
DELETE /api/v1/categories/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
GET /api/v1/transactions
Name | Location | Type | Required | Description |
---|---|---|---|---|
items_per_page | query | string | no | none |
POST /api/v1/transactions
Name | Location | Type | Required | Description |
---|---|---|---|---|
amount | body | string | yes | none |
description | body | string | yes | none |
category_id | body | string | yes | none |
date | body | date | yes | format: Y-m-d |
GET /api/v1/transactions/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
GET /api/v1/transactions/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
POST /api/v1/transactions/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
amount | body | string | yes | none |
description | body | string | yes | none |
category_id | body | string | yes | none |
date | body | date | yes | format: Y-m-d |
_method | body | string | yes | PUT |
DELETE /api/v1/transactions/{id}
Name | Location | Type | Required | Description |
---|---|---|---|---|
id | path | string | yes | none |
GET /api/v1/transactions/statistics
Name | Location | Type | Required | Description |
---|---|---|---|---|
items_per_page | query | string | no | none |
I am a Junior Backend Developer with 1+ year of experience, I specialize in PHP, Laravel, and front-end technologies like TailwindCSS and Livewire. I have expertise in developing REST APIs and working with MySQL databases, and I am familiar with software architecture patterns such as MVC and HMVC. I am committed to producing clean, well-documented code that is easily maintainable, and I enjoy sharing my knowledge through various channels. I am eager to take on new challenges and continue to develop my skills.