AI prompts
base on "Sossoldi" is a wealth management / personal finance / Net Worth tracking app, made with Flutter. <div align="center">
<img src="./assets/iosicon.png" width="100" alt="Sossoldi icon">
# Sossoldi
**Wealth management app**
[](https://discord.com/invite/PcaUZnvPzS)
[](#Contributing)
[](https://opensource.org/licenses/MIT)
<div align="center">
<a href="https://ios.sossoldi.com">
<img src="./docs/assets/app-store-badge.svg" height="50" alt="Download on the App Store">
</a>
<a href="https://android.sossoldi.com">
<img src="./docs/assets/google-play-badge.png" height="50" alt="Get it on Google Play">
</a>
</div>
# Sossoldi (Wealth management app)
**Sossoldi** is a free and open source wealth management / personal finance / Net Worth tracking app, made with Flutter.
<div align="center">
<img src="./assets/sossoldi project cover.jpg" width="1000" alt="Sossoldi icon">
</div>
</div>
## â What problem we are solving & why
[Mr. Rip](https://retireinprogress.com/) is a blogger that has a [spreadsheet](https://docs.google.com/spreadsheets/d/1ilL6rBdzIQ6yRotqOKLUKI7KXFxu5_cZ5FQgdYTSHJk/edit#gid=138629885) in which he tracks his net worth. Sossoldi is a Mobile + Desktop app that aims at replacing that spreadsheet and make it easier for everyone to track their net worth even if they are not as skilled with Google Sheets or Excel.
The app is being developed using the [Flutter](https://docs.flutter.dev/get-started/install) framework which makes it possible to have one codebase for different platforms (Android, iOS, Windows, macOS, Linux). We are currently working on a beta which hopefully will be out soon.
## This app is for you if you want to...
- ð track your net worth
- ðļ track your expenses to better understand where you are spending your money
- ð keep track of your investments
- ðŠĶ keep everything in one place like Mr. Rip
What features do we want to implement?
- ðļ Track expenses (even recurrent ones)
- ðĶ Track different bank accounts
- ð Graphs, statistics and reports
- ðŧ All data are stored locally (with the option to share it in different platforms)
- ð Track investments: Stocks, Bonds, Crypto, Private equity
- ðķ Track taxes
- ðī Net worth on different currencies
- âïļ Import/export data
- ð Link bank accounts that support the OpenBanking PSD2 API
- ðĪ Advanced onboarding
<div align="center">
<img src="./assets/Sossoldi-portfolio-card-image.png" width="500" alt="Sossoldi icon">
</div>
## Phase 1 (Ongoing)
We will not build the complete app all at once. We will start from the basic features and then we will move onto the others.
Phase 1 will be completed when the following features will be ready:
- ðļ Expenses (even recurrent ones) tracker
- ðĪ Income tracker
- âïļ Bank accounts balance (without the use of API)
- ð Basic stats
- ðą Data stored only locally
The pages that will be implemented are:
- Dashboard
- Movements page
- Basic settings
- Basic onboarding
## Contributing
If you want to help with this project you are more than welcome! Sossoldi is completely free and open source, the best place to start is from the issue tab and look for something that seems interesting to you. If you are unsure on where to start feel free to reach out to us on [Discord](https://discord.sossoldi.com), we will be more than happy to help you find what's best for you!
Also, you can refer to internal docs:
- [Setup Guide](https://rip-comm.github.io/sossoldi/setup/setup.html)
- [PR Guide](https://rip-comm.github.io/sossoldi/contributing/PR-guide.html)
### Useful links to get started
- [Github Repo](https://github.com/RIP-Comm/sossoldi)
- [Discord](https://discord.sossoldi.com)
- [Design file](https://www.figma.com/file/6NyY9yqunpbU7HIkbNEAL3/Sossoldi-App?node-id=0%3A1)
- [UX Research](https://www.federicopozzato.it/portfolio/sossoldi-personal-finance-app)
- [Information architecture](https://www.figma.com/file/xjVHAaHznRW1OFAJvp8DXn/Sossoldi-App---Figjam?node-id=0%3A1)
- [Interface study](https://www.notion.so/Sossoldi-Personal-finance-app-dd37eb9cbb2c44e59dd74f85e843e865)
#### New to Flutter? Here are some good (and free!) resources:
- [FreeCodeCampCourses](https://www.youtube.com/c/Freecodecamp/search?query=flutter)
- [Flutter Documentation](https://docs.flutter.dev/#new-to-flutter)
- [Flutter for beginners](https://www.youtube.com/playlist?list=PL4cUxeGkcC9jLYyp2Aoh6hcWuxFDX6PBJ)
- [Flutter course in italian](https://www.youtube.com/channel/UCYhryp9JC06XRKQUQsLZlfQ)
", Assign "at most 3 tags" to the expected json: {"id":"13140","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"