in-fin-neat / in-fin-neat-core

Personal Finances tool
1 stars 0 forks source link

Configure user bank accounts in the cloud app #38

Open leonardohscastilho opened 6 months ago

leonardohscastilho commented 6 months ago

User Story

As a cloud infineat user, I need to be able to configure my bank account details, so that other future infineat cloud functionalities can access it, as well as my current python cli can use it.

Acceptance Criteria

  1. Browser page for user login, where the user can identify itself.
  2. Browser page to configure bank accounts.
  3. Python cli for getting the user bank account configuration from the cloud.

Tech Tasks

  1. User API tasks:
    1. User API specification and documentation
    2. User API CDK infrastructure
    3. User API login endpoint
    4. User API bank configuration endpoint
  2. Front end Tasks:
    1. New repository with frontend project (I'm leaning to use React as a framework).
    2. CDK modifications including resources that will serve the front end project.
    3. Implement the User API client in Typescript (in the newly created repo)
    4. Implement front end login page
    5. Implement front end configuration page (only with bank account configuration options for now)
  3. Python CLI Tasks:
    1. Implement the User API client in Python
    2. Switch current python commands to fetch bank configurations from the cloud rather than from the local machine (only fetch_transactions use these at the moment)

Task blockers graph

user_delivery_blockers

user_initiation_blockers

diegotsutsumi commented 6 months ago

Previous Description:

This feature intends to generate this token based on a simple authentication method and provide a way to validate the generated token. 

This feature should be implemented considering the following acceptance criteria points:

- The authentication method could be the simple Baerer user and password from the HTTP protocol since we are running under TLS. 
- The password received should match the hash and salt saved on the user table. For it, bcrypt must be used.
- If the password matches, a jwt token should be generated and returned to the user.
- A function to validate if the token should be implemented as well.
- Unit test for all the implementation 
diegotsutsumi commented 2 months ago

We're missing the implementation of bank configuration API, the CDK was done here: https://github.com/in-fin-neat/in-fin-neat-cdk/pull/7 , it tells the IBAN is expected as a parameter of the endpoint

diegotsutsumi commented 2 months ago

Bank config page in the UI was implemented here: https://github.com/in-fin-neat/infineat-ui/pull/2/

diegotsutsumi commented 2 months ago

We are missing 1.iv, 3.i and 3.ii