【⭐⭐⭐⭐⭐】FullStack-BigData-App-Pokemoney
Pokemoney is a personal finance app supporting offline and online modes with multi-device synchronization. Built with Flutter and SQLite on the frontend, and a robust backend stack, it enables scalable, distributed data processing.
The system is built on a modern lakehouse architecture with a microservice-based real-time data pipeline, combining Kafka, Spark, HDFS, Hive, and NiFi for scalable data ingestion, processing, and warehousing. It also integrates a polyglot backend with Redis, MySQL, and HBase, orchestrated via Dubbo, Nacos, and Docker, supporting Dubbo, Triple(gRPC like), RESTful and GraphQL APIs.
Due to the budge limit, I bought two small servers and my own laptop to deploy the services separately.
代码链接
项目介绍
Pokemoney = poke + money = pocket + money = 宝可梦 :)
An accounting software that supports both offline and online modes, as well as multi-device login. Each device can switch between accounts, create multiple funding sources, different ledgers, and categorized directories.
The backend supports a large number of users, can be deployed via Docker, connects to a big data platform, and allows the creation of a personal data warehouse.
可离线+联网并且多设备登录的记账软件,一个设备可切换账户,创建多个资金源和不同账本以及不同目录。
后台支持大量用户,同时docker搭建并连接大数据平台,以及创建自己的数据仓库。
项目图片
技术栈
- APP:Flutter + sqlite
- 后端:
- (deprecated) SpringCloud + Eureka + SpringCloudGateway
- Dynamic Thread Pool (线程池)
- Dubbo
- Nacos
- Higress
- Redis cluster
- MySQL cluster + Shardingsphere
- Sharding
- Read/Write Splitting
- Zookeeper (分布式锁)
- Leaf (美团分布式ID基于Snowflake)
- 大数据平台使用到:
- Kafka
- Hadoop
- HBase
- Hive
- Spark
- Nifi
- Doris
- 部署:Docker
- 语言:java
- Protocal:
- RESTful
- GraphQL
- Triple (Dubbo)
- gRPC
难点
- 有限时间内迅速上手并使用每个技术 / Quickly learn and utilize each technology within a limited timeframe
- docker部署自己的大数据平台 / Deploy your own big data platform using Docker
- 项目可离线加联网并且多设备登录的同步方式 / Implement synchronization for offline and online modes with multi-device login support
- 其他常规:分布式锁,异步,kafka消息队列 / Other common components: distributed locking, asynchronous processing, Kafka message queue
手机端 flutter
后端架构
- v1: SpringClould + Eureka + SpringCloudGateway
- v2: Dubbo + Nacos + SpringCloudGateway
- v3: Dubbo + Nacos + Higress