
CoinFac
Having a good financial balance must always be the objective, often the ability to accumulate wealth and be financially successful is not just about capital gain, but the ability to save money. The following article talks about a project that I started a few years ago, it is called CoinFac, and is nothing more than an application used to make capital accumulation transparent and easy.
CoinFac emerged as open source around 2018, at first it was just an object of study, then it evolved into a more complete project. Since 2015 I used to have a financial spreadsheet that I used in Apple's Numbers, since then I renewed the spreadsheet, removing what was useful and what was not, in fact I was never one of those people who write down all expenses day by day, in fact, time is the most valuable thing. That was why in 2019, my financial spreadsheet was reduced to a few tables, that was good because it kept me filling in the values and not falling into the laziness trap.
Spreadsheet 2017 vs 2019
Even before 2019, my spreadsheets were complete and complex, it took me a few minutes, sometimes even hours to fill in all the expenses and update the graphics, it was all very cool, but it didn't take long for me to realize that I was using only 30% of the spreadsheet.
I had tested several financial applications, paid a few annual subscriptions, but none seemed to represent what I wanted, something simple, easy, and that didn't take me too long, after all, I have no problem saying that I was always lazy in using these apps , but I didn't want to lose control of how much I had TODAY. That's why CoinFac came about:

The software
CoinFac is the result of years of using spreadsheets. All the simple features that I wanted in a financial application I put in CoinFac, making the main objective of the software:
- Be simple
- Help save money
- Clearly report my assets
Functionalities
Accounts / Synchronization
CoinFac uses Auth0 to log in to the application, this means that to log in, just sign up as shown below or else, simply use the Google account to access the application, an advantage of using the Google account is that all data will be already informed and CoinFac will use your Google photo as an Avatar 🙂
It is important to note that CoinFac uses graphics on almost all screens, they facilitate understanding and provide a dopamine feedback effect. It's cool to see the lines going up, and even cooler to see that the software is thinking for you, in some sessions CoinFac says which accounts have the most money, which accounts you need to pay more attention to, and what your economic level is. There is always a psychology behind the data. 💆🏻♂️

Once the user is authenticated, the menu must appear with the following options:

- Accounts
Accounts represent one of CoinFac's most important information. Unlike most financial applications, at CoinFac, account registration should become a habit, but what is account registration? Accounts are all resources where you keep money, it can be a salary account, a financial application or simply a wallet. Account registrations must be made at the same time, if three accounts are registered with CoinFac, the registrations must be made for all three accounts at the same time, obliging the registrations in this way will make you keep in mind how much money you saved in each account.
- Incomes
In this session are informed all resources where money is received, it can be a company name, where a salary is deposited. Why is it important to know your earnings clearly? Because it becomes easier to objectify your future, less capital coming in can be the opportunity for new challenges.
- Expenses
Here, the expenses are reported, such as paying a rent or installments of a car. Why not register everything, like an ice cream from the last week? This is what all apps do, as stated earlier, a lot of work will make you give up using the app, the focus will be on what is most important. Fixed Expenses.
- Foreign Currency
Many financial applications do not have a specific area for foreign resources. Here it is possible to monitor the price of the chosen currency, register capital and as in all other areas, monitor everything visually through the graphics.
- Predictions
In this session we present some latest news on two special areas: stocks and cryptocurrencies. and you can set up a visualization scheme.
- Blockchain
With the operation directly linked to the predictions function, this area is intended for the creation and management of a cryptocurrency portfolio.
Accounts
On the account page it is possible to have access to the two main features, the creation of new accounts and the creation of new records.
Creating new accounts:

Adding a new record:

Record contains indicators, if the current record is larger than the previous one, it is represented by the green arrow, otherwise the red arrow. The records on this screen were built using blockchain concepts, they are made available in blocks where the greatest emphasis is on the most recent record. In the example below it is possible to notice that two accounts are up while the others are down, needing more attention. The capacity for wealth is in the ability to save money, keeping as much account as possible in the green situation represents a good financial health.

It is also possible to edit and remove records, in the example below we will delete the records from NBC:

You could see some error messages during these recordings, many features were still incomplete, many minor bugs can be found 💀, especially in this small project from one developer 😄
Technology Stack
Operations
GitHub Actions help you automate your software development workflows in the same place you store code and collaborate on pull requests and issues.

Azure DevOps is a Microsoft product that provides version control, reporting, requirements management, project management, automated builds, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilitie



Architecture
Domain-Driven Design is an approach to software development that centers the development on programming a domain model that has a rich understanding of the processes and rules of a domain.
Keywords
Development