Code Monkey home page Code Monkey logo

flow's Introduction

Flow

Flow is a budget planning application designed to empower users with the ability to track, analyze, and optimize their spending habits and financial goals.

With a user-friendly CLI. It manages the finances and achieve greater financial stability by leveraging different payment APIs for a comprehensive financial management solution.

Table of Contents

Documentation

To know about the application in detail, you can visit the docs to understand the application in a better way.

What You Need?

To get started in flow, you need to have two applications installed on your machine.

  1. Golang
  2. Cobra Framework
  3. Docker
  4. PostgreSQL
  5. Alchemy API URL
  6. Wallet Private key

How to get Alchemy API URL?

Signup to Alchemy, go to it's dashboad and the app section. Create a new app. If the new app is not allowed to create, then select the existing app, go to the network tab of the app and take the Ethereum Seplia API URL.

Installation

You can install the application in your local machine using the following command:

go install github.com/ibilalkayy/flow@latest

Verify the installation through the following command:

flow --version

This will display the installed flow version.

Commands

Flow provides a variety of commands for managing the budget. Below are some key commands:

To use the application, simply run the flow command followed by one of the following subcommands:

  • budget: Makes the budget planning

Each subcommand has its own set of options and arguments. Here are some examples of how to use the application:

# Initialize the application
flow init -n username -g gmail-id -a app-password -o postgresql-host -p 5432 -u postgresql-user -w postgresql-password -d postgresql-dbname -s sslmode -k privatekey -i alchemy-url

# Create a budget
flow budget create --category groceries/utilities --amount 300

# View the budget info
flow budget view

Cloning

Clone the repository:

git clone https://github.com/ibilalkayy/flow.git

Navigate to the project directory:

cd flow

Create a .env file to put all your PostgresSQL credentials.

Run the App

There are two ways through which you can run this clonned application.

  1. Write the SCRIPT_PATH in the ~/.bashrc file, build and install the flow binary through Golang:

    nano ~/.bashrc
    export SCRIPT_PATH="/file/path/in/which/script.sh/is/present"
    source ~/.bashrc
    go build
    go install
  2. Use the docker command to run it:

    docker compose up -d
    1. docker exec -it flow-app-1 ./flow budget create
    2. docker exec -it flow-app-1 ./flow budget view
    ...

Contributing

We welcome contributions! If you have ideas for new features, find a bug, or want to improve documentation, feel free to open an issue or submit a pull request. Please follow our Contribution Guidelines for a smooth collaboration.

License

Flow is licensed under the Apache-2.0 License. Feel free to use, modify, and distribute the code as per the license terms.

flow's People

Contributors

ibilalkayy avatar

Stargazers

Vineed Kaladharan avatar Jhoni Pereira avatar ASAD HAMEED avatar  avatar PRATHEESH PC avatar sai vamshi avatar Jisan Mia avatar Bruno Gomes avatar Kurian Benoy avatar Muhammad Abdullah Qureshi avatar Muhammad Muneeb avatar Rahil Vahora avatar Tanvir Bhuiyan avatar Md. Fazley Rabbi avatar

Watchers

 avatar  avatar

flow's Issues

Add sslmode in the postgres connection string

connectionString := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s", v.Host, v.Port, v.User, v.Password, v.DBName)

In the above postgres connection string sslmode is not mentioned. By default sslmode take the require parameter which is not good for local development purpose.
Ref: https://pkg.go.dev/github.com/lib/pq#hdr-Connection_String_Parameters

We should set that as sslmode=disable in .env file and if it is in production we can set different value.

Remove relative path

data, err := budget_db.Table("../../db/budget_db/migrations/001_create_budget_table.sql", 0)

No need to mention the relative path here in the above code because that has been already mentioned inside the function definition:

query, err := os.ReadFile("db/budget_db/migrations/" + filename)

Advise is to remove from flow/internal/app/budget/budget.go file and find an appropriate way to put the relative paths of the file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.