GithubHelp home page GithubHelp logo

minierp's Introduction

miniERP——基于Django的小微企业资源管理系统

项目背景

2020年暑假由于疫情原因,我在家乡泰安的一家小微机械加工企业(W厂)进行暑期实习实践,期间发现这家企业流程上有很多不规范之处,于是使用自己所学的面向对象、erp和Web开发知识,基于Django开发了一个小型的资源管理系统希望可以帮助企业进行管理,主要功能包括 “物料管理”、“订单管理及合同导出”和“应收账款管理”(表格统计和图形统计),现在将其开源,后续会根据实际情况(比如新增功能,bug修复等等)进行更新。

项目实现

经过面向对象的分析设计,我决定后端使用Python中大受欢迎的Django框架作为主要框架来实现,Django自带很多功能,比如借助admin模块可以直接为用户提供增删查改的接口、HTML模板继承方便进行前端页面的组织、ORM功能在Python语言层面完成数据库操作等等。

在前端我选择了AdminLTE框架,它提供了一个Dashboard界面和种类繁多的部件和外部插件,比如按钮、卡片和交互式表格等等,利用这些可以简单快捷地实现酷炫的效果。

对于图表的渲染,我选择了pyecharts库,将获取到的未付账款信息转换为HTML代码嵌入到模板当中向用户展示,并提供丰富的交互效果。

根据订单信息自动生成Word文档属于办公自动化范畴,由于Word文档结构复杂、格式多样所以直接采用生成文档、然后写入内容的做法很难实现。经过大量的搜索,我找到了docxtpl(docx template)库,首先创建模板文件template.docx,并在需要填入内容的地方用模板语法进行标记,然后读入template.docx,使用包含订单信息的字典渲染模板并保存,很好地实现了导出文本的功能。

项目结构

miniERP ├── __pycache__ ├── db.sqlite3 ├── debt ├── login ├── manage.py ├── material ├── miniERP ├── order ├── static ├── templates └── word_files

9 directories, 2 files

  • 9个目录中debt(应收账款管理)、login(用户登录、退出)、material(物料管理)、order(订单管理)为应用目录。
  • static存放AdminLTE框架的资源文件、echarts及主题js插件和网站favicon。
  • templates存放HTML模板的基本部分。
  • word_files存放合同的模板文件template.docx以及,已经生成等待下载的合同文档。

How to run

上传的db.sqlite已经完成了数据库迁移,并导入了随机产生的样例数据,只需clone然后在目录下执行 python3 manage.py runserver即可启动系统并体验(普通用户名为nuaa,密码为nuaa;超级用户名为nuaa,密码为nuaa.cem)。

目前的问题及改进想法

一是“物料管理”模块不够科学,在开发过程中为了减小复杂度,我回避了BOM树的构造问题。做出这个决定的另一个原因是W厂的订单需求经常改变,且数据库中的物料表绑定了订单中的某些属性,这导致构建BOM的作用不太突出。

二是界面风格不太一致,将Django admin模块与前端框架混合使用的一个缺点就是两者界面不同,而且会有多余的页面跳转,这给计算机使用知识不太充足的员工造成了不必要的学习成本。

三是系统还未经过系统的测试,目前仍处于试运行阶段,虽然可以保证数据安全但是可能会因为某些特殊情况出现功能出错,作为系统开发者,我已与W厂负责人承诺将在系统运行期间一直提供维护服务,出错之后会立即进行调试。

minierp's People

Contributors

mqlabc avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.