alexgeis / Employee-Tracker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

12 SQL: Employee Tracker

Your Task

Developers frequently have to create interfaces that allow non-developers to easily view and interact with information stored in databases. These interfaces are called content management systems (CMS). Your assignment this week is to build a command-line application from scratch to manage a company's employee database, using Node.js, Inquirer, and MySQL.

Because this application won’t be deployed, you’ll also need to create a walkthrough video that demonstrates its functionality and all of the following acceptance criteria being met. You’ll need to submit a link to the video and add it to the README of your project.

User Story

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

Description

First, I set up the SQL database structures I would require (1 database, 3 tables, and seed data). After this I validated my connect with nodeJS and confirmed the data in MySQL Workbench.

Next, I structured the inquirer prompt for the required user commands. I used the response from the initial prompt as a conditional validation to trigger functions related to the user commands.

After inquirer prompts were correctly generating and directing the user through my decision tree, I filled in the specific functions to make the relevant SQL queries. For instance, choosing to add a new department would structure a SQL query to INSERT INTO an entry for the department table. I first confirmed the initial 3 view functions, then moved to the other CRUD operations.

Finally, I was unable to create a working function to update an existing employee. I will keep attempting to create a solution later along with the bonus and update this readme once completed.

Deployment Details

Repo: Employee Tracker

Walkthrough Video: Employee Tracker Application

Application Snapshot: Employee Tracker

About


Languages

Language:JavaScript 100.0%