Giter Site home page Giter Site logo

maven.spring-employeedirectory's Introduction

Persistence Project: Employee Directory Application

In this project you will be creating an employee directory system. You will be able to modify and query the directory and the entries within.

Description

You have been assigned to the HR Technology Implementation team and will be building a new corporate directory for your company. The first feature needed by this directory is an API that mobile and web apps can query to get the structure of the company's workforce. All employees in the company will be represented by the same object (Employee), but some of them are managers and some report to managers (you may even have middle managers who manage employees but also report to another manager themselves).

The company is also organized into different divisions (Departments), each of which must have a department-wide manager. All employees in that department should eventually report up to the department manager, and assigning an employee a new manager should also place that employee within their manager's department.

Entities

This application will manage the following entities:

Employee Entity

  • Employee number
  • First name
  • Last name
  • Title
  • Phone number
  • Email
  • Hire date
  • Manager
  • Department number(key from Department.dpt_num)

Department Entity

  • Department number
  • Department name
  • Department Manager (an employee)

API Endpoints

You should provide a series of API endpoints for interacting with the directory. All endpoints should have a URI that begins with /API. These endpoints will provide RESTful access to the application and changes will be persisted to the database.

Provide the following endpoints:

  • Create employee (Via POST)
  • Create a Department
  • Update an employee to set their manager
  • Update other employee fields
  • Set a new department manager (Update department)
  • Change the name of a department
  • Get the list of employees under a particular manager
  • Get the entire reporting hierarchy for an employee (their manager + manager's manager etc.)
  • Get a list of employees with no assigned manager
  • Get all employees of a particular department
  • Get all employees who report directly or indirectly to a particular manager
    • This should still work for an employee who is not a manager -- they have no direct reports
  • Remove a particular employee or list of employees
  • Remove all employees from a particular department
  • Remove all employees under a particular manager (Including indirect reports)
  • Remove all direct reports to a manager. Any employees previously managed by the deleted employees should now be managed by the next manager up the hierarchy.
  • Get the department, title, or other attributes of a particular employee.
  • Merge departments (given two department names eg: A and B, move the manager of B to report to the manager of A, and update all other employees to be members of department A)

maven.spring-employeedirectory's People

Contributors

davidginzberg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.