You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
1 week ago | |
---|---|---|
.. | ||
.vscode | 2 weeks ago | |
public | 2 weeks ago | |
src | 1 week ago | |
.editorconfig | 2 weeks ago | |
.gitattributes | 2 weeks ago | |
.gitignore | 2 weeks ago | |
.prettierrc.json | 2 weeks ago | |
DESIGN_SYSTEM.md | 2 weeks ago | |
README.md | 2 weeks ago | |
env.d.ts | 2 weeks ago | |
eslint.config.ts | 2 weeks ago | |
index.html | 2 weeks ago | |
package-lock.json | 2 weeks ago | |
package.json | 2 weeks ago | |
tsconfig.app.json | 2 weeks ago | |
tsconfig.json | 2 weeks ago | |
tsconfig.node.json | 2 weeks ago | |
vite.config.ts | 2 weeks ago | |
vitest.config.ts | 1 week ago |
README.md
UniLife Frontend
🎓 项目简介
UniLife 是一个专为大学生设计的综合性生活平台,提供论坛交流、资源分享、课程管理等功能。本项目是 UniLife 的前端部分,采用现代化的技术栈和紫色主题设计。
✨ 特性
- 🎨 现代化UI设计: 紫色主题 + 玻璃态效果
- 📱 响应式布局: 完美适配桌面端和移动端
- 🚀 高性能: Vue 3 + Vite 构建,极快的开发体验
- 🔒 类型安全: 完整的TypeScript支持
- 🎯 用户体验: 流畅的动画和交互效果
- 🌈 设计系统: 统一的设计规范和组件库
🛠️ 技术栈
- 前端框架: Vue 3.5
- 构建工具: Vite 6.3
- 语言: TypeScript 5.6
- 状态管理: Pinia 2.2
- 路由: Vue Router 4.4
- UI组件: Element Plus 2.9
- HTTP客户端: Axios 1.7
- 样式: CSS3 + CSS变量
- 工具: ESLint + Prettier
🚀 快速开始
环境要求
- Node.js >= 18.0.0
- npm >= 9.0.0
安装依赖
cd unilife-frontend
npm install
开发服务器
npm run dev
访问 http://localhost:5173 查看应用
构建生产版本
npm run build
预览生产版本
npm run preview
📁 项目结构
unilife-frontend/
├── public/ # 静态资源
├── src/
│ ├── api/ # API接口
│ │ ├── index.ts # Axios配置
│ │ └── auth.ts # 认证相关API
│ ├── components/ # 公共组件
│ ├── layouts/ # 布局组件
│ ├── router/ # 路由配置
│ │ └── index.ts # 主路由文件
│ ├── stores/ # 状态管理
│ │ └── user.ts # 用户状态
│ ├── styles/ # 全局样式
│ │ └── globals.css # 设计系统CSS变量
│ ├── types/ # TypeScript类型定义
│ │ └── index.ts # 全局类型
│ ├── utils/ # 工具函数
│ ├── views/ # 页面组件
│ │ ├── auth/ # 认证页面
│ │ │ ├── LoginView.vue
│ │ │ └── RegisterView.vue
│ │ ├── forum/ # 论坛页面
│ │ ├── resources/ # 资源页面
│ │ ├── schedule/ # 课程表页面
│ │ ├── profile/ # 个人资料页面
│ │ └── HomeView.vue # 首页
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── DESIGN_SYSTEM.md # 设计系统文档
└── README.md # 项目说明
🎨 设计系统
我们为 UniLife 创建了完整的设计系统,包括:
- 色彩系统: 紫色主题色彩规范
- 间距系统: 统一的间距标准
- 字体系统: 层次化的字体规范
- 阴影系统: 深度感的阴影效果
- 动画系统: 流畅的过渡动画
- 组件规范: 可复用的UI组件
详细信息请查看 设计系统文档
📄 页面说明
🏠 首页 (HomeView)
- Hero区域展示平台价值主张
- 功能特色介绍(6个核心功能)
- 使用步骤说明(3步上手)
- CTA区域引导用户注册
- 响应式设计,完美适配各种设备
🔐 登录页面 (LoginView)
- 玻璃态设计风格
- 用户名/邮箱登录支持
- 表单验证和错误提示
- 动画效果增强用户体验
- 记住密码功能
✍️ 注册页面 (RegisterView)
- 完整的用户信息收集
- 邮箱验证码功能
- 实时表单验证
- 密码强度检查
- 学生身份验证
💬 论坛页面 (ForumView)
- 基础结构已搭建
- 待后续功能完善
🔌 API集成
项目已配置完整的API客户端:
- 请求拦截器: 自动添加认证token
- 响应拦截器: 统一错误处理
- 类型安全: 完整的TypeScript类型定义
- 错误处理: 用户友好的错误提示
🔐 状态管理
使用 Pinia 进行状态管理:
- 用户状态: 登录状态、用户信息管理
- 持久化: localStorage自动同步
- 类型安全: 完整的TypeScript支持
🛣️ 路由配置
- 路由守卫: 自动认证检查
- 懒加载: 按需加载页面组件
- 重定向: 智能路由重定向
- 类型安全: 路由参数类型检查
🎯 下一步计划
短期目标
- 完善论坛功能(帖子列表、详情、发布)
- 实现资源分享功能
- 开发课程表管理
- 个人资料页面
长期目标
- 消息通知系统
- 搜索功能优化
- 移动端App开发
- PWA支持
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
📜 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
📞 联系我们
🎓 让大学生活更精彩!