需求分析

系统需实现学生宿舍报修申请、维修工单分配、进度跟踪、数据统计等功能。角色分为学生、管理员、维修人员,需支持权限控制和多端响应式界面。

技术选型

  • 后端框架: Flask(轻量级,适合快速开发)
  • 数据库: SQLite(开发阶段)/MySQL(生产环境)
  • 前端: Bootstrap + Jinja2模板引擎
  • 身份验证: Flask-Login + session管理
  • 表单处理: WTForms + CSRF防护

数据库设计

核心表结构示例:

class RepairRequest(db.Model):  
    id = db.Column(db.Integer, primary_key=True)  
    student_id = db.Column(db.Integer, db.ForeignKey('user.id'))  
    description = db.Column(db.Text)  
    status = db.Column(db.String(20))  # e.g., "pending", "assigned", "completed"  
    created_at = db.Column(db.DateTime, default=datetime.utcnow)  

class WorkOrder(db.Model):  
    id = db.Column(db.Integer, primary_key=True)  
    repair_id = db.Column(db.Integer, db.ForeignKey('repair_request.id'))  
    technician_id = db.Column(db.Integer, db.ForeignKey('user.id'))  
    assigned_at = db.Column(db.DateTime)  

核心功能实现

报修提交模块

  • 学生通过表单提交报修信息,包含文字描述和图片上传(需使用Flask-Uploads扩展)。
  • 后端验证数据后存入数据库,状态标记为"pending"。

工单分配逻辑

  • 管理员后台查看未分配报修单,支持按紧急程度筛选。
  • 分配时调用WorkOrder表关联维修人员ID,更新报修状态为"assigned"。

状态更新接口

@app.route('/update_status/<int:order_id>', methods=['POST'])  
def update_status(order_id):  
    new_status = request.form.get('status')  
    work_order = WorkOrder.query.get_or_404(order_id)  
    work_order.repair.status = new_status  
    db.session.commit()  
    return redirect(url_for('admin_dashboard'))  

权限控制

通过装饰器实现角色验证:

def admin_required(f):  
    @wraps(f)  
    def decorated_function(*args, **kwargs):  
        if not current_user.is_admin:  
            abort(403)  
        return f(*args, **kwargs)  
    return decorated_function  

测试与部署

  • 单元测试:使用pytest测试表单验证、路由响应。
  • 部署:Gunicorn + Nginx配置,通过环境变量管理敏感信息。

扩展优化

  • 实时通知:集成WebSocket(Flask-SocketIO)推送工单状态变更。
  • 数据分析:用Matplotlib生成报修高频时段统计图。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

开发技术路线

开发语言:Python
框架:flask/django
开发软件:PyCharm/vscode
数据库:mysql
数据库工具:Navicat for mysql
前端开发框架:vue.js
数据库 mysql 版本不限
本系统后端语言框架支持: 1 java(SSM/springboot)-idea/eclipse 2.Nodejs+Vue.js -vscode 3.python(flask/django)--pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx

源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!

需要成品或者定制,文章最下方名片联系我即可~ 所有项目都经过测试完善,本系统包修改时间和标题,包安装部署运行调试,不满意的可以定制

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