1
qhk2026年11月03日
3阅读

技术信息

语言技术
Python、HTML5、CSS、JavaScript、HTTPS
系统类型
Web
行业分类
企业服务、项目任务
开源地址
https://github.com/qazwd/EPMS.git
授权协议
Apache许可
演示地址
https://qazwd.github.io/EPMS/

行业场景

本项目面向软件开发与系统集成行业的企业级项目管理需求。此类企业普遍呈现“客户驱动、多项目并行、实施外勤化”的业务特点:项目由商务签约后交由实施团队在客户现场交付,管理层需要随时掌握各项目的客户信息、合同金额、进度状态与人员投入;而一线实施人员分散驻场,每日工时与工作内容难以及时归集,周报与工时数据长期依赖 Excel 事后补录,存在数据分散、汇总滞后、审核缺位、工时与项目无法对账等问题。EPMS(Enterprise Project Management System,企业项目管理系统)正是针对上述痛点立项:以“项目—阶段—周报—工时日志”为主线,将项目台账、周报汇报、按日工时填报与管理人员线上审批整合到统一 Web 平台,实现项目进度可追踪、人员投入可量化、工时数据可审核,为企业的人力成本核算、项目结算与交付管理提供数据支撑。

功能介绍

~系统包含登录认证与六大功能模块:
1.用户与权限管理:基于 Django 内置用户体系扩展员工档案(手机号、部门、员工类型、职位、在职状态、头像),区分“管理人员”与“实施人员”两类角色;管理人员拥有项目、用户数据的增删改权限及日志审批权,实施人员负责日志填报,界面按角色差异化渲染。
2.项目管理:维护项目编号、项目名称、客户名称/地址/联系人/电话、项目金额、要求与实际起止时间、商务负责人、实施负责人、开发人员及项目描述等台账信息,支持按状态筛选和项目/客户关键字搜索;项目可拆分为多个有序阶段,并随“未开发—开发中—已完成—已验收”状态流转。
3.项目周报:按项目撰写周报,记录本周工作内容、下周工作计划与遇到的问题,支持详情查看、编辑与批量删除。
4.日志填报:实施人员按日期登记工时,区分正常工时、加班工时、休假工时三类并填写工作描述,支持暂存与提交,实时汇总有效工时。
5.日志审批:管理人员对已提交日志逐日审核,可执行通过或驳回并填写未通过原因;全过程记录保存、提交、审核时间戳,被驳回工时自动从统计汇总中剔除。
6.个人设置:维护个人基本资料与修改登录密码。

项目实现

我独立完成了该系统从需求分析、数据库设计到开发部署的全部工作。后端基于 Django 5.2 + Django REST Framework 构建 RESTful API:设计用户资料、项目、项目阶段、周报、日志主表、日志日期明细六张数据表并通过 OneToOne/ForeignKey 建立关联;使用 DefaultRouter 注册五个 ModelViewSet 提供标准 CRUD,同时封装聚合数据加载与按实体分发的统一新增/更新/删除接口;在序列化器层重写 create/update,实现日志主表与按日明细的嵌套创建和按日期合并更新,并处理了“项目阶段落库失败自动回滚项目创建”的数据一致性问题。前端采用原生 HTML5/CSS3/JavaScript 编写 8700 余行单页应用,由 Django 模板直接渲染,实现登录鉴权、模块切换、角色差异化按钮控制、模态框交互与工时状态机(未保存→已保存→已提交→已通过/未通过)。配置层按 base/dev/prod 三级拆分,生产配置由环境变量驱动并支持 MySQL 8.0;最终通过多阶段 Dockerfile 构建、Gunicorn + Nginx 反向代理与 docker-compose 容器编排完成部署上线。过程中我重点攻克了嵌套序列化的双表一致性、驳回工时的统计剔除、开发/生产环境隔离等难点,并复盘识别出部署脚本硬编码密码、开发环境接口未强制鉴权等安全隐患,已列入后续加固计划。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论