MaxPolak04/tab_view

GitHub: MaxPolak04/tab_view

TabView 是一个基于 Flask 的端到端数字标牌与房间预约管理系统,支持实时日程更新、媒体轮播展示及 Docker 化企业级部署。

Stars: 0 | Forks: 0

# TabView 系统 ![项目版本](https://img.shields.io/badge/version-v1.0.0-blue) ![Python](https://img.shields.io/badge/Python-3.12-3776AB) ![Flask](https://img.shields.io/badge/Flask-3.0-000000) ![包管理器](https://img.shields.io/badge/uv-Fast-purple) ![Docker](https://img.shields.io/badge/Docker-Compose-2496ED) ![CI/CD](https://img.shields.io/badge/CI%2FCD-Passing-success) ![安全: Bandit](https://img.shields.io/badge/security-bandit-green.svg) [![安全: Trivy](https://img.shields.io/badge/security-trivy-green.svg)](https://aquasecurity.github.io/trivy/) ![Linter: Ruff](https://img.shields.io/badge/linter-ruff-red.svg) [![许可证](https://img.shields.io/badge/License-CC_BY--NC_4.0-lightgrey)](LICENSE)

TabView Main Overview

## 📌 关于本项目 **一套端到端的数字标牌系统,在设计上专注于零停机架构、安全左移以及企业级部署。** **TabView** 是一个健壮的 Web 平台,旨在集中管理信息平板,为 **eNStudios** 解决了手动预订房间和视觉通讯的问题。作为一个完整的解决方案,它提供了一个能够进行实时日程更新和媒体轮换(无需重新加载页面)的自适应显示客户端。 ### 核心高层特性 - **企业级审计跟踪:** 全面记录所有管理操作(包括 IP、UserAgent 和事件日志),以确保严格的责任落实。 - **交互式日程管理:** 由定制的 `FullCalendar.io` 界面提供支持的实时事件和预订管理,并以原子化验证规则为后盾。 - **自动化显示引擎:** 专为低资源平板电脑优化的轻量级、基于轮询的前端架构,确保播放循环的一致性。 - **硬件无关的资源分发:** 支持同时排期静态图片、HTML 布局和 MP4 队列,并带有自定义显示间隔。 ## 🚀 快速开始 请确保您的主机系统上已安装 **Docker** 和 **Docker Compose**。 ### 1. 启动环境 克隆代码仓库,配置您的环境,并启动容器化架构: ``` git clone https://github.com/your-org/tab-view.git cd tab-view cp .env.example .env docker-compose up -d ``` ### 2. 自动化初始化 容器入口脚本 (`run.sh`) 将自动执行完整的初始化流水线: - 应用所有待处理的数据库迁移 (`flask db upgrade`)。 - 运行数据库播种程序 (`tab_view/seed.py`) 以生成示例布局、设备和核心记录。 ### 3. 立即访问 一旦容器健康运行,打开浏览器并导航至 `http://localhost:8080`。您可以使用自动生成的评估凭据立即登录: - **用户名 / 登录名:** `admin` - **密码:** `admin` _(⚠️ 注意:这些凭据由播种程序自动提供,仅用于评估。有关配置和生产环境的准备,请参阅以下指南)_ ## 📚 文档索引 本系统的技术细节按照行业标准拆分成了专门的手册: 1. **[工程师手册](docs/DEVELOPMENT.md)** – 全面的本地开发设置、通过 `uv` 进行包管理、数据库播种以及测试工具。 2. **[架构与设计决策](docs/ARCHITECTURE.md)** – 深入探讨定制的显示客户端、缓存机制、4K 画布布局计算以及轮询实现。 3. **[质量保证与测试](docs/TESTING.md)** – 使用 `pytest` 的测试套件矩阵、覆盖率指标和执行模型。 4. **[SRE 与运维指南](docs/DEPLOYMENT.md)** – 生产环境架构、Nginx 反向代理优化、Gunicorn 调优以及 Rootless Docker 容器安全结构。 ## 🛠️ 构建技术栈 - **后端:** Flask, SQLAlchemy (ORM), Flask-Migrate, Flask-RESTful. - **前端:** Vanilla JS (ES6+), Bootstrap 5, FullCalendar.io, Flatpickr. - **工具链:** `uv` (快速 Python 依赖管理), Ruff (Linter/格式化工具). - **安全与流水线:** Bandit (SAST), Trivy (容器扫描), Git Pre-commit Hooks, GitHub Actions. ## 🧠 工程思考与心态 这个项目代表了从结构化编码向专业软件工程的转变。在独立开发的过程中,它实施了行业最佳实践,以证明可扩展的软件需要经过深思熟虑的设计: - **工程优于编码:** 重点放在了架构弹性、结构安全性和可预测的错误边界上,而不仅仅是“让它能运行”。 - **自我教育:** 在分析文档的基础上,一路探索并部署了现代生态系统(例如 `uv` 包管理和 Rootless 容器化)。 - **善用工具:** 严格将自动化和 AI 作为审查者和架构指导。本仓库中的每一行代码都经过了人工验证、测试和理解。 ## 📫 反馈与联系 作为一名学生和初级工程师,我非常看重专业的代码审查和架构反馈。欢迎通过以下方式联系我: - **GitHub Issues:** 技术缺陷报告和功能请求。 - **LinkedIn:** [Maksymilian Polak](https://www.linkedin.com/in/maksymilian-polak) ## 📄 许可证 本项目基于 **Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)** 获得许可。详情请参阅 [LICENSE](LICENSE) 文件。
标签:Docker, Flask, FullCalendar, GitHub Actions, 会议室预订, 安全规则引擎, 安全防御评估, 数字标牌, 版权保护, 自动笔记, 角色权限控制, 请求拦截, 逆向工具