# 投票系统
**Repository Path**: rymaker/voting-system
## Basic Information
- **Project Name**: 投票系统
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-24
- **Last Updated**: 2026-02-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

# ModernVote
🗳️ 现代化在线投票系统
简体中文 | [English](./README.md)
---
## 项目简介
ModernVote 是一个功能完善、界面美观的现代化在线投票系统。采用 Nuxt 3 + Vue 3 + TypeORM + MySQL 技术栈,提供了完整的投票创建、管理和统计功能。
## 主要特性
- ✅ 完整的投票 CRUD 功能
- ✅ 实时投票统计和数据可视化
- ✅ 防重复投票机制(IP + 指纹)
- ✅ 响应式设计,完美支持移动端
- ✅ 管理后台,支持投票管理
- ✅ 炫酷的 UI 动画和粒子特效
- ✅ Docker 容器化部署
- ✅ Token 认证和会话管理
## 技术栈
**前端**
- Nuxt 3 - Vue 3 全栈框架
- Pinia - 状态管理
- Naive UI - UI 组件库
- SCSS - 样式预处理
- Anime.js - 动画库
**后端**
- Nitro - Nuxt 服务端
- TypeORM - ORM 框架
- MySQL - 数据库
- bcrypt - 密码加密
## 快速开始
### 1. 安装依赖
```bash
npm install
```
### 2. 配置环境变量
复制 `.env.example` 为 `.env` 并配置:
```env
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=modernvote
```
### 3. 启动开发服务器
```bash
npm run dev
```
访问 http://localhost:3000
### 4. 登录管理后台
默认管理员账户:
- 用户名: `admin`
- 密码: `admin123`
## Docker 部署
```bash
# 开发环境
docker-compose -f docker-compose.dev.yml up -d
# 生产环境
docker-compose up -d
```
## 项目结构
```
modernvote/
├── assets/ # 静态资源和样式
├── components/ # Vue 组件
├── pages/ # 页面路由
├── server/ # 服务端代码
│ ├── api/ # API 接口
│ ├── database/ # 数据库配置
│ └── entities/ # 数据实体
├── stores/ # Pinia 状态管理
├── middleware/ # 路由中间件
└── public/ # 公共文件
```
## 功能说明
### 投票功能
1. **创建投票** - 支持多选项,可设置状态
2. **参与投票** - 用户选择选项并提交
3. **查看结果** - 实时显示投票统计
4. **防重复** - IP 和指纹双重验证
### 管理后台
1. **数据概览** - 投票总数、活跃投票、总票数
2. **投票管理** - 创建、编辑、删除投票
3. **状态管理** - 草稿、进行中、已结束
4. **安全认证** - Token 认证机制
## API 接口
### 投票相关
- `GET /api/votes` - 获取投票列表
- `GET /api/votes/detail` - 获取投票详情
- `POST /api/votes` - 创建投票
- `POST /api/votes/submit` - 提交投票
- `PUT /api/votes/update` - 更新投票
- `DELETE /api/votes/remove` - 删除投票
- `GET /api/votes/stats` - 获取统计数据
### 管理员相关
- `POST /api/admin/login` - 管理员登录
- `GET /api/admin/verify` - 验证 Token
详细文档请查看 [API.md](./API.md)
## 自定义配置
### 修改主题颜色
编辑 `assets/styles/Variables.scss`
### 修改 Logo
替换 `public/logo.svg` 和 `public/favicon.svg`
### 修改管理员账户
在 `.env` 中配置:
```env
ADMIN_USERNAME=your_admin
ADMIN_PASSWORD=your_password
```
## 生产部署
### 构建
```bash
npm run build
```
### 预览
```bash
npm run preview
```
### Docker
```bash
docker-compose up -d
```
## 开发计划
- [x] 基础投票功能
- [x] 管理后台
- [x] 防重复投票
- [x] 响应式设计
- [x] Docker 支持
- [ ] 多语言支持
- [ ] 数据导出功能
- [ ] 邮件通知
- [ ] 投票时间限制
## 贡献
欢迎提交 Issue 和 Pull Request!
## 许可证
MIT License
## 联系方式
如有问题或建议,请提交 Issue 或联系开发团队。
---
⭐ 如果觉得不错,请给个 Star 支持一下!