如何在腾讯云上搭建一个人力资源 Saas

作者:ihr

在互联网盛行的时代,车联网,物联网相关的字眼随处可见。为了方便企业在员工管理上提供更为快捷有效地方式, ihr是基于当下主流企业人才管理方式及员工普及的社交方式微信的一个开放性平台。

它包含企业端的招聘管理、员工管理,其中招聘管理又包含了面试通知邀请、到Offer发放以及候选人入职管理;员工管理包含了员工信息及状态跟踪;求职者端包含了对职位查看及投递简历状态的跟踪。

就企业而言,能够更快获取到人才信息,包括内部员工推荐,求职者投递及第三方推荐,迅速跟进,筛选招聘,在企业端招聘负责人及需求责任人可通过不同客户端,web和微信了解到最新的职位动态,从而提高招聘效率;就求职者而言,人性化且简易地操作,省去繁琐地各种录入,多种渠道投递意向职位,实时了解面试情况,专业地流程让求职者提高了对公司的认可度。

整体架构

考虑到平台的用户量较大,所以在架构时选择了成熟、稳定地J2EE框架。如下图所示,该系统包含了两个独立的应用,分别提供web服务和wechat服务,两者的后端均采用了JAVA+JFinal的MVC模式;web应用的前端采用HTML5+CSS3+Bootstrap+AngularJS, wechat应用前端采用了HTML5+CSS3+Bootstrap;数据库目前使用了MySQL后期看用户量可以考虑mangoDB;在用户消息通知功能中使用了腾讯云的短信平台;两个应用共享一个服务器,如果后期流量过大将考虑拆分到不同服务器。

(整体架构图)

由于项目采用开源框架,所以与别的原生项目相比多了以下特点:

  1. 基础开源框架,项目采用了JFinal作为基础框架。JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。作为一个中小型项目,既能在短期内完全满足项目所需,同时也能极大提高开发效率且无第三方依赖。
  2. 页面维护性高,bootstrap的推出,解救了很多程序员的审美观,让他们脱离美工也能写出丰富多彩的页面,它是基于 HTML、CSS、JAVASCRIPT 的,简洁灵活,使得 Web 开发更加快捷。
  3. 独立应用,为了给用户提供更快捷地访问方式,将web端与微信端独立。Web端的登录采用了传统的角色,用户名和密码的验证;wechat端登录采用了微信OAuth接口授权方式,从而省去了用户注册流程。

核心功能

一.招聘管理系统

将中介推荐、自荐以及内部推荐的简历直接归档入库,并开启招聘流程。伴随整个招聘流程结束,期间求职者所需提交的资料,或需填写的信息,皆可由系统负责通知或采集。

二.面试管理系统

  1. 求职者,关注微信服务号,可以及时收到面试通知,查看面试结果,接收offer,反馈求职信息,以及提前录入个人资料。为HR简化通知面试及员工入职资料录入人力成本。
  2. 面试官,可通过微信查看面试者简历,上一轮面试评价,面试者是否已到场等候,提升面试管理效率。
  3. 部门负责人,可随时关注发布的职位招聘近况。提前了解求职者招聘流程,降低沟通成本,提高信息时效性。

经验分享

一.开发团队组建

项目组一共3人,分别承担业务需求分析、系统详细设计及编码实现的工作。由于初创团队资源不足,3人的配置还是略显不足,特别是缺少熟悉构建云服务方面的人员及经验。

二.设计开发过程中的心得

1.合理使用验证码,能够有效防止暴力攻击

在类似于登录或者敏感信息提交时,使用验证码,可以在一定程度上防止暴力攻击。但并不是说,只要是验证码都能起到很好的作用。

简单的图形验证码,很容易就能被代码解析。因此验证码也在不断更新换代,比如加干扰,验证码变形等。除非你有充足的时间或者现成的代码可以尽快实现,否则在一个验证功能花费过多的时间得不偿失,另外用户体验还不见得有多好。腾讯云服务提供的验证码,有多种验证方式,比如拼图和滑动拼图,用户体验都感觉不错,还能节省很多开发时间。可以考虑作为前期过渡使用。

当然,除了验证码外,还有访问次数限制和防重复提交等可以有效防止暴力攻击。

2.接入短信平台

短信的使用已经越来越频繁,比如发送重要的通知信息,找回密码的验证码等。选择一个收费合理,同时能保证送达率和实效性的短信平台,就尤其重要。

因为我们项目准备部署到腾讯云,正好了解到腾讯云也有短信平台,所以就进一步了解了下。不管是控制台操作,还是接口调用,都和微信服务号类似,容易上手。另外收费也还算合理,考虑到对云服务上的应用支撑应该还不错,最终决定选择腾讯云的短信平台。

3.将复杂的权限控制交给Shiro

在以往的项目中,权限是最让人头疼的,有角色,有用户,有大量的逻辑需要考虑。Shiro可以支持三种授权方式,包括编码,注解及jsp taglig,本项目考虑到耦合度,不想因为角色的改变去修改源码,就采用了注解方式。

4.采用敏捷开发模式

为了顺应当下日益更新的需求,相比传统的瀑布式开发已经不能适应。将系统拆分为系统模块化,排出优先级,尽快尽早地完成可用功能,再在此基础上循环迭代直到功能完善和稳定。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏MixLab科技+设计实验室

02我的跨界之路:探索前行

最近Github更新得比较频繁。 ? 因为我在不断地产出代码啦~ ---- 今天抽空回顾了下,为201508—201610之间做个总结。 这一年做了不少的尝试...

2947
来自专栏钱塘大数据

关于爬虫与反爬虫,这些“套路”你必须知道

爬虫与反爬虫,是一个很不阳光的行业。这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至...

3754
来自专栏华章科技

干货 | 那些你不知道的爬虫反爬虫套路

崔广宇,携程酒店研发部开发经理,与去哪儿艺龙的反爬虫同事是好基友。携程技术中心“非著名”段子手。

411
来自专栏北京马哥教育

那些你不知道的爬虫反爬虫套路

爬虫与反爬虫,是一个很不阳光的行业。 这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚...

2756
来自专栏BestSDK

产品经理“发疯”前,你得先了解这些技术

如果你经常浏览互联网方面的段子,你就会经常看到诸如“产品经理改需求被打”之类的搞笑娱乐信息,有些互联网公司还会在办公室的墙壁上贴上相关的图纸,用来告诉产品经理,...

3365
来自专栏phodal

讨论:编程的核心技术是什么?

931
来自专栏web前端教室

【怎么学】又有人问我,零基础怎么学?

不要急,不要气,忍住头疼,慢慢写来慢慢说。 今天又有人加我, -问我,“老尚,我想问问前端的事”; 我,“问”; -对方:“零基础怎么学前端?”; 我,“先行者...

3258
来自专栏互联网研发闲思录

微信架构相关文章

http://www.blogjava.net/yongboy/archive/2014/03/05/410636.html

572
来自专栏数据小魔方

简单易用的excel数据分析插件

今天给大家安利两款简单好用易上手的excel数据分析插件! excel虽然内置有数据分析模块 (需要调用开发工具,还不知道怎么调用的请参考小魔方12月21日文章...

2758
来自专栏BeJavaGod

文档!文档!文档!重要的事情说三遍!

项目一期基本开发完毕,包括后台管理系统以及提供给手机端的接口还有SSO,由于奔着敏捷开发去的,文档没有过多花时间去写, 当然了文档肯定有,开发人员写的自己能看懂...

3486

扫码关注云+社区