CN109582302A - 项目创建系统及自动化项目创建方法 - Google Patents
项目创建系统及自动化项目创建方法 Download PDFInfo
- Publication number
- CN109582302A CN109582302A CN201811479403.3A CN201811479403A CN109582302A CN 109582302 A CN109582302 A CN 109582302A CN 201811479403 A CN201811479403 A CN 201811479403A CN 109582302 A CN109582302 A CN 109582302A
- Authority
- CN
- China
- Prior art keywords
- code
- application
- module
- establishment
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种项目创建系统及自动化项目创建方法,该项目创建系统及自动化项目创建方法基于微服务架构,结合Jhipster工具,结合Git代码仓库中的代码模板、用户需求和应用程序,为开发者自动化生成最贴近业务的所有代码,帮助开发者简化了项目搭建的过程,让开发者能够专注于业务代码的开发,从而降低了开发成本,提高了开发效率,缩短了项目交付时间。
Description
技术领域
本发明涉及一种项目创建系统及自动化项目创建方法,属于代码生成技术领域。
背景技术
随着技术的发展,越来越多的代码生成工具涌现出来,代码生成工具能帮助开发者快速搭建起一个项目框架,免去了底层代码的编写。然而,随着业务需求的不断增长和变化,仅仅自动生成底层代码和项目框架,已明显无法满足企业和开发者的需要,开发者无法从繁杂的代码层次结构和代码搭建过程中摆脱出来,不能只专注于业务代码的书写,降低了开发效率,增加了开发成本。且现有的代码生成工具种类繁多、挑选过程复杂、学习成本高,并且生成的代码版本老旧,需要小心升级,可定制化程度低,给开发者带来了额外的代码整理工作。
发明内容
本发明的目的在于提供一种项目创建系统及自动化项目创建方法,屏蔽了项目代码初始化的繁琐工作,提高开发效率,降低开发成本,加快项目交付速度。
为达到上述目的,本发明提供如下技术方案:一种项目创建系统,所述项目创建系统基于微服务架构,包括:
前端交互模块,为用户提供可视化操作,以完成项目的自动化创建;所述前端交互模块包括页面视图层和应用模板层,其中:所述页面视图层用于提供页面视图层开发的基本元素,包括编辑按钮、分页按钮、操作按钮和界面元素样式配置;用户通过所述应用模板层选择创建应用代码模板或空白应用,并填写应用信息;
后端数据处理模块,用于接受所述前端交互模块的数据,处理并存储至数据库,然后发送创建请求给服务端自动创建模块,再将所述服务端自动创建模块返回的状态码存储至所述数据库,用于刷新所述前端交互模块中的页面应用的状态;
服务端自动创建模块,用于创建代码和Git代码仓库,所述服务端自动创建模块接受到所述创建请求后,创建Git项目,读取所述数据中的应用代码模板或空白应用,然后自动创建基础应用代码,并自动保存至所述Git代码仓库中,最后返回所述状态码至所述后端数据处理模块。
进一步地,所述操作按钮包括输入控件,以使用户通过鼠标点击,和/或文字输入,和/或语音输入的方式完成所述项目的自动化创建。
进一步地,所述编辑按钮包括添加功能按钮控件、修改功能按钮控件、查询功能按钮控件、删除功能按钮控件以及刷新功能按钮控件,用户通过一个或多个所述编辑按钮实现增删改查的全部操作。
进一步地,所述项目创建系统显示有系统页面和应用列表页面,用户通过所述分页按钮在所述系统页面和应用列表页面上实现分页操作,包括向前翻页、向后翻页、翻到第一页、翻到最后一页,以及页码控制、页数显示功能。
进一步地,所述服务端自动创建模块调用GitLab服务的创建项目的应用编程接口,创建所述Git项目。
进一步地,所述服务端自动创建模块结合Jhipster工具来自动创建所述基础应用代码。
进一步地,所述Jhipster工具中不含有用户交互界面,且所述Jhipster工具直接将所述应用代码模板作为自动创建基础应用代码的输入参数,再通过复制已有的代码模板进行组合,从而按用户选择的应用代码模板来自动创建基础应用代码。
进一步地,所述服务端自动创建模块在返回所述状态码的同时,还会返回所述Git代码仓库的地址。
进一步地,所述状态码包括创建失败和创建成功两种状态。
本发明还提供了一种自动化项目创建方法,采用所述的项目创建系统,所述自动化项目创建方法包括以下步骤:
用户通过所述前端交互模块创建应用并选择应用代码模板或空白应用,然后填写应用信息,所述前端交互模块将数据传输给所述后端数据处理模块;
所述后端数据处理模块将收到的数据存储到所述数据库,并将创建请求发送至所述服务端自动创建模块;
所述服务端自动创建模块收到所述创建请求后,先创建好所述Git项目,然后读取所述数据中的应用代码模板或空白应用,自动创建基础应用代码,并提交到所述Git代码仓库中,最后所述服务端自动创建模块会返回所述状态码和Git代码仓库的地址给所述后端数据处理模块;
所述后端数据处理模块将所述状态码和Git代码仓库的地址存储进所述数据库中,所述前端交互模块读取所述数据库的状态码和Git代码仓库的地址后显示给用户。
与现有技术相比,本发明的有益效果在于:本发明的项目创建系统及自动化项目创建方法基于微服务架构,结合Jhipster工具,结合Git代码仓库中的代码模板、用户需求和应用程序,为开发者自动化生成最贴近业务的所有代码,帮助开发者简化了项目搭建的过程,让开发者能够专注于业务代码的开发,从而降低了开发成本,提高了开发效率,缩短了项目交付时间。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1为本发明的项目创建系统架构示意图;
图2为本发明的自动化项目创建方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
请参见图1,本发明的项目创建系统基于微服务架构,其包括前端交互模块、后端数据处理模块和服务端自动创建模块,具体的:
前端交互模块,为用户提供可视化操作,以完成项目的自动化创建;所述前端交互模块包括页面视图层和应用模板层,其中:所述页面视图层用于提供页面视图层开发的基本元素,包括编辑按钮、分页按钮、操作按钮和界面元素样式配置;用户根通过所述应用模板层选择创建应用代码模板或空白应用,并填写应用信息;
后端数据处理模块,用于接受所述前端交互模块的数据,并存储至数据库,然后发送创建请求给服务端自动创建模块,再将所述服务端自动创建模块返回的状态码存储至所述数据库,用于刷新所述前端交互模块中的页面应用的状态;
服务端自动创建模块,用于创建代码和Git代码仓库,所述服务端自动创建模块接受到所述创建请求后,创建Git项目,读取所述数据中的应用代码模板或空白应用,然后自动创建基础应用代码,并提交到所述Git代码仓库中,最后返回所述状态码至所述后端数据处理模块。
在本发明中,所述操作按钮包括输入控件,以使用户通过鼠标点击,和/或文字输入,和/或语音输入的方式完成所述项目的自动化创建。所述编辑按钮包括添加功能按钮控件、修改功能按钮控件、查询功能按钮控件、删除功能按钮控件以及刷新功能按钮控件,用户通过一个或多个所述编辑按钮实现增删改查的全部操作。所述项目创建系统显示有系统页面和应用列表页面,用户通过所述分页按钮在所述系统页面和应用列表页面上实现分页操作,包括向前翻页、向后翻页、翻到第一页、翻到最后一页,以及页码控制、页数显示功能。
在本发明中,所述服务端自动创建模块在返回所述状态码的同时,还会返回所述Git代码仓库的地址。所述状态码包括创建失败和创建成功两种状态。所述服务端自动创建模块调用GitLab服务的创建项目的应用编程接口,创建所述Git项目。所述服务端自动创建模块结合Jhipster工具来自动创建所述基础应用代码。Jhipster工具是一个开源的代码自动化创建工具,其原理大致如下:Jhipster工具里会存在一个应用系统的模板,通过运行Jhipster工具,用户会与该工具有个界面交互,交互的内容其实就是定制应用系统代码的内容,当这个定制流程完成后,Jhipster工具会根据最终用户的需求,将所有涉及的代码模板复制出来,组成用户需要的一个包含源代码的应用系统。然而,本发明对Jhipster工具的源代码进行了修改,取消了工具里的用户交互界面,修改了定制流程,直接将用户选择的应用代码模板作为自动创建基础应用代码的输入参数,通过复制已有的代码模板进行组合,最终实现按用户选择的应用代码模板自动创建基础应用代码的目的。
请参见图2,本发明的自动化项目创建方法,采用所述的项目创建系统,其包括以下步骤:
用户通过所述前端交互模块创建应用并选择应用代码模板或空白应用,然后填写应用信息,所述前端交互模块将数据传输给所述后端数据处理模块;
所述后端数据处理模块将收到的数据存储到所述数据库,并将创建请求发送至所述服务端自动创建模块;
所述服务端自动创建模块收到所述创建请求后,先创建好所述Git项目,然后读取所述数据中的应用代码模板或空白应用,再结合Jhipster工具自动创建基础应用代码,并提交到所述Git代码仓库中,最后所述服务端自动创建模块会返回所述状态码和Git代码仓库的地址给所述后端数据处理模块;
所述后端数据处理模块将所述状态码和Git代码仓库的地址存储进所述数据库中,所述前端交互模块读取所述数据库的状态码和Git代码仓库的地址后显示给用户。
具体的,用户登录系统页面,点击创建项目按钮,填写项目名称、项目编码、项目类型、项目描述,点击提交审核,待系统人工审核通过后,开始创建应用。点击创建应用按钮,选择创建应用代码模板或空白应用,填写应用名称、应用编码、应用描述,点击创建按钮,交互页面返回到项目首页,展示应用列表页,用户就能看到刚才创建的应用的状态,“创建中”。当应用代码模板创建完成后,状态会自动刷新为“创建成功”;当应用代码模板创建失败后,状态会自动刷新为“创建失败”,且返回系统页面重新填写信息。
用户点击创建应用的按钮后,会将用户填写的数据发送到后端数据处理模块中,后端数据处理模块会将数据存储到数据库中,并将数据组织成规定格式,然后发送创建请求到服务端自动创建模块中。当服务端自动创建模块创建成功后,会返回一个状态码用于表示基础应用代码创建成功或失败,后端数据处理模块会将该状态存储进数据库中,然后用于刷新页面应用的状态。
服务端自动创建模块接收到创建请求后,首先调用GitLab服务的创建项目的API(应用编程接口),创建好Git项目,然后读取数据里的应用代码模板或空白应用,结合Jhipster工具,自动创建基础应用代码,并提交到Git代码仓库中,最后服务端自动创建模块会返回一个状态码用于表示创建成功与否的状态,同时还会返回Git代码仓库的地址,便于用户通过浏览器访问代码仓库,下载应用代码。
综上所述:本发明的项目创建系统及自动化项目创建方法基于微服务架构,结合Jhipster工具,结合Git代码仓库中的代码模板、用户需求和应用程序,为开发者自动化生成最贴近业务的所有代码,帮助开发者简化了项目搭建的过程,让开发者能够专注于业务代码的开发,从而降低了开发成本,提高了开发效率,缩短了项目交付时间。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种项目创建系统,其特征在于,所述项目创建系统基于微服务架构,包括:
前端交互模块,为用户提供可视化操作,以完成项目的自动化创建;所述前端交互模块包括页面视图层和应用模板层,其中:所述页面视图层用于提供页面视图层开发的基本元素,包括编辑按钮、分页按钮、操作按钮和界面元素样式配置;用户通过所述应用模板层选择创建应用代码模板或空白应用,并填写应用信息;
后端数据处理模块,用于接受所述前端交互模块的数据,处理并存储至数据库,然后发送创建请求给服务端自动创建模块,再将所述服务端自动创建模块返回的状态码存储至所述数据库,用于刷新所述前端交互模块中的页面应用的状态;
服务端自动创建模块,用于创建代码和Git代码仓库,所述服务端自动创建模块接受到所述创建请求后,创建Git项目,读取所述数据中的应用代码模板或空白应用,然后自动创建基础应用代码,并自动保存至所述Git代码仓库中,最后返回所述状态码至所述后端数据处理模块。
2.如权利要求1所述的项目创建系统,其特征在于,所述操作按钮包括输入控件,以使用户通过鼠标点击,和/或文字输入,和/或语音输入的方式完成所述项目的自动化创建。
3.如权利要求1所述的项目创建系统,其特征在于,所述编辑按钮包括添加功能按钮控件、修改功能按钮控件、查询功能按钮控件、删除功能按钮控件以及刷新功能按钮控件,用户通过一个或多个所述编辑按钮实现增删改查的全部操作。
4.如权利要求1所述的项目创建系统,其特征在于,所述项目创建系统显示有系统页面和应用列表页面,用户通过所述分页按钮在所述系统页面和应用列表页面上实现分页操作,包括向前翻页、向后翻页、翻到第一页、翻到最后一页,以及页码控制、页数显示功能。
5.如权利要求1所述的项目创建系统,其特征在于,所述服务端自动创建模块调用GitLab服务的创建项目的应用编程接口,创建所述Git项目。
6.如权利要求5所述的项目创建系统,其特征在于,所述服务端自动创建模块结合Jhipster工具来自动创建所述基础应用代码。
7.如权利要求6所述的项目创建系统,其特征在于,所述Jhipster工具中不含有用户交互界面,且所述Jhipster工具直接将所述应用代码模板作为自动创建基础应用代码的输入参数,再通过复制已有的代码模板进行组合,从而按用户选择的应用代码模板来自动创建基础应用代码。
8.如权利要求5至7中任一项所述的项目创建系统,其特征在于,所述服务端自动创建模块在返回所述状态码的同时,还会返回所述Git代码仓库的地址。
9.如权利要求1所述的项目创建系统,其特征在于,所述状态码包括创建失败和创建成功两种状态。
10.一种自动化项目创建方法,其特征在于,采用如权利要求1至9中任一项所述的项目创建系统,所述自动化项目创建方法包括以下步骤:
用户通过所述前端交互模块创建应用并选择应用代码模板或空白应用,然后填写应用信息,所述前端交互模块将数据传输给所述后端数据处理模块;
所述后端数据处理模块将收到的数据存储到所述数据库,并发送创建请求至所述服务端自动创建模块;
所述服务端自动创建模块收到所述创建请求后,先创建好所述Git项目,然后读取所述数据中的应用代码模板或空白应用,自动创建基础应用代码,并提交到所述Git代码仓库中,最后所述服务端自动创建模块会返回所述状态码和Git代码仓库的地址给所述后端数据处理模块;
所述后端数据处理模块将所述状态码和Git代码仓库的地址存储进所述数据库中,所述前端交互模块读取所述数据库的状态码和Git代码仓库的地址后显示给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811479403.3A CN109582302A (zh) | 2018-12-05 | 2018-12-05 | 项目创建系统及自动化项目创建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811479403.3A CN109582302A (zh) | 2018-12-05 | 2018-12-05 | 项目创建系统及自动化项目创建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109582302A true CN109582302A (zh) | 2019-04-05 |
Family
ID=65927086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811479403.3A Pending CN109582302A (zh) | 2018-12-05 | 2018-12-05 | 项目创建系统及自动化项目创建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582302A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209385A (zh) * | 2019-05-09 | 2019-09-06 | 无线生活(杭州)信息科技有限公司 | 项目创建方法及装置 |
CN110825508A (zh) * | 2019-11-01 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于Git的任务管理方法 |
CN112307736A (zh) * | 2020-11-10 | 2021-02-02 | 政采云有限公司 | 一种应用项目创建方法、装置、设备及存储介质 |
CN112631565A (zh) * | 2020-12-25 | 2021-04-09 | 深圳云之家网络有限公司 | 业务融合方法、装置、计算机设备和存储介质 |
CN112947990A (zh) * | 2021-03-23 | 2021-06-11 | 四川虹美智能科技有限公司 | 开发库创建方法、装置及计算机可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779037A (zh) * | 2012-05-22 | 2012-11-14 | 杭州斯凯网络科技有限公司 | 一种自动生成与统一维护java项目的可视化编程方法 |
US20140237446A1 (en) * | 2013-02-21 | 2014-08-21 | Raul Sanchez | Systems and methods for organizing, classifying, and discovering automatically generated computer software |
US20160054980A1 (en) * | 2007-04-27 | 2016-02-25 | Dell Products, Lp | System and Method for Automated On-Demand Creation of a Customized Software Application |
CN107133044A (zh) * | 2017-05-05 | 2017-09-05 | 上海携程商务有限公司 | 数据维护型页面的快速开发方法和系统 |
CN108228166A (zh) * | 2018-03-15 | 2018-06-29 | 链家网(北京)科技有限公司 | 一种基于模板的后端代码生成方法及系统 |
-
2018
- 2018-12-05 CN CN201811479403.3A patent/CN109582302A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160054980A1 (en) * | 2007-04-27 | 2016-02-25 | Dell Products, Lp | System and Method for Automated On-Demand Creation of a Customized Software Application |
CN102779037A (zh) * | 2012-05-22 | 2012-11-14 | 杭州斯凯网络科技有限公司 | 一种自动生成与统一维护java项目的可视化编程方法 |
US20140237446A1 (en) * | 2013-02-21 | 2014-08-21 | Raul Sanchez | Systems and methods for organizing, classifying, and discovering automatically generated computer software |
CN107133044A (zh) * | 2017-05-05 | 2017-09-05 | 上海携程商务有限公司 | 数据维护型页面的快速开发方法和系统 |
CN108228166A (zh) * | 2018-03-15 | 2018-06-29 | 链家网(北京)科技有限公司 | 一种基于模板的后端代码生成方法及系统 |
Non-Patent Citations (2)
Title |
---|
JERRY同学,徐小丘等: "如何看待JHipster框架?", 《HTTPS://WWW.ZHIHU.COM/QUESTION/51082079/ANSWER/366148827》 * |
郑天民: "《向技术管理者转型:软件开发人员跨越行业、技术、管理的转型思维与实践》", 31 October 2017, 九州出版社 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209385A (zh) * | 2019-05-09 | 2019-09-06 | 无线生活(杭州)信息科技有限公司 | 项目创建方法及装置 |
CN110209385B (zh) * | 2019-05-09 | 2023-02-10 | 无线生活(杭州)信息科技有限公司 | 项目创建方法及装置 |
CN110825508A (zh) * | 2019-11-01 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于Git的任务管理方法 |
CN112307736A (zh) * | 2020-11-10 | 2021-02-02 | 政采云有限公司 | 一种应用项目创建方法、装置、设备及存储介质 |
CN112631565A (zh) * | 2020-12-25 | 2021-04-09 | 深圳云之家网络有限公司 | 业务融合方法、装置、计算机设备和存储介质 |
CN112947990A (zh) * | 2021-03-23 | 2021-06-11 | 四川虹美智能科技有限公司 | 开发库创建方法、装置及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582302A (zh) | 项目创建系统及自动化项目创建方法 | |
CN102207872B (zh) | 按照用户需求定制Web UI控件的方法和系统 | |
US7536672B1 (en) | Management of user interaction history with software applications | |
CN103383645B (zh) | 代码生成方法及系统 | |
CN101097579B (zh) | 提供模型数据生成器的系统和方法 | |
US7650335B2 (en) | High-level database management system | |
US8010530B2 (en) | Presentation of multilingual metadata | |
CN107844297A (zh) | 一种数据可视化实现系统及方法 | |
CN112328212A (zh) | 一种基于引擎模式前后端分离的快速开发平台及其使用方法 | |
CN109634607A (zh) | 一种代码自动生成的方法及装置 | |
US20030227482A1 (en) | User interface builder | |
CN103518220A (zh) | 在电子消息中自动汇总对文档的变更 | |
CN110673848A (zh) | 一种基于JavaWeb的企业信息管理系统配置平台 | |
CN102111282A (zh) | 一种基于电信业务的信息管理系统架构及其构建方法 | |
CN110837501A (zh) | 一种自定义表单系统、表单制作方法及存储介质 | |
CN113032633B (zh) | 一种利用引用数据项自定义表格的方法 | |
US20110113319A1 (en) | Introducing a form instance into an information container | |
US20030229646A1 (en) | Retrieving data for generating view components | |
US9741060B2 (en) | Recursive navigation in mobile CRM | |
US20040017397A1 (en) | Controllers and subcontrollers generating user interface displays | |
CN111460779B (zh) | 一种基于Activiti的流程表单数据渲染和存取方法 | |
US8495104B2 (en) | Database child object wizard | |
CN103870252A (zh) | 资源管理方法和装置 | |
CN104184824A (zh) | 手机报定制和推送的装置及方法 | |
KR101075023B1 (ko) | 연결문서를 이용한 문서의 히스토리관리 방법 및 이를 이용한 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190405 |
|
RJ01 | Rejection of invention patent application after publication |