一、项目架构介绍

项目技术栈:Go+Vue+PGSQL

开发工具:IDEA2021.1
后端开发语言:Go
前端框架:Vue3.0(集成ElementUI组件)
后端框架:Gin、Gorm
数据库:PostgreSQL13

1.1 Go语言

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。

1.2 Vue框架

Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

1.3 Gin框架

Gin 是一个基于 Go 语言编写的 Web 框架,与 martini 框架类似,但拥有更好的性能,借助高性能的 httprouter,速度提升了近 40 倍。

1.4 Gorm框架

基于GoLand语言的 ORM(Object Relation Mapping),对象关系映射,实际上就是对数据库的操作进行封装,对上层开发人员屏蔽数据操作的细节,开发人员看到的就是一个个对象,大大简化了开发工作,提高了生产效率。

1.5 PGSQL数据库

PostgreSQL是一个功能强大的开源对象关系型数据库系统,他使用和扩展了SQL语言,并结合了许多安全存储和扩展最复杂数据工作负载的功能。PostgreSQL的起源可以追溯到1986年,作为加州大学伯克利分校POSTGRES项目的一部分,并且在核心平台上进行了30多年的积极开发。

二、项目地址

项目源代码我放在码云了点击跳转,下载到本地之后先配置前后端的依赖和数据库配置,再运行项目。
项目展示我已放在云服务器上点击跳转,总裁账号20210001密码123456,主管账号20210002密码123456,员工账号20210008密码123456

三、项目概述

3.1 模块说明

3.1.1 前端模块说明

  • Vue组件共47个,包含了总裁、主管、员工身份登录系统的全部功能
  • 引入动态路由,实现三种身份的权限分离,每个身份对应不同的Vue组件和路由

3.1.2 后端模块说明

  • Config层:负责项目的配置
  • Controller层:项目大体逻辑的实现与控制
  • Global层:项目的全局设置
  • Mapper层:实现三种身份的路由监听
  • Middleware层:解决跨域问题
  • Model层:实现项目所需的各种结构的定义
  • main层:项目的入口

3.2 项目部分运行截图

3.2.1 主页

3.2.2 加入人才库

3.2.3 总裁登录

  • 基本资料实现基本搜索、高级搜索、入职日期查询、导入导出数据、批量删除、手动添加用户、所有员工的增删改查等操作
  • 部门信息实现已有部门的增删改查和新部门新岗位的添加
  • 申请新岗位员工可以申请调动到本部门的其他岗位或跨部门调动
  • 申请离职除了总裁,其他员工都可以申请离职,无需审批
  • 离职员工总裁可以查看公司所有的离职员工信息并可以导出数据
  • 开除员工总裁可以开除公司任何一个的员工
  • 部门调动总裁可以查看跨部门调动信息并可以导出数据
  • 岗位调动总裁可以查看所有部门的内部调岗信息并可以导出数据
  • 查看岗位申请总裁可以查看、审批、拒绝所有人提出的岗位申请
  • 查看人才库申请总裁可以查看、审批、拒绝所有申请加入公司的人员信息
  • 个人中心总裁可以编辑自己的个人信息

3.2.4 主管登录

  • 员工资料作为部门主管,只能够管理自己部门下的员工,包括基本搜索、高级搜索、入职日期查询、导入导出数据、批量删除、手动添加用户、部门下所有员工的增删改查等操作
  • 查询部门信息作为主管,只能够查看公司的所有部门及岗位,无权做删除、修改、添加等操作
  • 申请新岗位员工可以申请调动到本部门的其他岗位或跨部门调动
  • 申请离职作为主管,可以同员工一样申请离职,无需审批
  • 离职员工主管可以查看自己部门的离职员工信息并导出数据
  • 查看岗位申请主管可以查看、审批、拒绝所有申请自己部门下的岗位的申请信息,若申请的是其他部门,则此部门主管无权查看
  • 查看人才库申请主管可以查看、审批、拒绝所有申请自己部门下的岗位的人才申请信息,若申请的是其他部门,则此部门主管无权查看
  • 个人信中心主管同样可以修改自己的个人信息

3.2.5 员工登录

  • 员工资料作为员工,只能够查看自己部门同事的基本信息,且会屏蔽掉登陆密码、身份证号码等敏感信息,只能有基本的查询操作
  • 查询部门信息作为员工,只能够查看公司的所有部门及岗位,无权做删除、修改、添加等操作
  • 申请新岗位员工可以申请部门调动或岗位调动,需等待上级主管或总裁同意后才会进行调动
  • 申请离职员工可以申请离职,无需上级同意就可以申请,离职后强制退出系统且无法再登录系统
  • 个人中心员工可以修改自己的个人信息

四、关键技术

4.1 权限分离

根据总裁、主管、员工三种身份,实现不同的前台导航栏和监听路由

  • 总裁的导航栏
  • 总裁的监听路由
func AdminMapper(re *gin.Engine)  {re.POST("/AdminLogin", Controller.AdminLogin)re.POST("/AllMenu", Controller.AllMenu)re.POST("/EmployeeBasic", Controller.EmployeeBasic)re.POST("/EmployeeBasic/Update", Controller.EmployeeBasicUpdate)re.POST("/EmployeeBasic/Delete", Controller.EmployeeBasicDelete)re.POST("/EmployeeBasic/MultiDelete", Controller.EmployeeBasicMultiDelete)re.POST("/EmployeeBasic/Add", Controller.EmployeeBasicAdd)re.POST("/EmployeeBasic/Search", Controller.EmployeeBasicSearch)re.POST("/EmployeeBasic/SearchDate", Controller.EmployeeBasicSearchDate)re.POST("/EmployeeBasic/SearchAdvance", Controller.EmployeeBasicSearchAdvance)re.POST("/EmployeeBasic/Import", Controller.EmployeeBasicImport)re.POST("/EmployeeBasic/Export", Controller.EmployeeBasicExport)re.POST("/DepartmentTransfer", Controller.DepartmentTransfer)re.POST("/DepartmentTransfer/Search", Controller.DepartmentTransferSearch)re.POST("/PostTransfer", Controller.PostTransfer)re.POST("/PostTransfer/Search", Controller.PostTransferSearch)re.POST("/EmployeeQuit", Controller.EmployeeQuit)re.POST("/EmployeeQuit/SearchByDate", Controller.EmployeeQuitSearchByDate)re.POST("/ExpelEmployee", Controller.ExpelEmployee)re.POST("/AdminInitExamine", Controller.AdminInitExamine)re.POST("/TalentPool/Add", Controller.TalentPoolAdd)re.POST("/Edit", Controller.Edit)re.POST("/TalentApply", Controller.TalentApply)re.POST("/TalentAgreeApply", Controller.TalentAgreeApply)re.POST("/TalentRefuseApply", Controller.TalentRefuseApply)re.POST("/Department/Basic", Controller.DepartmentBasic)re.POST("/Department/Init", Controller.DepartmentInit)re.POST("/Department/Post", Controller.DepartmentPost)re.POST("/Department/Update", Controller.DepartmentUpdate)re.POST("/Department/Delete", Controller.DepartmentDelete)re.POST("/Department/Add", Controller.DepartmentAdd)re.POST("/Post/Init", Controller.PostInit)re.POST("/Post/Add", Controller.PostAdd)re.POST("/Post/Update", Controller.PostUpdate)re.POST("/Post/Delete", Controller.PostDelete)re.POST("/SearchByDepartmentNumber", Controller.SearchByDepartmentNumber)re.POST("/SearchByPostNumber", Controller.SearchByPostNumber)re.POST("/DepartmentTransfer/SearchByDate", Controller.DepartmentTransferSearchByDate)re.POST("/PostTransfer/SearchByDate", Controller.PostTransferSearchByDate)
}
  • 主管的导航栏

  • 主管的监听路由

func DirectorMapper(re *gin.Engine)  {re.POST("/DirectorDepartment", Controller.DirectorDepartment)re.POST("/DirectorInitExamine", Controller.DirectorInitExamine)re.POST("/DirectorAgreeApply", Controller.DirectorAgreeApply)re.POST("/DirectorRefuseApply", Controller.DirectorRefuseApply)re.POST("/EmployeeBasicByDirector", Controller.EmployeeBasicByDirector)re.POST("/EmployeeBasic/SearchByDirector", Controller.EmployeeBasicSearchByDirector)re.POST("/EmployeeBasic/SearchDateByDirector", Controller.EmployeeBasicSearchDateByDirector)re.POST("/EmployeeQuitByDirector", Controller.EmployeeQuitByDirector)re.POST("/EmployeeQuitByDirector/SearchByDate", Controller.EmployeeBasicByDirectorBySearchByDate)re.POST("/GetDepartmentName", Controller.GetDepartmentName)re.POST("/TalentApplyPart", Controller.TalentApplyPart)}
  • 员工的导航栏

  • 员工的监听路由

