如何在腾讯云上搭建一个人力资源Saas
版权声明:本文由ihr原创文章,转载请注明出处:
文章原文链接:https://www.qcloud.com/community/article/180
来源:腾云阁 https://www.qcloud.com/community
在互联网盛行的时代,车联网,物联网相关的字眼随处可见。为了方便企业在员工管理上提供更为快捷有效地方式, ihr是基于当下主流企业人才管理方式及员工普及的社交方式微信的一个开放性平台。
它包含企业端的招聘管理、员工管理,其中招聘管理又包含了面试通知邀请、到Offer发放以及候选人入职管理;员工管理包含了员工信息及状态跟踪;求职者端包含了对职位查看及投递简历状态的跟踪。
就企业而言,能够更快获取到人才信息,包括内部员工推荐,求职者投递及第三方推荐,迅速跟进,筛选招聘,在企业端招聘负责人及需求责任人可通过不同客户端,web和微信了解到最新的职位动态,从而提高招聘效率;
就求职者而言,人性化且简易地操作,省去繁琐地各种录入,多种渠道投递意向职位,实时了解面试情况,专业地流程让求职者提高了对公司的认可度。
整体架构
考虑到平台的用户量较大,所以在架构时选择了成熟、稳定地J2EE框架。如下图所示,
该系统包含了两个独立的应用,分别提供web服务和wechat服务,两者的后端均采用了JAVA+JFinal的MVC模式;web应用的前端采用HTML5+CSS3+Bootstrap+AngularJS, wechat应用前端采用了HTML5+CSS3+Bootstrap;数据库目前使用了MySQL后期看用户量可以考虑mangoDB;在用户消息通知功能中使用了腾讯云的短信平台;两个应用共享一个服务器,如果后期流量过大将考虑拆分到不同服务器。
(整体架构图)
由于项目采用开源框架,所以与别的原生项目相比多了以下特点:
- 基础开源框架,项目采用了JFinal作为基础框架。JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。作为一个中小型项目,既能在短期内完全满足项目所需,同时也能极大提高开发效率且无第三方依赖。
- 页面维护性高,bootstrap的推出,解救了很多程序员的审美观,让他们脱离美工也能写出丰富多彩的页面,它是基于 HTML、CSS、JAVASCRIPT 的,简洁灵活,使得 Web 开发更加快捷。
- 独立应用,为了给用户提供更快捷地访问方式,将web端与微信端独立。Web端的登录采用了传统的角色,用户名和密码的验证;wechat端登录采用了微信OAuth接口授权方式,从而省去了用户注册流程。
核心功能
一.招聘管理系统
将中介推荐、自荐以及内部推荐的简历直接归档入库,并开启招聘流程。伴随整个招聘流程结束,期间求职者所需提交的资料,或需填写的信息,皆可由系统负责通知或采集。
二.面试管理系统
- 求职者,关注微信服务号,可以及时收到面试通知,查看面试结果,接收offer,反馈求职信息,以及提前录入个人资料。为HR简化通知面试及员工入职资料录入人力成本。
- 面试官,可通过微信查看面试者简历,上一轮面试评价,面试者是否已到场等候,提升面试管理效率。
- 部门负责人,可随时关注发布的职位招聘近况。提前了解求职者招聘流程,降低沟通成本,提高信息时效性。
经验分享
一.开发团队组建
项目组一共3人,分别承担业务需求分析、系统详细设计及编码实现的工作。由于初创团队资源不足,3人的配置还是略显不足,特别是缺少熟悉构建云服务方面的人员及经验。
二.设计开发过程中的心得
1.合理使用验证码,能够有效防止暴力攻击
在类似于登录或者敏感信息提交时,使用验证码,可以在一定程度上防止暴力攻击。但并不是说,只要是验证码都能起到很好的作用。
简单的图形验证码,很容易就能被代码解析。因此验证码也在不断更新换代,比如加干扰,验证码变形等。除非你有充足的时间或者现成的代码可以尽快实现,否则在一个验证功能花费过多的时间得不偿失,另外用户体验还不见得有多好。腾讯云服务提供的验证码,有多种验证方式,比如拼图和滑动拼图,用户体验都感觉不错,还能节省很多开发时间。可以考虑作为前期过渡使用。
当然,除了验证码外,还有访问次数限制和防重复提交等可以有效防止暴力攻击。
2.接入短信平台
短信的使用已经越来越频繁,比如发送重要的通知信息,找回密码的验证码等。选择一个收费合理,同时能保证送达率和实效性的短信平台,就尤其重要。
因为我们项目准备部署到腾讯云,正好了解到腾讯云也有短信平台,所以就进一步了解了下。不管是控制台操作,还是接口调用,都和微信服务号类似,容易上手。另外收费也还算合理,考虑到对云服务上的应用支撑应该还不错,最终决定选择腾讯云的短信平台。
3.将复杂的权限控制交给Shiro
在以往的项目中,权限是最让人头疼的,有角色,有用户,有大量的逻辑需要考虑。Shiro可以支持三种授权方式,包括编码,注解及jsp taglig,本项目考虑到耦合度,不想因为角色的改变去修改源码,就采用了注解方式。
4.采用敏捷开发模式
为了顺应当下日益更新的需求,相比传统的瀑布式开发已经不能适应。将系统拆分为系统模块化,排出优先级,尽快尽早地完成可用功能,再在此基础上循环迭代直到功能完善和稳定。
如何在腾讯云上搭建一个人力资源Saas的更多相关文章
- Django+vue在腾讯云上搭建前后端分离项目
最近打算用Django+vue搭建一个个人主站,在此记录一下搭建项目的整个过程. 一 开发环境: 腾讯云Centos 7 Python 3.7 Django ...
- 在腾讯云上搭建WordPress博客
笔者一直很羡慕那些搭建了个人博客的大牛,在最近工作之余也尝试着搭建了自己的博客,历时1周,这篇文章就将踩过的坑记录下来,先看下成果,链接在此 1- 购买腾讯云主机 腾讯云官网,我选了79元/月的最便宜 ...
- 记录在腾讯云上搭建Ubuntu服务器
为了能让更多的比赛题复现,只好自己去手动搭建服务器 各种奇葩的操作以及很多的由于升级之后出现的问题变成了一个个坑. 写下这篇博客以此来记录我踩过的坑. 第一步 购买一个服务器,当然我购买的是学生版本的 ...
- 在腾讯云上创建您的SQL Cluster(4)
版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/255 来源:腾云阁 https://www.qclo ...
- 在腾讯云上创建您的SQL Cluster(3)
版权声明:本文由李斯达原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/250 来源:腾云阁 https://www.qclo ...
- 腾讯云上Selenium用法示例
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:崔庆才 前言 在上一节我们学习了PhantomJS 的基本用法,归根结底它是一个没有界面的浏览器,而且运 ...
- 腾讯云,搭建 FTP 文件服务
腾讯云,搭建 FTP 文件服务 腾讯云,搭建 FTP 文件服务 安装并启动 FTP 服务 任务时间:5min ~ 10min 安装 VSFTPD 使用 yum 安装 vsftpd: yum insta ...
- 创建Django项目并将其部署在腾讯云上
这段时间在做scrapy爬虫,对爬出来的数据基于Django做了统计与可视化,本想部署在腾讯云上玩玩,但是因为以前没有经验遇到了一些问题,在这里记录一下: 首先说下Django的创建与配置: 1. 创 ...
- centos7+腾讯云服务器搭建wordpress
title: centos7+腾讯云服务器搭建wordpress date: 2020-03-04 categories: web tags: [wordpress] 分两部分:1.搭建LEMP环境 ...
随机推荐
- Spring-task-timer定时器
· spring定时控制器配置文件实现方式 一. 编写一个正常的业务类 public class SyncDataTaskTimer { private final static Logger ...
- (转)Linux下安装rar fou linux
在Linux下安装rar fou linux rar for linux 软件下载地址:http://www.rarsoft.com/download.htm 到目前为止最新的版本为4.10 beta ...
- 2-Babel
一.什么是babel babel是一个源代码到源代码的转换器.比较广泛的用法就是可以把你写的符合 ECMAScript 6 标准的代码完美地转换为 ECMAScript 5 标准的代码,并且可以确保良 ...
- Web自定义协议,BS端启动CS端,
实例 1.准备CS项目,windows窗体应用程序,拖进来一个label控件来接受BS的参数,并显示,右击生成,复制该文件的bin目录下的exe,例如放在以下路径,例如C:\\simu\\下, 2.编 ...
- 【leetcode❤python】242. Valid Anagram
class Solution(object): def isAnagram(self, s, t): if sorted(list(s.lower()))==sorted(list ...
- linux bash shell 流程控制(if/else )
本文转自:http://blog.csdn.net/flowingflying/article/details/5069646 本文也即<Learning the bash Shell>3 ...
- java 导出Excel 大数据量,自己经验总结!
出处: http://lyjilu.iteye.com/ 分析导出实现代码,XLSX支持: /** * 生成<span style="white-space: normal; back ...
- hdu 1075 (map)
http://acm.hdu.edu.cn/showproblem.php?pid=1075 What Are You Talking About Time Limit: 10000/5000 MS ...
- pyspark 中启动 jupyter notebook
还是打算选择python学习spark编程 因为java写函数式比较复杂,scala学习曲线比较陡峭,而且sbt和eclipse和maven的结合实在是让人崩溃,经常找不到主类去执行 python以前 ...
- 64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
系统安装的32位JREE,64位eclipse无法识别,解决方案:下载安装64位jdk即可.