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.

196 lines
5.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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
### 安装依赖
```bash
cd unilife-frontend
npm install
```
### 开发服务器
```bash
npm run dev
```
访问 http://localhost:5173 查看应用
### 构建生产版本
```bash
npm run build
```
### 预览生产版本
```bash
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组件
详细信息请查看 [设计系统文档](./DESIGN_SYSTEM.md)
## 📄 页面说明
### 🏠 首页 (HomeView)
- Hero区域展示平台价值主张
- 功能特色介绍6个核心功能
- 使用步骤说明3步上手
- CTA区域引导用户注册
- 响应式设计,完美适配各种设备
### 🔐 登录页面 (LoginView)
- 玻璃态设计风格
- 用户名/邮箱登录支持
- 表单验证和错误提示
- 动画效果增强用户体验
- 记住密码功能
### ✍️ 注册页面 (RegisterView)
- 完整的用户信息收集
- 邮箱验证码功能
- 实时表单验证
- 密码强度检查
- 学生身份验证
### 💬 论坛页面 (ForumView)
- 基础结构已搭建
- 待后续功能完善
## 🔌 API集成
项目已配置完整的API客户端
- **请求拦截器**: 自动添加认证token
- **响应拦截器**: 统一错误处理
- **类型安全**: 完整的TypeScript类型定义
- **错误处理**: 用户友好的错误提示
## 🔐 状态管理
使用 Pinia 进行状态管理:
- **用户状态**: 登录状态、用户信息管理
- **持久化**: localStorage自动同步
- **类型安全**: 完整的TypeScript支持
## 🛣️ 路由配置
- **路由守卫**: 自动认证检查
- **懒加载**: 按需加载页面组件
- **重定向**: 智能路由重定向
- **类型安全**: 路由参数类型检查
## 🎯 下一步计划
### 短期目标
- [ ] 完善论坛功能(帖子列表、详情、发布)
- [ ] 实现资源分享功能
- [ ] 开发课程表管理
- [ ] 个人资料页面
### 长期目标
- [ ] 消息通知系统
- [ ] 搜索功能优化
- [ ] 移动端App开发
- [ ] PWA支持
## 🤝 贡献指南
1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📜 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 📞 联系我们
- 项目地址: [GitHub](https://github.com/your-username/unilife-frontend)
- 问题反馈: [Issues](https://github.com/your-username/unilife-frontend/issues)
- 文档: [Wiki](https://github.com/your-username/unilife-frontend/wiki)
---
🎓 **让大学生活更精彩!**