Building a Mint clone
Tags: api, cloud, webapp, mobile
Published: 2023-06-18 00:56:11

For a while I've been thinking about challenging myself to build a really big system. 

A system that's production ready, that scales both horizontally and vertically.

A system that's built using an event-driven and distributed system architecture that leverages microservices.

A system that can be consume on desktop, mobile and browser platforms. 

A system that uses artificial intelligence and machine learning.

A system that uses DevOps principles and tools to run test automation, execute builds and deployments and provide operation monitoring perform automated testing, execute builds and deployments and provide system monitoring. 

A system that I perform the entire software development lifecycle process, from developing mockups, defining requirements, creating the system design down to providing a support documentation. 

And.....Create something that I would be proud of.....

So over these next couple of months I’m going to learn all everything I listed above and build a Mint clone which I will call **Zidan**.

Let me tell you why.....


For years I’ve been managing my family bills, budgets and spending through excel and the #Mint app. I used #Excel to track bills and create budgets and then I used #Mint to tracking personal spending. 

Using #Excel and #Mint got the job done, but it came with its own headaches. With #Mint I hated having to periodically re-enter my bank credentials to view spending between my accounts and with #Excel I had a hard time with formatting, developing charts and at times the software would crash on my MacBook Pro. Eventually I had enough !!! I needed something that combines all the features that I used in both #Excel and #Mint into one single app. So I made the decision to build my own app. 

What is **Zidan**? It means (at least one version) "growth and progress". 

**Zidan** will manage my cash flow, expenses, spending, revenue and provide insights into my finances so I can better manage my money. I'm also creating this app to expand my skill set as well :)


For a while I've been looking for a project where I can leverage tools such as  ElasticSearch, Python, Docker, Kubernetes, Lindoe, Flutter, MySQL, GitHub and AI. Plus I've always wanted to challenge myself to do the planning and building of large scale system. 

So I'm going to commit myself to building **Zidan** using the technologies I listed above in hope to learn something new and to build something I would be proud of.


![Zidan Main Screen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwqgjcslenao8moxmbgr.jpg)

The Zidan app will be built upon these several key system components:

 
![High Level System Design](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vv4mwjlr1rxe4kd94gn.jpeg)
**STORAGE**

- An application database that stores user profiles and application specific data.

- A secured file share to store user profile images and end user documentation.

- An monitoring database for collecting performance metrics, event data and more from each of the several system components.

- A message queue will be used by APIs to retrieve and save application data.

- Redis will be used for data caching and improving application responsiveness. 

**API**
A single API that will provide endpoints to manage data between all the system components.

**FRONT END**
The Zidan app can will be provide a desktop, mobile and web apps.

This is going to be a big project but I'm committed and I look forward to learning something new. 

Another part of this "journey" that I wanted to do is to blog the entire process. So I'm going to share with you all my thoughts, obstacles, battles, struggles, failures and successes that I will face. 

So I encourage you to follow along.

And Please.....Feel free to ask any questions and\or provide your comments. All questions and comments are greatly appreciated. 


Let's get started.