Dompet
Dompet is a personal bookkeeping web application, built with Laravel 5.
Objective
Easy bookkeeping for personal income and spending (amount of money).
Concept
To aquire our objective, we need this features on the application:
- User can register.
- User can see transaction history by date of their own.
- User add transactions for income and spending.
- User can categorize the transaction.
- User can see transaction summary on each month or a year.
-
sign on numbers indicates spending/outcome transaction.
Those are basic concept of the personal bookkeeping service.
Getting Started
This application can be installed on local server and online server with these specifications :
Server Requirements
- PHP >=7.3 (and meet Laravel 8.x server requirements),
- MySQL or MariaDB database,
- SQlite (for automated testing).
Installation Steps
- Clone the repo :
git clone https://github.com/nafiesl/dompet.git
$ cd dompet
$ composer install
$ cp .env.example .env
$ php artisan key:generate
- Create new MySQL database for this application
(with simple command:$ mysqladmin -urootuser -p create dompet_db
) - Set database credentials on
.env
file $ php artisan migrate
$ php artisan serve
- Register new account.
Laravel Passport Setup for REST API
- Run
php artisan passport:install
, we will get this output.
Encryption keys generated successfully.
Personal access client created successfully.
Client ID: 1
Client secret: XQIkbQxxxxxasQHt9YU
Password grant client created successfully.
Client ID: 2
Client secret: IWzI2DvXDxxxxb1kIH
- Set the
Password grant client
on our.env
.
PASSPORT_CLIENT_ID=2
PASSPORT_CLIENT_SECRET=IWzI2DvXDxxxxb1kIH
- Run the web server
php artisan serve
.
Starting Laravel development server: http://127.0.0.1:8000
- Login to the API endpoint using our REST API client (like Postman).
curl -X POST \
http://127.0.0.1:8000/api/auth/login \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"email": "[email protected]",
"password": "password"
}'
- We will get this response:
{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "eyJ0eXAiOxxxx2XJEbA",
"refresh_token": "def5020xxxx58b21"
}
- Use the
access_token
value as the bearer authorization header.
curl -X GET \
http://127.0.0.1:8000/api/transactions?year=2018&month=09 \
-H 'Accept: application/json' \
-H 'Authorization: Bearer eyJ0eXAiOxxxx2XJEbA'
Response:
{
"data": [],
"stats": {
"start_balance": "0.00",
"income_total": "0.00",
"spending_total": "0.00",
"difference": "0.00",
"end_balance": "0.00"
}
}
Contributing
If you are considering to contribute to this repo. It is really nice.
- Submit Issue if you found any errors or bugs or if you want to propose new feature.
- Pull Request for bugfix, typo on labels, or new feature.
Screenshots
Transaction List on a Month
Transaction List on Selected Date
Transaction Summary Report
License
Dompet project is a free and open-sourced software under MIT License.