Skip to content

0Yiyang/harmonyAccount

Repository files navigation

鸿蒙记账应用 - 升级版

项目概述

这是一个将鸿蒙3记账应用升级到鸿蒙5.0.5(17)版本,并将后端从鸿蒙原生数据库改为Node.js服务端的项目。

改造内容

1. 鸿蒙版本升级

  • 升级前: 鸿蒙3 (API 9)
  • 升级后: 鸿蒙5.0.5(17) (API 17)
  • 兼容版本: 鸿蒙5.0.0(12) (API 12)

2. 后端架构改造

  • 原架构: 鸿蒙原生关系型数据库 (RDB)
  • 新架构: Node.js + Express + SQLite RESTful API

项目结构

Accouting_ArkTS-master/
├── backend/                          # Node.js后端服务
│   ├── src/
│   │   ├── app.js                   # Express应用主文件
│   │   ├── server.js                # 服务器启动文件
│   │   ├── config/
│   │   │   └── database.js          # 数据库配置
│   │   ├── models/
│   │   │   └── AccountingInfo.js    # 记账信息数据模型
│   │   └── routes/
│   │       ├── accounting.js        # 记账API路由
│   │       ├── dayInfo.js          # 统计API路由
│   │       └── category.js         # 分类API路由
│   ├── package.json                 # 后端依赖配置
│   ├── .env.example                 # 环境变量模板
│   ├── start.sh                    # 启动脚本
│   └── README.md                   # 后端详细文档
├── entry/                           # 鸿蒙前端应用
│   ├── src/main/ets/
│   │   ├── common/
│   │   │   ├── api/                 # API服务类
│   │   │   │   ├── AccountingApi.ets
│   │   │   │   ├── DayInfoApi.ets
│   │   │   │   └── CategoryApi.ets
│   │   │   └── utils/
│   │   │       └── HttpUtil.ets    # HTTP请求工具类
│   │   └── Viewmodel/
│   │       ├── AccountingInfoApi.ets # 新的记账API适配器
│   │       └── DayInfoApi.ets       # 新的日统计API适配器
│   ├── build-profile.json5          # 构建配置(已升级,移除C++)
│   └── oh-package.json5             # 模块依赖(已升级,仅网络模块)
├── build-profile.json5               # 主构建配置(已升级)
├── oh-package.json5                  # 主依赖配置(已升级)
└── README.md                         # 本文档

🧹 清理说明

在改造过程中,已删除以下不再需要的文件和目录:

  • entry/src/main/cpp/ - C++原生代码目录
  • entry/src/main/ets/common/database/ - 鸿蒙原生数据库相关代码
  • 相关的构建配置和依赖项

✨ 保留的核心文件

  • 所有业务逻辑和数据模型
  • UI组件和页面
  • 新的网络API适配层
  • 配置文件(已升级版本)

技术栈

前端 (鸿蒙)

  • 框架: HarmonyOS 5.0.5(17)
  • 语言: ArkTS
  • API: Stage模式
  • 网络模块: @ohos.network.http

后端 (Node.js)

  • 运行环境: Node.js 18+
  • Web框架: Express.js 4.18.2
  • 数据库: SQLite3
  • 中间件:
    • helmet (安全)
    • cors (跨域)
    • morgan (日志)
    • body-parser (请求解析)

快速开始

1. 启动后端服务

# 进入后端目录
cd backend

# 启动开发环境
./start.sh dev

# 或启动生产环境
./start.sh

# 或手动启动
npm install
npm run dev  # 开发模式
npm start   # 生产模式

后端服务将在 http://localhost:3000 启动

2. 构建前端应用

使用DevEco Studio打开项目,确保使用HarmonyOS 5.0.5(17) SDK进行编译。

3. 配置网络

确保鸿蒙设备/模拟器可以访问本地后端服务:

  • 如果使用模拟器,通常可以直接访问 localhost:3000
  • 如果使用真机,需要将 localhost 改为电脑的局域网IP地址

API文档

详细的API文档请参考: backend/README.md

主要API端点

  • GET /api/accounting - 获取所有记账记录
  • POST /api/accounting - 创建记账记录
  • PUT /api/accounting/:id - 更新记账记录
  • DELETE /api/accounting/:id - 删除记账记录
  • GET /api/dayInfo/:date - 获取指定日期统计
  • GET /api/category - 获取所有分类

数据库表结构

accountingInfo (记账记录表)

字段 类型 说明
id INTEGER PRIMARY KEY 记录ID
date TEXT 日期
amount REAL 金额
category TEXT 分类
typeName TEXT 类型(收入/支出)
icon TEXT 图标
remark TEXT 备注

dayInfo (日统计表)

字段 类型 说明
date TEXT PRIMARY KEY 日期
expense REAL 支出总额
income REAL 收入总额

categoryInfo (分类表)

字段 类型 说明
id INTEGER PRIMARY KEY 分类ID
category TEXT 分类名称
icon TEXT 图标
index INTEGER 排序索引
typeName TEXT 类型(收入/支出)

升级说明

鸿蒙版本升级

  1. 更新 build-profile.json5 中的 SDK 版本
  2. 更新 oh-package.json5 中的依赖版本
  3. 添加网络请求依赖 @ohos/network.http

后端改造

  1. 创建完整的Node.js后端服务
  2. 实现RESTful API接口
  3. 数据迁移和同步机制
  4. 创建API适配器层,最小化前端改动

前端适配

  1. 创建HTTP工具类和API服务类
  2. 实现API适配器,保持原有接口调用方式
  3. 更新数据模型以支持网络请求

部署说明

开发环境

  • 前端:DevEco Studio + 鸿蒙模拟器
  • 后端:Node.js 开发服务器

生产环境

  • 前端:鸿蒙应用商店发布
  • 后端:云服务器 + PM2进程管理
  • 数据库:SQLite文件或迁移到MySQL/PostgreSQL

注意事项

  1. 网络权限: 鸿蒙应用需要配置网络访问权限
  2. 跨域配置: 后端已配置CORS支持前端访问
  3. 数据同步: 后端自动维护日统计,无需手动操作
  4. 错误处理: 所有API调用都有完善的错误处理机制

开发团队

  • 架构设计: 全栈改造方案
  • 前端开发: HarmonyOS 5.0.5(17) 适配
  • 后端开发: Node.js RESTful API
  • 测试验证: 功能完整性验证

许可证

MIT License

About

鸿蒙作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors