欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net

一、项目概述

运行效果图

image-20260410231754331

image-20260410231758392

image-20260410231802499

image-20260410231810045

1.1 应用简介

校园问答互助社区是一款面向高校学生的知识问答与互助交流平台。学生可以在平台上提出学习、生活、就业等方面的问题,也可以回答他人的问题,通过积分激励机制促进知识共享与互帮互助。平台支持问题分类、标签筛选、热门推荐、采纳答案等功能,打造活跃的校园知识社区。

1.2 目标用户

  • 在校大学生:寻求学习帮助、生活建议、就业指导
  • 研究生:学术交流、科研问题讨论
  • 应届毕业生:求职经验分享、职场问题咨询
  • 校园社团:活动宣传、成员招募

1.3 核心功能

功能模块 功能描述
问题发布 发布问题,支持分类、标签、悬赏积分
问题浏览 按分类、热度、时间筛选问题
回答问题 回答他人问题,获取积分奖励
采纳答案 提问者采纳最佳答案
积分系统 答题获积分,悬赏扣积分
个人中心 我的问题、我的回答、积分记录

二、技术架构

2.1 技术选型

技术栈 版本要求 用途说明
Flutter >= 3.0.0 跨平台UI框架
Dart >= 2.17.0 开发语言
Material Design 3 - UI设计规范

2.2 架构设计

数据层

业务层

表现层

首页

问题列表

发布问题

问题详情

个人中心

问题管理

回答管理

用户管理

积分管理

问题数据

回答数据

用户数据

积分记录

2.3 目录结构

lib/
├── main_campus_qa.dart    # 应用入口
├── models/                # 数据模型
│   ├── question.dart      # 问题模型
│   ├── answer.dart        # 回答模型
│   └── user.dart          # 用户模型
├── screens/               # 页面
│   ├── home_screen.dart   # 首页
│   ├── question_list.dart # 问题列表
│   ├── question_detail.dart # 问题详情
│   └── profile_screen.dart # 个人中心
└── widgets/               # 组件
    ├── question_card.dart # 问题卡片
    └── answer_item.dart   # 回答项

三、功能模块详细设计

3.1 问题分类体系

问题分类

学习交流

生活服务

就业指导

校园活动

课程学习

考试考证

学术研究

宿舍生活

美食推荐

出行交通

求职经验

实习机会

职业规划

社团活动

比赛竞赛

志愿服务

3.2 积分规则

行为 积分变化 说明
发布问题 -5 ~ -50 可设置悬赏积分
回答问题 +5 被采纳额外+悬赏积分
采纳答案 +2 提问者采纳答案
点赞回答 +1 回答被点赞
每日签到 +2 连续签到额外奖励

3.3 问题状态流转

发布问题

收到回答

采纳答案

继续等待

超时关闭

待回答

已回答

已解决

已关闭


四、界面设计

4.1 首页设计

首页采用标签页导航,包含以下模块:

  • 问题列表:展示最新/热门问题
  • 分类浏览:按分类筛选问题
  • 发布入口:快速发布问题
  • 个人中心:用户信息与记录

4.2 问题卡片设计

元素 样式说明
标题 单行显示,超出省略
分类标签 彩色胶囊标签
悬赏积分 金色数字显示
回答数/浏览量 灰色小字
发布时间 相对时间显示

4.3 问题详情页设计

┌─────────────────────────────────┐
│  问题标题                        │
│  ┌─────┐ ┌─────┐ ┌─────┐       │
│  │学习 │ │悬赏 │ │待解 │       │
│  └─────┘ │20分 │ │决   │       │
│          └─────┘ └─────┘       │
│  ─────────────────────────────  │
│  问题详细描述内容...             │
│  ─────────────────────────────  │
│  👤 张同学 · 2小时前 · 浏览128   │
├─────────────────────────────────┤
│  💬 回答 (3)                    │
│  ┌─────────────────────────────┐│
│  │ 👤 李同学                    ││
│  │ 回答内容...                  ││
│  │ 👍 12 · 1小时前 · [采纳]    ││
│  └─────────────────────────────┘│
│  ┌─────────────────────────────┐│
│  │ 👤 王同学                    ││
│  │ 回答内容...                  ││
│  │ 👍 5 · 30分钟前             ││
│  └─────────────────────────────┘│
├─────────────────────────────────┤
│  [写下你的回答...]        [发布] │
└─────────────────────────────────┘

