第 1 章:项目概览与需求分析
“不要为了技术而技术,要为了解决问题而写代码。”
在开始敲下第一行 console.log("Hello World") 之前,我们需要先坐下来,喝杯茶,聊聊我们到底要造一个什么样的轮子。
1.1 我们要做什么?(Project Scope)
一句话介绍:本项目是一个基于云开发的全栈低代码活动宣传项目与管理平台。
痛点场景: 想象一下,你是大学社团的社长,或者是公司行政的小姐姐/小哥哥,每次组织活动时:
- 宣传难:发朋友圈只有干巴巴的文字,或者要做海报还得求设计同学。
- 报名乱:用微信群接龙,信息刷屏;用纸质表单,字迹潦草还容易丢。
- 收钱烦:聚餐需要AA收款,几十个人的转账截图发到群里,对账对到眼瞎。
- 互动少:活动现场气氛冷清,想搞个投票评选,发现没有好用的工具。
解决方案: 我们要做的小程序,就是为了解决以上所有问题。它允许你:
- 📱 创建活动:像搭积木一样拖拽生成精美的活动页面。
- 📝 自定义报名:想收什么信息(姓名、电话、学号)自己配,还支持上传支付截图。
- 🗳️ 投票互动:现场搞个“最佳歌手”投票,实时看排名。
- 📊 后台管理:抛弃笨重的 PC 后台,手机在手,天下我有。审核、核销、看数据,躺在床上也能办。
1.2 核心功能拆解
我们将系统功能拆解为四大核心模块:
1. 活动展示与推广
- 活动列表:按时间排序,支持搜索和状态筛选(进行中/已结束)。
- 活动详情页:
- 沉浸式体验:自动播放背景音乐 (BGM)。
- 富媒体展示:支持图片、视频、富文本介绍。
- 海报生成:一键生成带小程序码的精美海报,方便朋友圈装X。
2. 报名管理系统
- 动态表单:主办方配置表单项,用户填写。
- 支付凭证核销:
- 用户:填写报名信息 -> 上传转账截图 -> 提交。
- 管理员:后台查看截图 -> 点击“通过”或“拒绝”。
- 状态流转:待审核 -> 已通过/已拒绝。
3. 投票互动系统
- 图文投票:支持为候选项上传图片和描述。
- 防刷机制:限制每个用户的投票次数。
- 实时统计:投票后立即更新排名。
4. 管理员后台
- 移动端管理:不用打开电脑,手机小程序里直接管理。
- 数据看板:查看浏览量、报名人数、投票数。
- 权限控制:只有创建者或超级管理员才能操作。
- (注):本项目专注于移动端体验,所有管理操作均在小程序内完成,暂不涉及 PC 端导出 Excel 等功能(毕竟谁想在周末还打开 Excel 呢?)。
1.3 技术选型的艺术
为什么选择这套技术栈?因为我们是“实用主义者”。
| 技术层 | 选型 | 理由 |
|---|---|---|
| 前端框架 | UniApp (Vue3 + TS) | 一套代码,多端运行(微信/H5)。Vue3 的组合式 API 写起来很爽,TS 保证了代码的健壮性。 |
| UI 组件库 | Wot Design Uni | 颜值高,组件全,不仅好用,还好看。 |
| 后端服务 | 腾讯云 CloudBase | Serverless 才是独立开发者的终极归宿。无需运维服务器,无需配置 Nginx,按量付费,原生集成微信生态。 |
| 数据库 | MySQL | 稳重、可靠、成熟。虽然 NoSQL 很火,但关系型数据库在事务处理和数据一致性上的安全感,是谁也给不了的。 |
| 构建工具 | Vite | 快,很快,非常快。 |
| 代码规范 | ESLint + Prettier | 保持代码整洁,强迫症福音。 |
1.4 项目结构一览 (Project Structure)
打开项目文件夹,你会看到这样的结构。别慌,我们一个个来认识:
.
├── src/
│ ├── api/ # 📞 与云函数通话的“电话线” (API接口)
│ ├── components/ # 🧩 公共组件库
│ │ ├── ActivityDesign/ # ✨ [核心] 活动页面可视化编辑器组件
│ │ └── ...
│ ├── pages/ # 📱 页面文件
│ │ ├── activity/ # 活动详情、海报、表单
│ │ ├── registration/ # 报名记录列表
│ │ └── ...
│ ├── stores/ # 🏪 Pinia 状态仓库 (用户信息、配置)
│ ├── types/ # 🦕 TypeScript 类型定义
│ └── utils/ # 🛠️ 工具箱 (日期格式化、正则校验)
├── server/ # ☁️ 云函数大本营
│ ├── activity/ # 活动服务 (增删改查)
│ ├── auth/ # 身份验证服务
│ ├── registration/ # 报名服务
│ └── vote/ # 投票服务
└── docs/ # 📚 你现在看到的这本小册
本章小结: 我们明确了项目的目标——做一个高颜值、低成本、全功能的活动管理小程序。我们也确定了作战武器——UniApp + CloudBase。下一章,我们将穿上装备,搭建开发环境,准备开工!