Skip to content

daniel-leal/solomon-api

Repository files navigation

🤑 Solomon

Build Status Coverage Status

Solomon is a personal finance application designed to help you manage your finances effectively.

📚 Documentation

The /docs folder contains detailed documentation about the different aspects of the project.

Transaction Definition and Rules

A transaction in Solomon represents a single instance of money exchange. It could be income, expense, or transfer. For a detailed explanation of the definition and rules of a transaction, please refer to the Transaction Documentation.

For more details about other aspects of the project, please refer to the /docs folder.

🚀 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

🗒️ Prerequisites

  • 🐍 Python 3.11
  • 🐳 Docker / Docker Compose
  • 🐘 PostgresSQL 12.1

🐳 Running the Project Locally with docker

  1. Clone the repository:
git clone https://github.com/daniel-leal/solomon-api
  1. Naviagate to the project directory
cd solomon-api
  1. Build the docker
make docker-build
  1. Run the docker application
make docker-up

🐍 If you want to run locally:

  1. Create virtual env
python -m venv .venv
  1. Activate virtual env
source .venv/bin/activate
  1. Run the application
make run-local

The application will be available at (http://localhost:8000).

✅ Running the Tests

To run the tests, use the following command:

make test

To generate a coverage report use the following command:

make test-coverage

⚙️ Migrations

  • Running migrations
make migrate
  • Create migration
make migration name="<name of migration>"
  • Rollback latest migration
make rollback

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process of submitting pull requests to us.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

Personal Finance Application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages