CrewTracker
is a basic yet powerful Employee Management System (EMS) designed to streamline HR tasks, improve employee data organization, and offer insights into job roles and departmental structures.
- View All Data: View all departments, roles, and employees with a single command.
- Add New Entries: Seamlessly add new departments, roles, and employees to the database.
- Dynamic Role Assignment: Assign employees to roles, or even create new roles on the fly.
- Managerial Assignments: Set up reporting hierarchies by assigning managers to employees.
- Update Employee Roles: Adapt to organizational changes by updating an employee's role when required.
- Interactive UI: User-friendly prompts guide users through all functionalities, ensuring ease of use.
- Data Integrity: Built-in constraints ensure data consistency and reliability.
- Human Resources: Simplify the onboarding process, manage employee roles, and maintain an organized directory of all employees.
- Management: Get a clear view of department structures, employee roles, and reporting hierarchies.
- Finance: Analyze salary distributions by department or role for budgeting and financial planning.
- Prerequisites: Ensure you have
Node.js
installed andMySQL
set up on your machine. - Clone the repository
git clone
- Navigate to the repository directory
cd your cloned directoty
- Install required packages
npm install
,npm i [email protected]
- Set up your database using the provided schema file.
- Run the application
After setting up the application and installing necessary dependencies, you'll need to populate the database with sample data for a complete demonstration of the app's functionalities.
-
Make sure you are in the main directory of the application in your terminal or command prompt.
-
Use the following command (powershell) to feed the sample data into your database:
Get-Content .\db\seed.sql | mysql -u <YOUR_MYSQL_USERNAME> -p crew_db
The project requires a .env
file with specific variables.
- Create an
.env
file in main directory of the app. - Write variables inside this file (DB_HOST, DB_USER, DB_PASS, DB_NAME).
DB_HOST=your_host_here
DB_USER=your_user_here
DB_PASS=your_password_here
DB_NAME=your_database_name_here
- This is the link of my GitHub repository
- Link of Screenrecorder Screencastify
- The following screenshots show all departments
- The following screenshots show all roles
- The following screenshots show all employees
- Inquirer: For interactive command line prompts.
- MySQL: As the relational database backend.
- Chalk: For terminal string styling.
- Figlet: For ASCII art generation.
Copyright (c) 2023 Kirill Lazutin
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.