├── data └── .gitkeep ├── docs └── .gitkeep ├── backend ├── src │ ├── models │ │ └── .gitkeep │ ├── routes │ │ ├── tokenRoutes.js │ │ ├── autoSyncRoutes.js │ │ └── billRoutes.js │ ├── database │ │ ├── init.js │ │ ├── connection.js │ │ ├── README.md │ │ ├── models │ │ │ ├── Token.js │ │ │ ├── MembershipTierLimit.js │ │ │ ├── AutoSyncConfig.js │ │ │ └── SyncHistory.js │ │ └── schema.sql │ ├── middleware │ │ └── auth.js │ ├── controllers │ │ ├── tokenController.js │ │ ├── autoSyncController.js │ │ └── billController.js │ ├── index.js │ ├── services │ │ ├── autoSyncService.js │ │ └── apiService.js │ └── utils │ │ └── dataTransform.js ├── .env.example └── package.json ├── frontend ├── src │ ├── utils │ │ └── .gitkeep │ ├── components │ │ ├── .gitkeep │ │ ├── StatCardVertical.vue │ │ ├── ProductBarEChart.vue │ │ ├── ProductPieChart.vue │ │ ├── HourlyChart.vue │ │ ├── HourlyEChart.vue │ │ └── ProductPieEChart.vue │ ├── main.js │ ├── router │ │ └── index.js │ ├── api │ │ └── index.js │ ├── composables │ │ └── useApiCall.js │ ├── App.vue │ └── views │ │ ├── Settings.vue │ │ └── Onboarding.vue ├── index.html ├── vite.config.js └── package.json ├── .gitignore ├── stop.sh ├── docker-compose.yml ├── docker-compose.dev.yml ├── .dockerignore ├── LICENSE ├── docker-start.sh ├── Dockerfile ├── start.sh ├── docker-entrypoint.sh ├── DOCKER_PERMISSIONS.md ├── DOCKER.md ├── CLAUDE.md ├── nginx.conf ├── README.md └── docker-build.sh /data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/src/models/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/utils/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/src/components/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /backend/.env.example: -------------------------------------------------------------------------------- 1 | # 数据库配置 2 | DB_PATH=./data/expense_bills.db 3 | 4 | # API配置 5 | BIGMODEL_API_URL=https://bigmodel.cn/api/finance/expenseBill/expenseBillList 6 | 7 | # 服务器配置 8 | PORT=7965 9 | -------------------------------------------------------------------------------- /frontend/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |