HarmonyOS 5.0+ 数字社区综合服务应用,前端基于 ArkTS + ArkUI Stage 模型开发,后端为纯 Node.js 内置模块实现的轻量级 HTTP 服务。
本项目为参赛作品「数字社区 App」,面向住宅小区居民提供物业公告、邻里动态、个人信息管理等综合服务,致力于"以数字生活提升社区品质"。
| 模块 | 页面 | 说明 |
|---|---|---|
| 引导页 | SplashPage | 5 秒倒计时,自动跳转;检测本地 token 决定进首页或登录页 |
| 登录注册 | LoginPage / RegisterPage | 手机号+密码登录;注册含验证码、协议等完整表单 |
| 首页 | HomePage | 用户信息卡片、快捷服务宫格、物业服务宫格、物业公告预览(前5条) |
| 物业公告 | AnnouncementPage | 完整公告列表,含图标、标题、内容摘要、日期 |
| 社区动态 | CommunityPage / DynamicDetailPage | 邻里动态卡片流、动态详情与评论列表 |
| 集市 | MarketPage | 占位页面 |
| 个人中心 | MinePage | 用户信息展示、菜单入口(我的信息、房屋/车辆/缴费/密码管理) |
| 我的信息 | MyInfoPage | 修改头像(相册选图 → 上传至服务端)、姓名、手机号等,提交后实时刷新首页/个人中心 |
Community/ ├── entry/src/main/ets/ │ ├── common/ │ │ ├── api/ Api.ets # 所有接口封装 │ │ ├── components/ AnnouncementItem.ets # 公共组件 │ │ ├── constants/ AppConstants.ets # 颜色、字号等常量 │ │ ├── models/ DataModels.ets # 数据类型定义 │ │ └── utils/ PreferencesUtil.ets # token / 用户信息本地存储 │ ├── entryability/ EntryAbility.ets │ └── pages/ *.ets # 各功能页面 ├── server/ │ ├── server.js # Node.js 后端(纯内置模块,无需 npm install) │ ├── API.md # 接口文档 │ └── uploads/ # 用户头像上传目录(运行时自动创建) ├── prd.md # 产品需求文档 └── README.md # 本文件
| 依赖 | 版本要求 |
|---|---|
| DevEco Studio | 5.0.5+ |
| HarmonyOS SDK | API 12 (HarmonyOS 5.0)+ |
| 真机 / 模拟器 | HarmonyOS 5.0+ |
| 依赖 | 版本要求 |
|---|---|
| Node.js | 16+ |
| npm 包 | 无(仅使用 Node.js 内置模块) |
cd server
node server.js
启动成功后控制台输出:
Server running at http://<本机IP>:8080
服务端会自动获取本机局域网 IP 并打印,记录该 IP,用于下一步配置客户端。
Community/文件:entry/src/main/ets/common/api/Api.ets,第 81 行
static readonly BASE_URL: string = 'http://192.168.101.6:8080'
// ^^^^^^^^^^^
// 改为运行 server.js 的电脑的局域网 IP
⚠️ 手机和电脑必须连接同一局域网(同一 Wi-Fi),否则无法访问服务端。
文件:entry/src/main/ets/pages/SplashPage.ets
/** 调试开关:true = 永远跳转到登录页(忽略本地 token),false = 正常逻辑 */
private readonly DEBUG_FORCE_LOGIN: boolean = false
| 值 | 行为 |
|---|---|
false(默认) | 有本地 token 则直接进首页,否则进登录页 |
true | 每次启动都强制跳转登录页,便于调试登录/注册流程 |
⚠️ 服务端数据未做持久化
所有用户数据(注册账号、修改的头像/昵称等)均保存在 Node.js 进程内存中。服务端重启后,除预置账号外,所有数据将丢失。
预置测试账号:
| 手机号 | 密码 |
|---|---|
13800138000 | 123456 |
⚠️ 服务端下发的图片链接可能无法访问
公告图标、动态图片、用户头像等均使用外部 CDN 链接(如 img.icons8.com、img.zcool.cn)。在网络受限环境下这些图片可能无法加载,属正常现象,不影响功能逻辑。