五、数据模型

5.1 问题模型

class Question {
  final String id;           // 问题ID
  final String title;        // 问题标题
  final String content;      // 问题内容
  final QuestionCategory category; // 问题分类
  final List<String> tags;   // 标签列表
  final String authorId;     // 作者ID
  final String authorName;   // 作者昵称
  final String authorAvatar; // 作者头像
  final int rewardPoints;    // 悬赏积分
  final int answerCount;     // 回答数
  final int viewCount;       // 浏览量
  final QuestionStatus status; // 问题状态
  final DateTime createTime; // 创建时间
  final String? acceptedAnswerId; // 采纳的答案ID
}

5.2 回答模型

class Answer {
  final String id;           // 回答ID
  final String questionId;   // 关联问题ID
  final String content;      // 回答内容
  final String authorId;     // 作者ID
  final String authorName;   // 作者昵称
  final String authorAvatar; // 作者头像
  final int likeCount;       // 点赞数
  final bool isAccepted;     // 是否被采纳
  final DateTime createTime; // 创建时间
}

5.3 用户模型

class User {
  final String id;           // 用户ID
  final String name;         // 昵称
  final String avatar;       // 头像
  final int points;          // 积分
  final int questionCount;   // 提问数
  final int answerCount;     // 回答数
  final int adoptedCount;    // 采纳数
  final UserLevel level;     // 用户等级
}

六、核心功能实现

6.1 问题发布流程

点击发布

填写问题标题

填写问题描述

选择分类

是否悬赏

设置悬赏积分

直接发布

扣除积分

发布成功

6.2 采纳答案流程

系统 App 用户 系统 App 用户 点击采纳按钮 验证是否为提问者 验证通过 更新答案状态 发放悬赏积分 更新问题状态 操作成功 显示采纳结果

6.3 积分计算逻辑

int calculatePoints(UserAction action, {int? reward}) {
  switch (action) {
    case UserAction.askQuestion:
      return -(reward ?? 5); // 发布问题扣除积分
    case UserAction.answerQuestion:
      return 5; // 回答问题获得积分
    case UserAction.acceptAnswer:
      return reward ?? 0; // 被采纳获得悬赏
    case UserAction.likeAnswer:
      return 1; // 被点赞获得积分
    case UserAction.dailySignIn:
      return 2; // 每日签到
    default:
      return 0;
  }
}

七、用户等级体系

7.1 等级划分

等级 名称 所需积分 特权
1 新手上路 0 基础功能
2 初露锋芒 100 可设置悬赏
3 小有名气 500 优先展示回答
4 声名远扬 1000 专属标识
5 学识渊博 3000 社区达人
6 一代宗师 5000 内容审核权

7.2 等级图标

Lv1 🌱 新手上路
Lv2 🌿 初露锋芒
Lv3 🌳 小有名气
Lv4 ⭐ 声名远扬
Lv5 🏆 学识渊博
Lv6 👑 一代宗师

九、部署说明

9.1 环境要求

  • Flutter SDK >= 3.0.0
  • Dart SDK >= 2.17.0
  • Android Studio / VS Code

9.2 运行命令

# 获取依赖
flutter pub get

# 运行应用
flutter run -t lib/main_campus_qa.dart

# Web端运行
flutter run -d web-server -t lib/main_campus_qa.dart --web-port 8158

9.3 构建发布

# Android APK
flutter build apk -t lib/main_campus_qa.dart

# iOS
flutter build ios -t lib/main_campus_qa.dart

# Web
flutter build web -t lib/main_campus_qa.dart

十、后续规划

10.1 功能扩展

  • 问题搜索功能
  • 图片上传支持
  • 评论回复功能
  • 私信聊天功能
  • 话题讨论区
  • 专家认证体系

10.2 性能优化

  • 列表分页加载
  • 图片懒加载
  • 本地缓存优化
  • 网络请求优化
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