如何在腾讯云上搭建一个人力资源 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 条评论
登录 后参与评论

相关文章

来自专栏人人都是极客

嵌入式学习路线图

可能是年前跳槽的比较多,遇到不少同学咨询到嵌入式行业发展和职业规划的问题,这里总结一下嵌入式行业的机遇和选择,希望对读者们有所帮助。 我们暂且宏观上把程序员分为...

2945
来自专栏用户2442861的专栏

游戏项目开发经验分享

http://blog.csdn.net/cyblueboy83/article/details/7905862

681
来自专栏编程一生

漫画:鉴权与安全访问控制的技术血脉

    十年前,静儿做的是传统软件的项目,都是企业定制的项目,系统安装在企业的机器上,通过硬件来做物理隔离。系统的安全访问控制靠操作系统来保证。

581
来自专栏微信终端开发团队的专栏

微信 Android 模块化架构重构实践(下)

重构整体架构不是一件容易事,通常也不太可能让整个团队停下来只做重构。本文是微信 Android 模块化架构重构实践的下篇,主要分享模块化架构重构的一点点经验。

1.1K3
来自专栏数据和云

数据库流行度8月排行榜:Oracle 飙升 和 PostgreSQL 绝尘领跑第二梯队

转眼又是一个 8 月,新的数据库排行榜已经出炉。上月榜单参考:2018年7月排名。

902
来自专栏飞总聊IT

从GitLab事件谈我的经历

先上个图,给各位程序猿们拜个年 ? 悲剧年年有,今年到GitLab家。著名的GitLab这几天在Tech界登上了头条,登上的原因是因为运维人员使用了rm -rf...

35910
来自专栏顶级程序员

行走在消失中的5种编程语言

来自:IT经理网(微信号: ctociocom) 链接:www.ctocio.com/ccnews/23425.html(点击尾部阅读原文前往) 不少编程语言...

2736
来自专栏互联网杂技

行走在消失中的5种编程语言

不少编程语言的寿命很长,因为企业和机构往往不愿意花费时间和资源去用新语言重写关键任务软件,因此一些重要系统上经常会有很多运行了数十年高龄的编程语言写的代码,例如...

33413
来自专栏Python专栏

GitHub宕机24小时,我们还能干嘛

不过我更喜欢下面这幅图,虽然我已经2年不用windows了,但是看到这个图还是很想笑啊,每次windows一个补丁,就能让你半天不用看屏幕了。

522
来自专栏FreeBuf

美国GAO武器系统安全报告:先进武器装备多存在安全漏洞

美国政府问责局(GovernmentAccountabilityOffice,GAO)日前发布报告称,美国国防部开发的武器系统都存在安全漏洞,攻击者可以控制这些...

795

扫码关注云+社区