A command-line application to manage a company's employee database, using Node.js, Inquirer, and MySQL
- View all departments, view all employees, view all roles
- add a department, add a role
- Delete a department, delete a role, exit
- Add an employee, update employee manager, delete an employee
- Update employee role, view department budgets
- View all employees by manager, view all employees by department
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
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
-
Department
id
: INT PRIMARY KEYname
: VARCHAR(30) to hold department name
-
Role
id
: INT PRIMARY KEYtitle
: VARCHAR(30) to hold role titlesalary
: DECIMAL to hold role salarydepartment_id
: INT to hold reference to department role belongs to
-
Employee
id
: INT PRIMARY KEYfirst_name
: VARCHAR(30) to hold employee first namelast_name
: VARCHAR(30) to hold employee last namerole_id
: INT to hold reference to employee rolemanager_id
: INT to hold reference to another employee that is manager of the current employee. This field may be null if the employee has no manager.
- Add a .env file to the root of the app with the following details
DB_NAME='all_employees'
DB_USER='root'
DB_PW='xxx'