关注微信 欢迎致电:400-8310-286

你在这里

卡片定制系统

客户背景

客户是美国一家服务于纸产品的制造商及经销商的公司,专门从事于制造和零售高端的邀请函、文具、信封以及手工艺制品。客户公司在自制折叠邀请函技术方面在世界上是行业领先者,公司人员对袋装邀请函、文具、信封等的认识拥有丰富的经验,公司也有多位合作伙伴。客户之前有一套销售袋装邀请函、文具、信封以及手工艺制品的系统,但是为了满足更多用户的需求,同时为了能够对用户提供更加快速、高效、高质的软件服务,客户要求利用成熟的电商开源平台来进行功能定制。

客户在了解我公司的服务品质与价格方面的优势之后,将该项目外包于我公司。

项目概况

项目简介:Cards & Pockets项目包括两个独立的系统,一个站点系统是负责纸产品(包括邀请函、信封、文具以及手工艺制品等)的制造;另一个站点系统则是基于电商开源平台的系统,负责袋装邀请函、文具、信封、手工艺制品等产品的销售。

合作时间:2014.4~至今

项目规模:共约6人•月

合作模式:ODC (外包IT团队)

团队配置:团队共2人 ,项目经理1人,开发人员1人

技术要点:

  • 部署环境:Window Server 2012 R2,SQL Server 2014 R2, IIS8
  • 开发环境:Virtual Studio 2012, Kendo UI, C#, JavaScript/JQuery

 

解决方案

Cards & Pockets项目中manufacturing(负责生产邀请函、信封、文具以及手工艺制品等)系统,系统可以录入纸厂商以及Line(线:一组拥有材质、纹理等属性的颜色集合),根据Line生成拥有不同属性的纸,结合已录入的产品分类生成纸成品(如邀请函、文具、信封以及手工艺制品),再将产品一键同步到零售系统。该系统运用IOC设计模式来进行依赖注入,通过合理的接口设计以达到灵活扩展的目的,同时应用代码优先(Code First)来创建并初始化数据库,数据和电商系统数据进行对接交互。

另一方面,零售产品系统采用新发布的电商系统进行特定功能的定制,扩展产品分类模板(将拥有类似属性的产品以颜色块显示)功能、多种产品模板功能、添加FAQ(常见问题解答)分类以及FAQ功能、计算产品价格并打印功能、添加属性组功能、提供高性能的搜索、过滤的插件等,同时和manufacturing系统进行数据交互。

为了实现两个系统间的数据交互,分别在两个项目中建立两个数据上下文,建立对应的数据模型,实现相应的业务逻辑。

困难及挑战

  问题 采取的方案
代码提交
  • 客户有时会修改前台代码以及样式,经常容易造成代码冲突
  • 每天在做新任务前,先获取客户的修改。
  • 为了加快项目进度,客户建议用beanstalk来管理Release版本。
需求管理
  • 需求变动快,无固定需求文档
  • 因为客户对同一功能需求会多次提出修改,每次都不一样,主要由我们进行整理汇总。
开发与维护
  • 数据库设计与业务需求不完全匹配
  • Entity Framework同时连接和操作两个数据库
  • 与客户多次沟通讨论之后,对数据库设计进行了局部调整,使其能更适应业务需求。
  • 通过搜索和研究,建立两个数据上下文实现了同时操作两个数据库。
质量控制
  • 客户对产品搜索以及Ajax Filter有特殊的性能、速度要求
  • 客户希望先完成功能优化以及数据的正确配置之后,才能直接部署到产品网站上
  • 在发布版本时容易有文件遗漏和数据未更新的问题
  • 通过和客户讨论,用CDN插件来提高性能和速度。
  • 在部署产品网站之前,先部署开发测试网站,以满足客户的需求。
  • 整理出发布流程,每次发布严格按照流程进行检查,保证版本发布正确性。同时版本发布必须经过在开发测试网站上进行充分测试后才会部署到产品网站。

相关技术

  • Asp.net MVC 5.2
  • Linq to Entity Framework
  • JS, JQuery, Kendo UI
  • Html, CSS
  • Autofac

客户收益

1. 系统实现了客户的需求,达到了客户的预期,客户表示满意。

2. 基于此系统,客户可以轻松控制两个系统的数据对接,操作更加简洁方便。

3. 客户能够自己定制产品(包括颜色、重量、尺寸等)。

4. 一键生成纸、产品以及同步到产品零售系统,很大程度上节约时间成本。

5. 自定义产品分类模板,拥有类似属性的产品以颜色块的形式展示,用户体验更好,方便用户选择,可以对该分类下产品一览无余。

系统截图

manufacturing- 首页

卡片定制系统

manufacturing- 生成Paper

卡片定制系统

manufacturing- 根据category和paper生成product

卡片定制系统

manufacturing- 一键同步products到电商系统

卡片定制系统

电商系统- 自定义分类Page(pocket invitations)

卡片定制系统

电商系统- product评论定制模块

卡片定制系统

电商系统- paper color chart定制模块

卡片定制系统

电商系统- 产品搜索页面以及Ajax Filter功能

卡片定制系统

电商系统- 计算product打印价格功能

卡片定制系统

健康产品网上商店系统

项目概况

项目简介:客户是一个专注于无线应用和网络广告的美国公司。他们的在线商店主要出售自己的线和补充维生素。然而,该网站的购物车引擎已经过时了,所以他们想要将系统升级。

合作时间:2013.4~2013.7

项目规模:共约4人•月

合作模式:固定报价

团队配置:团队共4人 ,项目经理1人,开发人员2人,测试人员1人

需求分析

客户打算用8个月的时间重新改造自己的网站。但是,他们考虑到收益的最大化。所以在中期,主要着力于修改现有的网站/购物车来实现收益最大化和提高用户体验。

客户最初提供的规范文件和图片来解释他们想要的东西。经过多次沟通,我们的业务分析师得出如下需求表:

产品 保健产品
产品数量 几百个
顾客 超过10万
购买流程

选择产品 -> 加入购入车 -> 送货地址 -> 支付

额外需求1: 用户应当能够徘徊在购物过程中的任何步骤,以及步骤应暂时保存数据。

额外需求2: 用户在完成订单之前,可以修改自己在任何步骤提供的数据。

支付流程 使用第三方API
订单完成以后

1. 订单完成以后,会收到邮件。

2. 顾客可以以PDF的形式,打印或者保存自己的订单。

解决方案

  • 用户信息:我们的开发团队结合主密钥,证书和对称加密用户的信用卡号码,电子支票号码和用户的登录密码。
  • 数据库:存储过程进行查询,添加,删除和编辑数据。该网站是只授予权限执行存储过程,以避免对数据库的攻击。
  • ssl:godaddy的SSL密封添加到网站提供全面的保护。
  • 采用敏捷开发模式,更好的处理客户提出需求或问题。
  • 基于成熟的ASP.NET开源产品做二次开发,在节约成本的同时使产品更稳定,功能更强大。
  • 合作方式,及时透明沟通,向客户发送日报和周报,让客户了解项目开发情况。
  • 项目部署,客户遇到的问题,我们都会想办法解决,让客户能顺利、熟练地使用。

相关技术

  • C#
  • ASP.NET
  • Linq to Entity Framework
  • JS, JQuery
  • Html, CSS
  • Telerik MVC Extensions
  • MS SQL 2008 R2

亮点

  • 客户超过100000的快速发展
  • 人性化、互动的购买过程,为客户提供出色的购买体验
  • 多级安全:安全技术保证100%安全购买

客户收益

1. 系统实现了客户的需求,达到了客户的预期,客户表示满意。

2. 快速完成,为了使我们的客户尽快得到产品和节约成本,我们采用了敏捷开发。

3. 我们每天发送报告,让客户了解整个开发过程。我们通过周报总结这周所要完成的功能和下一周的详细计划。我们部署了一个测试网站,以便我们能得到客户的反馈,并根据反馈尽快做一些调整。该系统稳定可靠、易于扩展和维护,给用户带来了最好的体验。

4. 项目组的每个人都在电商开发领域有丰富的经验,使得项目开发高质高效。

系统截图

健康产品网上商店系统

多语言B2B网站

项目概况

项目简介:该项目致力于为卖产品的客户和买产品的客户提供一个交流,交易的平台。在这个平台上,产品分为两大类,一类是普通,正常的商品,一类是提供的服务。平台主要提供三种语言和币种:美元-英语;中文-人民币;西班牙语-欧元。平台方根据完成的订单金额获得一定的收益。

合作时间:2014.4~至今

项目规模:共约6人•月

合作模式:ODC (“外包IT团队’)

团队配置:团队共2人 ,项目经理1人,开发人员1人

技术要点:

  • 部署环境:Window Server 2012 R2,SQL Server 2014 R2, IIS8
  • 开发环境:Virtual Studio 2012, Kendo UI, C#, JavaScript/JQuery

 

解决方案

对电商开发原有系统增加了用户角色和权限,使得该系统分为买家,卖家和超级管理员三种角色。买家可以购买产品;卖家在前台有自己的产品汇总和详细展示页面;可以管理自己的产品,订单和客户。超级管理员则是网站的最高管理者,有最高权限。

产品分为两大类,一类是普通,正常的商品,一类是提供的服务。针对服务这种特殊的‘产品’,在购买和付款的页面和流程上面,我们根据客户的需要进行了功能定制。

客户要求的三种语言和币种,实现语言和币种关联。第一次访问判断用户是否选择相应的语言,进而提示用户。客户选择相应语言,也就自动选择了相应的币种。

后台添加分润系统。超级管理员针对不同的客户,设置相应的分润信息,每产生一笔订单,自动分润。

扩展Excel导入产品的功能。让不同卖家导入自己的产品,而且三种语言的产品能够一次性导入。

困难及挑战

  问题 采取的方案
需求管理
  • 需求变动快,无固定需求文档
  • 客户有些需求操作起来有困难
  • 客户提出的需求比较零散,由我们进行整理汇总
  • 为客户提供一些我们自己的见解及看法,优化系统。很多都得到采纳,效果也不错
开发与维护
  • 不同分辨率设备的匹配问题
  • 客户那边的网站维护人员对系统不熟悉及要导入产品的Excel格式不符合要求
  • 客户担心不同分辨率展示的问题,想单独制作App。与客户多次沟通讨论之后,对布局进行Responsive调整,使其能更适应客户需求
  • 通过和客户多次沟通,讲解和提供模板等方式,一步步让网站维护人员熟悉了解系统及导入产品Excel上的各种注意事项
质量控制
  • 客户提供Demo站点服务器,所有更新都现在Demo站点上部署
  • 每次提交都经过严格测试,然后部署到Demo站点。在Demo站点上再进行一轮测试,确保正确性,保证了客户能和我们看到一样的东西,也让沟通更顺畅

相关技术

  • Asp.net MVC 4.0
  • Entity Framework Code First
  • JS, JQuery, Kendo UI
  • Html, CSS
  • Autofac
  • EPPlus

客户收益

1. 系统实现了客户的需求,达到了客户的预期,客户表示满意。

2. 客户是想基于我们制作的PC版,再做手机端(Android 和IOS平台)。但是我们使用Responsive布局,达到了客户的要求,为客户节省开发成本和开发时间。

3. 客户打算继续和我们合作,开发二期功能。

系统截图

选择语言

多语言B2B网站案例

首页

多语言B2B网站案例

产品展示

多语言B2B网站案例

服务展示

多语言B2B网站案例

超级管理员后台界面

多语言B2B网站案例

卖家后台管理页面

多语言B2B网站案例

买家信息

多语言B2B网站案例

电子商务自助建站系统

项目概况

项目简介:电子商务自助建站系统是一个功能比较强大的B2B站点,它允许商家(卖家)用户通过网站创建他们自己的电子商务网站,选择网站的风格(皮肤),并管理自己的站点和商品,允许个人(买家)用户通过网站购买任意商品。系统由ASP.NET中最好的电商开源项目高度定制,扩展CMS功能、多店功能及购物车功能等。在项目开始前,我们充分调研了国外的一些电子商务建站系统,如Shopify和wix.com等,使得系统更具有稳定性和可用性。

合作时间:2013.4~2013.7

项目规模:共约4人•月

合作模式:固定报价

团队配置:团队共4人 ,项目经理1人,开发人员2人,测试人员1人

需求分析

  • 在注册过程中,用户可以创建和发布一个网站或在线商店。
  • 用户可以注册自己的域名或者选择他已经有的域名。
  • 提供给商家和买家的支付接口。
  • 商家通过指定的流程完成建站过程。
  • 商家可以编辑每个页面和内容/文本。
  • 商家可以上传任意的产品和文件到他的网站。
  • 系统反馈功能和帮助功能。
  • 定制皮肤(模版)。

解决方案

  • 本项目采用敏捷开发模式,更好的处理客户提出需求或问题。
  • 基于成熟的ASP.NET开源产品做二次开发,在节约成本的同时使产品更稳定,功能更强大。
  • 技术上主要是灵活地使用MVC,使系统具有比较灵活的切换皮肤、CMS及购物车等主要功能。
  • 合作方式,及时透明沟通,向客户发送日报和周报,让客户了解项目开发情况。
  • 项目部署,客户遇到的问题,我们都会想办法解决,让客户能顺利、熟练地使用。

相关技术

  • C#, Asp.net MVC
  • Entity Framework Code First
  • JS, JQuery, Kendo UI
  • Html, CSS
  • Autofac

亮点

  • 建站时皮肤选择、预览模版。
  • 简单明了的建站流程。用户选择一个模板,然后创建网站名称,域名,选择/创建网页和编辑网页内容等。
  • 可视化编辑网站内容和样式。
  • 域名注册。他们可以选择注册自己的域名或者使用系统的子域名。

客户收益

1. 系统实现了客户的需求,达到了客户的预期,客户表示满意。

2. 快速完成,为了使我们的客户尽快得到产品和节约成本,我们采用了敏捷开发。

3. 我们每天发送报告,让客户了解整个开发过程。我们通过周报总结这周所要完成的功能和下一周的详细计划。我们部署了一个测试网站,以便我们能得到客户的反馈,并根据反馈尽快做一些调整。该系统稳定可靠、易于扩展和维护,给用户带来了最好的体验。

4. 我们将分开的相对独立的模块转换成用户控件,这使得系统更加稳定和更具有可维护性。

5. 项目组的每个人都在电商开发领域有丰富的经验,使得项目开发高质高效。

系统截图

电子商务自助建站系统案例

电子商务自助建站系统案例

电子商务自助建站系统案例

电子商务自助建站系统案例

电子商务自助建站系统案例

电子商务网站结合ERP系统

项目概况

项目简介:客户自己已有一个ERP系统,现在想要搭建一个电商平台,然后让ERP系统和电商平台协同工作。本项目主要在于整合ERP和电商平台之间的数据交换和共享。它保留了ERP系统和电商平台原有的功能。电商平台的客户和产品数据来至于ERP系统。而客户在电商平台下订单以后,请求和数据将返回到ERP系统。在项目开始前,我们充分调研了客户的ERP系统,积极和客户沟通,商讨各个协作环节的处理方式。使得系统更具有稳定性和可用性。

合作时间:2013.4~2013.7

项目规模:共约4人•月

合作模式:固定报价

团队配置:团队共4人 ,项目经理1人,开发人员2人,测试人员1人

需求分析

  • 电商平台的客户数据要来源于ERP系统
  • 电商平台的商品数据要来源于ERP系统
  • 电商平台同步数据时,ERP系统进行帐户登录认证
  • 客户在电商平台下订单的同时,通知ERP系统下单。客户只需要维护ERP系统的订单即可

解决方案

  • 本项目采用敏捷开发模式,更好的处理客户提出需求或问题
  • 基于成熟的ASP.NET开源产品做二次开发,在节约成本的同时使产品更稳定,功能更强大
  • 合作方式,及时透明沟通,向客户发送日报和周报,让客户了解项目开发情况
  • 项目部署,客户遇到的问题,我们都会想办法解决,让客户能顺利、熟练地使用

相关技术

  • C#
  • ASP.NET
  • Linq to Entity Framework
  • HTML&CSS
  • JavaScript&JQuery
  • Telerik MVC Extensions
  • MS SQL 2008 R2
  • Visual Studio 2012

亮点

  • 从ERP系统为电商平台集成API
  • 从ERP系统的帐户登录认证
  • 整合ERP系统客户地址信息
  • 结合ERP系统的产品数据和信息
  • 从ERP系统同步客户数据
  • 从ERP系统的同步产品数据
  • 客户在电商平台下订单的同时,给ERP系统下订单

客户收益

1. 系统实现了客户的需求,达到了客户的预期,客户表示满意。

2. 快速完成,为了使我们的客户尽快得到产品和节约成本,我们采用了敏捷开发。

3. 我们每天发送报告,让客户了解整个开发过程。我们通过周报总结这周所要完成的功能和下一周的详细计划。我们部署了一个测试网站,以便我们能得到客户的反馈,并根据反馈尽快做一些调整。该系统稳定可靠、易于扩展和维护,给用户带来了最好的体验。

4. 项目组的每个人都在电商开发领域有丰富的经验,使得项目开发高质高效。

系统截图

电子商务网站结合ERP系统案例

电子商务网站结合ERP系统案例

电子商务网站结合ERP系统案例

电子商务网站结合ERP系统案例

Magento-孕婴童商店

项目概况

         客户是上海一家销售孕婴童产品的公司,由于公司刚起步,需要一个网上商店来打开市场,客户要求使用Magento做二次开发。

需求

  1. 使用最新版本的Magento
  2. 集成皮肤(皮肤由客户提供)
  3. 调整页面功能
  4. 实现Blog功能
  5. 实现多语言
  6. 集成支付宝插件
  7. 实现会员邀请注册

亮点

实现会员邀请注册模块

由于客户要求被邀请的人才能注册,并且可以限制每个人的邀请数,所以我们开发了这个模块。相关截图如下:

后台邀请列表页面:

后台设置用户可邀请数:

 

前台展示效果:

 

解决方案

 

此系统需要将已有的皮肤集成,所以有很多样式都可以直接使用。

由于当前皮肤不支持复杂类型的商品展示,我们重写了商品详细页面。

为了系统能更好的维护和升级,我们采用新建模块,继承系统模块的方式编码,虽然编码过程中有一定的繁琐,但是不修改原系统任何一个文件,能避免升级造成的错误。

困难及挑战

如何在后台添加数据展示列表?[W1] 

在后台展示数据列表需继承 Mage_Adminhtml_Controller_action类并实现方法gridAction,在配置文件中指定Action所对应的Block。在模块中新建一个Block继承Mage_Adminhtml_Block_Widget_Grid,实现_prepareCollection方法制定数据集,在方法_prepareColumns中控制列的展示

客户收益

1. 此平台实现了客户的需求,达到了客户的预期,客户表示满意。

2. 基于此系统,客户仅需简单的添加商品,编辑相关文章内容就可以快速的使网店上线,进而有效提升了客户在同行业中的竞争力。

3.完美的设计使系统能够跟踪商品的每一个操作,简化了客户的工作。

 

所用技术点[W2] 

1. PHP

2. MVC

3. Magento

4. Html,CSS

5. JavaScript&JQuery

6. apache server

7. MySql

系统截图:

网站首页

 

商品分类页面

 

商品详细页面

 

支付页面

 

后台管理页面

 

邀请管理页面

雷米官方网站

概要

客户是一家著名的汽车部件制造商,总部设在美国,在全球多个国家拥有分公司, 客户这次的需求是给在中国的分公司建立独立的网站,来介绍及宣传公司和公司的产品。新网站拥有和总部官网相似的外观,但是不同内容。诺怀将帮助客户搭建网站并发布到客户的服务器,正式上线。

因为诺怀拥有丰富的网站开发和发布经验,并且诺怀是Kentico金牌合作伙伴,所以客户选择跟诺怀合作。

 

使用技术

·         Kentico CMS

 

解决方案

Kentico CMS Ultimate

客户美国的官网使用的是Kentico技术, 所以中国站点继续让诺怀使用Kentico CMS为他建站。 因为Kentico是一款功能强大的内容管理平台,可以快速定制功能强大的站点,同时诺怀具有丰富的CMS建站经验,在较短的时间内向客户提交了高质量的产品。

Kentico License

客户已经拥有了域名, 但是需要使用全新的服务器。

诺怀根据经验,为客户推荐购买了1 Website Ultimate License 组合的许可证,为客户提供了专业和技术上的指导,使购买的版本能最终符合客户的实际需要,同时,作为Kentico的金牌合作伙伴,诺怀客户可以享受Kentico许可购买的优惠政策,这大大降低了客户的成本。

 

亮点

·         使用Kentico CMS高效率地建立网站。

·         给客户提供网站部署的建议并成功发布网站到客户的服务器。

·         诺怀软件使用诺怀可为CRM系统来管理客户的所有项目,跟踪任务和Bug,保证服务质量。(诺怀可为CRM系统是由诺怀软件自主开发的软件产品。)

·         诺怀在项目中使用敏捷开发, 坚持给客户交付可用的版本, 使客户实时了解项目进度。

 

客户获益

·         客户通过诺怀的帮助, 最终站点按照需求完成了开发, 并被成功的发布。 通过诺怀的建议, 客户在建站成本上获得了较好的控制;通过诺怀频繁的提交,客户对项目的进度进行了很好的把控,并且获取到了期望的产品。

 

截图

首页1

 

 

 

公司页面

 

客户页面

 

产品页面

 

 

OpenCart轮圈商店系统

项目概况

         客户是瑞典一家提供轮胎代销的公司,客户已有一个由Prestashop搭建的商店,但是不太满足客户的操作习惯,希望将现有的商店用OpenCart 来开发,并保留Prestashop站点中的一些功能和数据。

需求

  1. 使用最新版本的opencart
  2. 将现有的prestashop站点模版迁移到opencart站点中
  3. 将prestashop中的数据迁移到opencart站点中
  4. 实现fitment功能
  5. 实现Option combine功能
  6. 个性化filter功能

 

亮点

实现Option Combine模块

OpenCart关于Option的设计是一个option项对应一个库存量,而客户需求是多个option项的组合对应一个库存量,所以我们开发了这个模块。相关截图如下:

 

后台设置页面

\OldWorkPlace\www\Nova-Sites\Project\Images\Case-Study\OpenCart\MigrateFormPrestashop\06.png

 

前台展示效果:

 

解决方案

此系统需要将已有的站点的模版样式迁移过来,所以有很多样式都可以从原站点获取,对此我们使用了站点样式抓取工具(WinHTTrack)来获取老站点的样式,并使用到opencart站点中,节省了很多时间。

由于Opencart和Prestashop系统设计差异比较大,要实现数据迁移需要对两者的数据库设计比较了解,我们采取了使用sql脚本的形式来完成数据迁移。

为了系统能更好的维护和升级,我们采取了vqmod来进行开发,虽然编码过程中有一定的繁琐,但是不修改原系统任何一个文件,能避免升级造成的错误。

 

困难及挑战

如何使用vqmod来进行开发?

Vqmod是opencart的一个插件,安装后,可以看到代码文件全是XML格式,每一个代码节点的具体工作流程就是:查找文件->查找代码段->操作代码(替换,删除,增加)。

 

所用技术点

1. PHP

2. MVC

3. OpenCart

4. Html,CSS

5. JavaScript&JQuery

6. WebService

7. apache server

8. MySql

 

系统截图

网站首页

\Users\Tony Huang\Desktop\1.png

商品分类页面

\Users\Tony Huang\Desktop\2.png

商品详细页面

\Users\Tony Huang\Desktop\3.png

支付页面

\Users\Tony Huang\Desktop\4.png

后台管理页面

\Users\Tony Huang\Desktop\5.png

Option Combine页面

\OldWorkPlace\www\Nova-Sites\Project\Images\Case-Study\OpenCart\MigrateFormPrestashop\06.png

TracTerra订单管理系统

概述

TerraCorp是一家提供地图测绘服务的有限责任公司,公司位于美国德克萨斯州,业务覆盖整个达拉斯-沃斯堡大都会区。该公司拥有一批经验丰富的专业技术人员,可以为任何规模的项目提供精准的测量服务,包括小型住宅到大型商业项目。公司配有世界领先的现场勘测设备以及绘图软件,配合TracTerra专业化的测量订单管理系统,可以实现订单从下单到交付的全程生命周期管理,保证项目进程的高效以及质量。

需求

功能需求

  1. 权限管理
  2. 数据字典管理
  3. 订单CRUD
  4. 测量订单处理工作流
  5. 订单相关文档上传
  6. 订单核算
  7. 订单处理留言
  8. 订单处理日志
  9. 订单处理日常邮件
  10. 测量订单生成/发送
  11. 订单发票生成/发送
  12. 现场处理人员分配
  13. 公司内部邮件
  14. 订单报表
  15. 订单报价申请
  16. 响应式界面
  17. WebAPI

 

业务流程

该软件将由客户或者管理员放置一笔订单开始,接着由公司调查人员(Researcher)处理该笔订单并实地调查后上传一些最终测量报告所需要的相关文档。一旦文档被调查人员上传后,订单将转入下一流程由调度人员(Crew Scheduler)处理并分配相应的订单给现场人员(Field Crews)。现场人员将实地处理订单测量工作并上传所有订单相关的文档,然后流转订单流程给绘图人员(Drafting)。绘图人员将基于所有工作流程中所上传的文档绘制订单测量图并上传,接着订单流转到最后一步,由专业测量员(PLS)查看所有流程中已上传的文档,并最终决定订单是否完成。如果订单完成,PLS将最终生成PDF订单测量报告以及发票信息,并发送给最终用户,否则PLS将重新流转订单流程到以前的步骤让相关人员重新处理。

订单流程图

\Users\enginetan\Desktop\workflow.png

 

解决方案

技术平台

  • 基础框架: .Net Framework 4
  • 数据库:SQL Server 2008 R2
  • 数据访问:Entity framework 5
  • 系统框架:Spring.net, Asp.net WebAPI
  • 前端框架:WebForm, Bootstrap
  • 第三方控件:JqGrid, DataTables, PDF Lib, Google Maps API, QuickBooks API, Highcharts, ,iTextSharp, Sparkline.

 

系统代码架构

  • 此架构基于传统三层结构,EF是持久层,Dao是数据访问层,Service是服务层,

   ASP.net WebFrom作为表现层。简单描述如下

  1. 持久层使用微软最前的Entity Framework 5.0框架技术,其中会自动生成Model实体类;
  2. IDao作为数据访问层接口,仅允许服务层引用;
  3. Dao是数据访问层的接口实现,使用Spring.NET向Service层中注入;
  4. IService是服务层接口,仅允许表现层引用;
  5. Service服务层接口实现,与Dao层通信,使用Spring.NET向Web层注入;
  6. 表现层使用ASP.NET WebForm,并采用JavaScript, html控件。并配合其他的一些三方控件完成界面展示。

 

  • 总体架构图

 

系统部署

  • 应用场景

 

亮点

测量报告生成

该系统的主要功能就是在不同业务流程中由各角色的操作人处理测量工作并上传最终测量文档生成所需要的部分文档内容,最终在业务流程结束后,会由管理员根据文档的相关内容生成最终的PDF测量报告和发票信息,并邮件给客户,完成订单流程。PDF文档生成使用PDFLib库开发。

测量报告

 

文件拖拽上传

系统业务中各业务处理人员需要上传处理后的测量文档或相关资料,为了方便用户操作,系统采用JQuery DropZone插件实现了文件的拖拽上传。

测量文档上传

\Users\enginetan\Desktop\Case Study\Document Upload.png

Google 地图路径

该功能用于Field Crew人员工作分配以及跟踪。当订单处理流程流转到Field Assignment状态时,管理员可以选择待处理的订单并分配到相应处理人员,并根据订单的位置信息,在地图上将人员处理批量订单时经过的最短路径信息显示在Google地图上,供管理员决策并调整处理人员与订单的关系。该功能使用JQuery SortTable插件配合Google Maps API库开发,订单与人员的调整采用全拖放式的效果,用户体验性较好。

站场人员分配

\Users\enginetan\Desktop\Case Study\fieldmodule.png

 

 

响应式界面

该功能主要是为了适应不同的设备(如PC,Pad,手机等),在不同的设备上获得一致的界面。在减少成本的同时达到较好的使用体验。该特性基于Bootstrap UI 框架,并配合一些相关的Jquery插件,实现了相应的响应式效果,如响应式Form表单,响应式JqGrid表格等。

响应式登陆界面

\Users\enginetan\Desktop\Case Study\responsivelogin.png 

响应式表格

\Users\enginetan\Desktop\Case Study\responsivetable.png

响应式表单

\Users\enginetan\Desktop\Case Study\responsiveform.png

响应式菜单

\Users\enginetan\Desktop\Case Study\responsivemenu.png

 

JqGrid报表导出/打印

该功能采用JQuery JqGrid插件来展现报表,包括二维表以及树形表格,并通过iTextSharp实现报表导出为pdf。报表打印通过动态筛选JqGrid Dom元素并采用PrintArea插件实现区域打印。

