一个基于 Flask + SocketIO + SQLite 的现代化工作室主页系统,采用 GitHub 风格设计。
- 工作室简介展示
- 项目卡片展示(支持图片、描述、GitHub链接、演示链接)
- 统计信息展示(项目数量、团队成员、GitHub Stars等)
- 用户注册登录入口
- 响应式设计,支持移动端
- 四级权限系统:
- 🔴 超级管理员:完整系统管理权限
- 🟡 管理员:项目管理权限
- 🔵 成员:导航页访问权限
- ⚪ 游客:基础浏览权限
- 项目管理(管理员+):
- 创建、编辑、删除项目
- 设置精选项目
- 项目统计信息
- 项目文档管理
- 用户管理(超级管理员):
- 用户角色管理
- 用户状态控制
- 用户详情查看
- 快速访问链接
- 开发工具导航
- 学习资源链接
- 常用服务链接
- 基于 SocketIO 的实时通知
- 系统消息推送
- 后端: Python Flask + Flask-SocketIO
- 数据库: SQLite + SQLAlchemy
- 前端: Bootstrap 5 + Font Awesome
- 实时通信: Socket.IO
- 样式: GitHub 风格暗色主题
- Python 3.7+
- pip
pip install -r requirements.txtpython app.py打开浏览器访问:http://localhost:5000
- 用户名:
admin - 密码:
admin123 - 角色: 超级管理员
JuFireStudio/
├── .gitignore
├── .idea\
├── LICENSE
├── README.md
├── app.old\
├── app.py
├── backend\
│ ├── __init__.py
│ ├── admin.py
│ ├── auth.py
│ ├── config.py
│ ├── models.py
│ ├── navigation.py
│ ├── projects.py
│ └── utils.py
├── links
├── projects\
├── requirements.txt
├── static\
│ ├── css\
│ │ ├── alert.css
│ │ ├── badge.css
│ │ ├── button.css
│ │ ├── card.css
│ │ └── ...
│ ├── img\
│ │ ├── close.hover.svg
│ │ └── close.svg
│ └── js\
│ ├── admin\
│ ├── cropper.js
│ ├── register.js
│ ├── main.js
│ └── ...
├── templates\
│ ├── admin\
│ │ ├── navigation.html
│ │ ├── projects.html
│ │ ├── studio_info.html
│ │ └── users.html
│ ├── base.html
│ ├── errors\
│ │ └── 404.html
│ ├── index.html
│ ├── login.html
│ ├── modals\
│ ├── navigation.html
│ ├── profile.html
│ ├── project_doc_view.html
│ ├── project_docs_list.html
│ └── register.html
├── user_data\
└── using_cache\
| 功能 | 未登录 | 游客 | 成员 | 管理员 | 超级管理员 |
|---|---|---|---|---|---|
| 浏览主页 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 个人主页 | ❌ | ✅ | ✅ | ✅ | ✅ |
| 导航页面 | ❌ | ❌ | ✅ | ✅ | ✅ |
| 项目管理 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 导航管理 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 工作室信息管理 | ❌ | ❌ | ❌ | ✅ | ✅ |
| 用户管理 | ❌ | ❌ | ❌ | ❌ | ✅ |
POST /api/projects- 创建项目PUT /api/projects/<id>- 更新项目DELETE /api/projects/<id>- 删除项目PUT /api/projects/<id>/featured- 切换精选状态POST /api/projects/<id>/docs- 开通文档空间GET /api/projects/<id>/docs- 获取文档列表POST /api/projects/<id>/docs- 上传文档PUT /api/projects/<id>/docs/<filename>- 更新文档DELETE /api/projects/<id>/docs/<filename>- 删除文档
PUT /api/users/<id>/role- 更新用户角色PUT /api/users/<id>/status- 切换用户状态GET /api/users/<id>- 获取用户详情DELETE /api/users/<id>- 删除用户
GET /api/navigation- 获取所有导航链接POST /api/navigation- 创建导航链接PUT /api/navigation/<id>- 更新导航链接DELETE /api/navigation/<id>- 删除导航链接POST /api/navigation/categories- 创建分类PUT /api/navigation/categories/<id>- 更新分类DELETE /api/navigation/categories/<id>- 删除分类
GET /api/studio_info- 获取工作室信息PUT /api/studio_info- 更新工作室信息
您可以通过访问后台管理页面的 “工作室信息” 标签页来直接修改工作室的各项信息,包括名称、描述、联系邮箱和 GitHub 地址等。所作修改将实时生效。
编辑 static/css/style.css 文件中的 CSS 变量:
:root {
--github-bg: #0d1117; /* 背景色 */
--github-secondary: #161b22; /* 次要背景色 */
--github-accent: #58a6ff; /* 强调色 */
/* ... 其他颜色变量 */
}- 在
app.py中添加路由和API - 创建对应的模板文件
- 在
main.js中添加前端交互逻辑 - 更新样式文件(如需要)
如需修改数据库结构:
- 修改
app.py中的模型定义 - 删除
studio.db文件 - 重新运行应用以创建新的数据库结构
- 使用 Gunicorn 或 uWSGI 作为 WSGI 服务器
- 配置 Nginx 作为反向代理
- 使用 PostgreSQL 或 MySQL 替代 SQLite
- 启用 HTTPS
- 配置环境变量管理敏感信息
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
本项目采用 Apache License 2.0 - 查看 LICENSE 文件了解详情。
- 项目主页:[GitHub Repository]
- 问题反馈:[GitHub Issues]
- 邮箱:[your-email@example.com]
JuFire Studio - 让创意点燃未来 🔥