如何在腾讯云上搭建一我的力资源Saas

版权声明:本文由ihr原创文章,转载请注明出处: 
文章原文连接:https://www.qcloud.com/community/article/180前端

来源:腾云阁 https://www.qcloud.com/community程序员

 

在互联网盛行的时代,车联网,物联网相关的字眼随处可见。为了方便企业在员工管理上提供更为快捷有效地方式, ihr是基于当下主流企业人才管理方式及员工普及的社交方式微信的一个开放性平台。
它包含企业端的招聘管理、员工管理,其中招聘管理又包含了面试通知邀请、到Offer发放以及候选人入职管理;员工管理包含了员工信息及状态跟踪;求职者端包含了对职位查看及投递简历状态的跟踪。
就企业而言,可以更快获取到人才信息,包括内部员工推荐,求职者投递及第三方推荐,迅速跟进,筛选招聘,在企业端招聘负责人及需求责任人可经过不一样客户端,web和微信了解到最新的职位动态,从而提升招聘效率;
就求职者而言,人性化且简易地操做,省去繁琐地各类录入,多种渠道投递意向职位,实时了解面试状况,专业地流程让求职者提升了对公司的承认度。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人的配置仍是略显不足,特别是缺乏熟悉构建云服务方面的人员及经验。bootstrap

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

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

在相似于登陆或者敏感信息提交时,使用验证码,能够在必定程度上防止暴力攻击。但并非说,只要是验证码都能起到很好的做用。
简单的图形验证码,很容易就能被代码解析。所以验证码也在不断更新换代,好比加干扰,验证码变形等。除非你有充足的时间或者现成的代码能够尽快实现,不然在一个验证功能花费过多的时间得不偿失,另外用户体验还不见得有多好。腾讯云服务提供的验证码,有多种验证方式,好比拼图和滑动拼图,用户体验都感受不错,还能节省不少开发时间。能够考虑做为前期过渡使用。
固然,除了验证码外,还有访问次数限制和防重复提交等能够有效防止暴力攻击。后端

2.接入短信平台

短信的使用已经愈来愈频繁,好比发送重要的通知信息,找回密码的验证码等。选择一个收费合理,同时能保证送达率和实效性的短信平台,就尤为重要。
由于咱们项目准备部署到腾讯云,正好了解到腾讯云也有短信平台,因此就进一步了解了下。不论是控制台操做,仍是接口调用,都和微信服务号相似,容易上手。另外收费也还算合理,考虑到对云服务上的应用支撑应该还不错,最终决定选择腾讯云的短信平台。服务器

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

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

4.采用敏捷开发模式

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

相关文章
相关标签/搜索