Skip to content

Latest commit

 

History

History
99 lines (70 loc) · 2.88 KB

README.md

File metadata and controls

99 lines (70 loc) · 2.88 KB

Koala

Python 3.8+ PyPI license

Table of Contents

Overview

Koala is a comprehensive solution for managing your expenses. It provides a Command Line Interface (CLI) for creating and importing expenses. The application is built using Python and follows the Clean Architecture principles.

Architecture

The application is structured based on the Clean Architecture pattern. It is divided into the following layers:

  • Entities: Contains the business objects of the application.
  • Use Cases: Contains application-specific business rules.
  • Interfaces: Contains interface definitions for the adapters.
  • Adapters: Contains the code to connect the application to external concerns.
  • Entrypoints: Contains the entry points to the application (CLI in this case).

Installation

To install the application, follow these steps:

  1. Clone the repository:

    git clone https://github.com/AlexandreSenpai/koala.git
  2. Navigate to the project directory:

    cd koala
  3. Install the required packages:

    pip install -r requirements.txt

Usage

Create Expense

To create an expense, run the following command:

python main.py create-expense

Follow the prompts to enter the expense details.

Import Expenses

To import expenses from a PDF, run the following command:

python main.py import-expenses

Follow the prompts to select the PDF and confirm the expenses to be imported.

Supported Banks for PDF Import

The application currently supports importing expenses from credit card statements in PDF format from the following banks:

  • Nubank
  • C6 Bank

Code Structure

  • application/: Contains use cases and parsers.
  • domain/: Contains domain entities and business logic.
  • infra/: Contains all the adapters like database and CLI.
  • main.py: Entry point for the CLI.

Testing

To run tests, execute the following command:

pytest

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

License

The project is licensed under the MIT license. See LICENSE for details.

Feel free to copy and use it for your project! For more details, please refer to the code documentation and comments. Feel free to raise an issue for any clarifications.