func EmployeeMapper(re *gin.Engine)  {re.POST("/ApplyPostInformation", Controller.ApplyPostInformation)re.POST("/ApplyNewPost", Controller.ApplyNewPost)re.POST("/ApplyResignedInformation", Controller.ApplyResignedInformation)re.POST("/ApplyResigned", Controller.ApplyResigned)re.POST("/EmployeeBasicByEmployee", Controller.EmployeeBasicByEmployee)re.POST("/EmployeeBasic/SearchByEmployee", Controller.EmployeeBasicSearchByEmployee)re.POST("/EmployeeBasic/SearchDateByEmployee", #Controller.EmployeeBasicSearchDateByEmployee)
}

注:本文是博主软件工程课程设计的总结,不支持任何商用,转载请注明出处!如果你也对Go语言开发大型项目的学习有一定的兴趣和理解,欢迎随时找博主交流~

软件工程课程设计——技术栈【Go+Vue+PGSQL】的人事管理系统相关推荐

  1. Web前端技术课程设计——技术栈【SpringBoot+Vue+MySQL+MyBatis】的在线英语考试系统

    一.技术简介 本网站使用了前后端分离的开发技术,是基于SpringBoot + VUE的在线英语考试系统,支持选择题.填空题.判断题.多选题.系统包含三种角色(管理员.老师.考生),实现的功能包含在线 ...

  2. 数据库与信息管理课程设计——技术栈【Go+VUE+PGSQL+Redis】的托管培训中心信息管理系统

    一.项目架构介绍 项目技术栈:Go+VUE3+PGSQL+Redis 开发工具:IDEA2021.1 后端开发语言:GoLand 前端架构:VUE3.0(集成Element-UI) 后端架构:gin. ...

  3. 软件工程课程设计“作业管理系统”的总结和期望

    目录 一.软件工程课程设计"作业管理系统"的总结和期望 该系统研究的意义 功能概述 web网上作业管理系统的实现 注册与登录功能的实现 作业提交功能实现 教师批改作业的功能实现 总 ...

  4. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

    软件工程课程设计·SOA架构搭建SSM框架的网上商城系统 项目简介 本系统利用SSM框架.Dubbo框架.Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块.购物车系统模块.搜索系 ...

  5. 软件工程测试旅游管理系统,软件工程课程设计---旅游信息管理系统

    软件工程课程设计---旅游信息管理系统 福建农林大学金山学院福建农林大学金山学院 课程设计报告课程设计报告 课程名称 软件工程 课程设计题目 旅游信息管理系统 姓 名 系 信息与机电工程系 专 业 计 ...

  6. 课程设计-基于SSM的美容美发造型预约管理系统代码Java理发剪发设计造型系统vue美发店管理系统

    课程设计-基于SSM的美容美发造型预约管理系统代码Java理发剪发设计造型系统vue美发店管理系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架: ...

  7. 现代软件工程课程设计——“黄金点游戏”课程报告一

    课程报告目录 黄金点游戏 系统需求分析 项目背景 任务概述与功能划分 需求分配 本次功能实现 GDEYE-002 用户信息确认 GDEYE-003 游戏开始 GDEYE-004 输入数字 GDEYE- ...

  8. C++课程设计实训_基于多态书籍信息管理系统的设计与实现、附源码、有过程截图

    C++课程设计实训_基于多态书籍信息管理系统的设计与实现.附源码,有过程截图 书籍信息管理系统的设计与实现(基于多态) 学生姓名: 学 号: 指导老师: 所 在 系: 专 业: 班 级: C++课程设 ...

  9. Java课程设计|软件工程课程设计【招聘考试成绩处理系统】

    文章目录 第1章 前言 第2章 需求分析 2.1 考生需求分析 2.2 系统数据字典 第3章 概要设计 3.1数据库结构设计 3.2系统结构设计 3.3设计测试方案 3.5考前处理 在这里插入图片描述 ...

最新文章

  1. HTML中的转义字符 (转)
  2. gitlab的日常使用
  3. cherry-pick,revert和rebase使用的3-way合并策略
  4. 如何在Hybris commerce里创建一个media对象
  5. boolean类型默认值_「软帝学院」Java的基本数据类型
  6. 欢乐纪中A组周六赛【2019.3.30】
  7. 安装Red Hat Container Development Kit 2.2版本
  8. MFC开发-树形菜单
  9. “头腾大战”烧至在线办公:微信封禁飞书做错了吗?
  10. java通过JDBC驱动连接操作hive实例
  11. 用户 与组的相关练习
  12. DotText源码阅读(2)-工程、数据库表结构
  13. 服务器搭建网站完整教程(宝塔面板+wordpress) 快速搭建网站 一键部署
  14. csgo如何增加人机数量及平衡_FPS之CSGO职业哥瞄准秘技,人人都能学得会的瞄准方式...
  15. 解决tar.bz2解压报错
  16. JSP学习——EL表达式和JSTL学习小结
  17. 计算机中 b、KB、MB、GB、TB之间的换算关系
  18. IT技术分享的一点点总结
  19. PaddleNLP登顶FewCLUE小样本学习榜单;AutoPrompt自动化提示功能直接带你原地起飞
  20. 怎么简单快速一个钟头入侵网站

热门文章

  1. sketch切换画板_Sketch App:如何与团队共享画板
  2. 2020,程序员本命年,去外包公司要小心的几个点
  3. 《增强现实:原理、算法与应用》读书笔记(7)稠密深度估计
  4. 2022-2028全球公关公司行业调研及趋势分析报告
  5. 提高企业内网安全的十大策略
  6. Description: A component required a bean of type ‘XXXXXX‘ that could not be found.
  7. CSS、JS 使DIV水平 和 垂直居中的各种方法
  8. 虚拟机测试服务器最大带宽,利用VMware ESXi测量网络延迟 你了解多少
  9. python排序算法——归并排序(附代码)
  10. 上云要有云驱动,中机助力企业上云|中机智库