Giter Club home page Giter Club logo

finnish's Introduction

Finnish

Your Financial Manager of the future

🏞️ Overview

Finnish is your finn-man (financial manager) for the 21st century. Gone are the days of using insecure, laggy and undeveloped pieces of software.

The purpose of Finnish is to use the banking institution's public API's, as well as the brazilian open finance API to securely and automatically retrieve your expenses, savings and income information from all of your banks, centralizing your financial information and helping you better organize your life.

This way, you're on top of your financials and can make better decisions of how to manage your hard-earned money.

Sign up in: finnish

⚠️ Finnish is still in beta and will have a 0.2 launch soon:

🦺 Security and 💻 Software

Finnish is written in Rust, with Axum + HTMX, and uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

Current security status:

  • Basic stuff: redacted password in inputs, completion from browser
  • Password strengh validation and enforcement, encryption with Argon2
  • Expiring sessions
  • Email confirmation
  • Secure Multi-Factor Authentication (no SMS or email)
  • Captcha and Rate limiting
  • HTTP sec headers
  • CSP
  • MFA sessions and management

Current financial features status:

  • Basic expenses managing (manual insert, editing and removal)
  • Plotting of expenses in period
  • Automatic retrieval of expenses from banking institutions
  • Basic income managing
  • Basic savings managing
  • Automatic retrieval of income and savings from banking instutions

Disclosure: Finnish was born as a software product and will continue to prioritize the experience of using a good software, before the features of a financial product. This means that the Finnish Team will always put security and functional updates, before adding idk, a new plot in the expenses or income page.

⚗️ Contributing

Install pre-commit

curl -LO https://github.com/pre-commit/pre-commit/releases/download/v3.7.0/pre-commit-3.7.0.pyz
python pre-commit-3.7.0.pyz install

finnish's People

Contributors

dependabot[bot] avatar nicolasauler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

finnish's Issues

sec: make timings consistent when user enumerations would be possible through timing attacks

As stated in #60 :
To make the application secure, we need to avoid user enumeration, this PR starts the effort, we need:

This issue should implement the consistent timings when user exists and when they don't.

feat: auth - Add 2FA

After basic authentication implemented, add a 2 Factor Authentication method
I don't really know how hard this will be, but well...

feat: add captcha

Thinking of spam prevention / security issues, captcha would be a good addition.

sec: add rate limiting to public endpoints and more vulnerable endpoints

As said in #60 :
To make the application secure, we need to avoid user enumeration, this PR starts the effort, we need:

This issue is implementing the rate limiting

feat: Add Data API functions

Data API has been disprioritized in favor of Hypermedia API.
That means that a lot of functions are currently missing, like:

  • Get expenses with filter
  • Update expenses
  • Delete expenses

fix: QR code and MFA screen being shown inside of sign in tab.

After #48 , 2fa setup screen was created.
However, I couldn't get it to work in htmx (hx-target to an id further than the direct parent was causing breakage in the error return with hx-target-error and the message div) to overwrite the entire article tag.
So it is buggy, inside of a sign_in tab.

Also, show top nav bar with logout in pseudo-user.
⚠️
Also: maybe it's buggy if user is logged in, then closes (in the qr code page) and opens app (by going to root). Where will he be?
⚠️

feat: maybe add password suggestions? idk

Add user authentication

Currently, there is no concept of user in the app, nor authentication.
However, we need to segregate what expenses belong to each user, since the data which will be displayed is sensitive and should be secured.

feat: add user email confirmation for sign up

Audit: pentest the application (sec) and QA

Before launching of working version 0.2, assess security aspects of it, with auth + 2FA, etc.

Pentest

Test spamming with captcha

Also test sec headers
Test with static and dynamic code analysis
Mirai and miri

audit: add user_id to requests log in tracing

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.