报表打印

\Users\enginetan\Desktop\Case Study\print.png

 

技术难点

业务流程

由于该系统是测量行业的订单系统,需要理解相关的行业知识。加上前期客户对业务对象的相关数据项描述得不够清楚,所以在前期需求阶段,需要跟客户不断的沟通,理清业务流程以及相关的行业数据。

QuickBooks

QuickBooks API是一套远程Web API,用于访问QuickBooks系统中的业务数据,实现二次开发。在TracTerra项目中,客户需要使用QuickBooks API 实现系统间的客户以及发票数据同步。在前期使用时,由于初次接触,需要查阅大量的官方文档,并且熟悉QuickBooks API 的使用方式,以及与Tracterra项目中的异构数据进行同步的问题。

通过对QuickBooks的调研以及在官方的支持下,我们进行了一些实验以及Demo程序的编写,最终调试通过并顺利集成到TracTerra系统。

 

预期收益       

该项目目前仍处于测试阶段,预期上线后能有效促进TerraCorp公司的工作流程规范化,保证测量订单的处理以及相关人员的分配高效且合理,最终提升公司对外形象,提高整体业务能力,确保公司利益最大化。

 

总结

整体项目开发以迭代方式分成需求,计划,设计,编码,测试,重构,项目管理等阶段,并制定每周开发任务,任务结束后,通过skype与客户沟通并确认已完成的开发任务,并与客户一道制定下周计划。

开发期间,与客户积极配合,并制定了一些需求文档以及原型界面。在开发中如果出现与需求有偏差的问题,会及时跟客户邮件沟通,并寻求解决方案。

项目中采用了一些之前未接触过的技术点,所以必须主动配合客户去学习新技术,并达到客户预想的结果。在满足客户需求的前提下追求更优解决方案,保证客户的利益。

在线票务展示销售系统

概述

客户是加勒比地区的一家票务和门禁系统服务公司,为了给其客户提供快捷、高效的票务和门禁服务,客户要求建立一套在线票务展示销售系统,并在此基础上集成门禁系统的票面验证功能。

 

需求:

  1. 基于NodeJS ExpressJS 3.0实现。
  2. 实现事件在线动态管理。
  3. 实现基于组织结构的权限管理。
  4. 实现在线生成电子票PDF文件,包含条形码和二维码。
  5. 实现在线验证,扫描条形码及二维码验证真伪,以及票面信息。
  6. 实现Paypal在线支付功能。.
  7. 社交系统集成Facebook,twitter分享功能。

 

解决方案

此系统随着项目的推广和发展并发数据可能会很高,基于此目的,服务器方面我们选择了NodeJS Express 3.0,数据库采用MySQL与Cache结合,这样由于NodeJS的无阻塞高性能的特性,系统可以快速响应客户端请求,服务端可以很容易做到系统扩展。

 

困难及挑战

如何生成PDF?

最初我们在NPM官网找了几种解决方案,有第三方插件的,有通过模板生成的,通过最后评估我们选用了我们最为熟悉的技术方案,使用Wkhtmltopdf。

其他方案需要安装插件应用程序,学习新的模板语言,维护难度大而且学习成本较高。Wkhtmltopdf直接通过html模板输出PDF,由于Linux内核的Chrome版本和windows以及最新版Chrome版本不同,渲染的结果输出不一致,需要在不同的系统下调试输出结果。

最开始使用的模板由于页面有缩放导致打印输出的PDF清晰度不高,无法直接扫描,经过调整CSS最终输出的PDF达到客户的要求。

 

客户收益

此平台实现了客户的需求,达到了客户的预期,客户表示满意。

此平台能够迅速实现票务在线销售支付,门禁验证,进而有效提升了客户的竞争力。

客户基于此系统成功的搭建了,哥伦比亚站和特尼尼达和多巴哥站。

 

所用技术点

  1. NodeJS
  2. ExpressJS
  3. Backbone
  4. jQuery
  5. WebApi
  6. Cache
  7. MySQL
  8. ORM

 

系统截图

首页:

 

用户中心:

在线支付:

社交平台集成:

管理员界面:

页面

备案/许可证编号为:渝ICP备14000366号-1