Giter Club home page Giter Club logo

employee-database's Introduction

Employee Database

This is a CLI content management system that is meant to manage an employee database using Node.js, Inquirer, and MySQL.

Screen Shot 2021-06-06 at 11 48 56 PM

Purpose

This project creates a mysql database that contains three tables (Department, Roles, Employee). These tables contain various kinds of information including employee name; auto-generated id feilds for employees, roles, and departments; salary information; and manager information. By utilizing a CLI the user can access data about employees, departments, and roles.

Install

Clone this repository and run the application with the command line. npm start will run this application.

Usage

Walkthrough Video 1:https://drive.google.com/file/d/1kGXPI11M83EOKGmm97JqoOoD5c3JGSIC/view

User will be prompted to answer the following items:

  1. What would you like to do? -View Department -View Roles -View all employees -Add department -Add role* -Add employee* -Update employee* Based on user response the next question will be generated. *These functions need further development

Built With

  • Javascript
  • node.js
  • npm inquirer
  • VS Studio
  • mysql 2
  • npm console.table

Website

n/a CLI

Issues

-Project is still in development, requires further debugging to be operational.

Contribution

Made with ❤️ by Lindsey Krause

employee-database's People

Contributors

lindseykrause avatar

Watchers

 avatar

employee-database's Issues

MVP

MVP

AS A business owner
I WANT to be able to view and manage the departments, roles, and employees in my company
SO THAT I can organize and plan my business

Acceptance Criteria

GIVEN a command-line application that accepts user input
WHEN I start the application

  • THEN I am presented with the following options: view all departments, view all roles, view all employees, add a department, add a role, add an employee, and update an employee role

WHEN I choose to view all departments

  • THEN I am presented with a formatted table showing department names and department ids

WHEN I choose to view all roles

  • THEN I am presented with the job title, role id, the department that role belongs to, and the salary for that role

WHEN I choose to view all employees

  • THEN I am presented with a formatted table showing employee data, including employee ids, first names, last names, job titles, departments, salaries, and managers that the employees report to

WHEN I choose to add a department

  • THEN I am prompted to enter the name of the department and that department is added to the database

WHEN I choose to add a role

  • THEN I am prompted to enter the name, salary, and department for the role and that role is added to the database

WHEN I choose to add an employee

  • THEN I am prompted to enter the employee’s first name, last name, role, and manager and that employee is added to the database

WHEN I choose to update an employee role

  • THEN I am prompted to select an employee to update and their new role and this information is updated in the database

Mock-Up

image

image

Grading Requirements

This Challenge is graded based on the following criteria:

Deliverables: 10%

  • Your GitHub repository containing your application code.

Walkthrough Video: 27%

  • A walkthrough video that demonstrates the functionality of the Employee Tracker must be submitted, and a link to the video should be included in your README file.

  • The walkthrough video must show all of the technical acceptance criteria being met.

  • The walkthrough video must demonstrate how a user would invoke the application from the command line.

  • The walkthrough video must demonstrate a functional menu with the options outlined in the acceptance criteria.

Technical Acceptance Criteria: 40%

Satisfies all of the preceding acceptance criteria plus the following:

  • Uses the Inquirer package (Links to an external site.).

  • Uses the MySQL2 package (Links to an external site.) to connect to a MySQL database.

  • Uses the console.table package (Links to an external site.) to print MySQL rows to the console.

  • Follows the table schema outlined in the Challenge instructions.

Table Schema

As the image illustrates, your schema should contain the following three tables:

_> Department

id: INT PRIMARY KEY

name: VARCHAR(30) to hold department name

Role

id: INT PRIMARY KEY

title: VARCHAR(30) to hold role title

salary: DECIMAL to hold role salary

department_id: INT to hold reference to department role belongs to

Employee

id: INT PRIMARY KEY

first_name: VARCHAR(30) to hold employee first name

last_name: VARCHAR(30) to hold employee last name

role_id: INT to hold reference to employee role

manager_id: INT to hold reference to another employee that is manager of the current employee. This field might be null if the employee has no manager.

You might want to use a separate file containing functions for performing specific SQL queries you'll need to use. A constructor function or class could be helpful for organizing these. You might also want to include a seeds.sql file to pre-populate your database. This will make the development of individual features much easier.

Bonus
See if you can add some additional functionality to your application, such as the ability to do the following:

Update employee managers.

View employees by manager.

View employees by department.

Delete departments, roles, and employees.

View the total utilized budget of a department—in other words, the combined salaries of all employees in that department._

Repository Quality: 13%

  • Repository has a unique name.

  • Repository follows best practices for file structure and naming conventions.

  • Repository follows best practices for class/id naming conventions, indentation, quality comments, etc.

  • Repository contains multiple descriptive commit messages.

  • Repository contains a high-quality README with description and a link to a walkthrough video.

Application Quality 10%

  • The application user experience is intuitive and easy to navigate.

How to Submit the Challenge

You are required to submit BOTH of the following for review:

  • A walkthrough video demonstrating the functionality of the application.

  • The URL of the GitHub repository, with a unique name and a README describing the project.

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.