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 1 month ago

leonardohscastilho commented 1 month 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 1 month 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