https://github.com/mauricechouam/team_profile_generator
A Node CLI that takes in information about employees and generates an HTML webpage that displays summaries for each person
https://github.com/mauricechouam/team_profile_generator
Last synced: 2 months ago
JSON representation
A Node CLI that takes in information about employees and generates an HTML webpage that displays summaries for each person
- Host: GitHub
- URL: https://github.com/mauricechouam/team_profile_generator
- Owner: mauricechouam
- Created: 2020-06-10T04:47:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-06T08:46:17.000Z (over 2 years ago)
- Last Synced: 2023-04-26T05:42:11.166Z (about 2 years ago)
- Language: JavaScript
- Homepage:
- Size: 11.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Team_Profile_Generator: Object Oriented Programming and Test Driven Development
[](https://github.com/mauricechouam/Team_Profile_Generator)## Table of Contents ##
* [Description](#Description)
* [Technology](#Technology)
* [Classes](#Classes)
* [User input](#User_input)
* [Roster output](#Roster_output)
* [Helpful links](#Helpful_links)## Description
This is a software engineering team generator command line application. The application prompts the user for information about the team manager and then information about the team members. The user can input any number of team members, and they may be a mix of engineers and interns. This app also passed all unit tests in the test directory. When the user has completed building the team, the application creates an HTML file that displays a nicely formatted team roster based on the information provided by the user.
```
As a manager
I want to generate a webpage that displays my team's basic info
so that I have quick access to emails and GitHub profiles
```## Technology:
* Used the [Inquirer npm package](https://github.com/SBoudrias/Inquirer.js/) to prompt the user for their email, id, and specific information based on their role with the company. For instance, an intern may provide their school, whereas an engineer may provide their GitHub username.
* App runs as a Node CLI to gather information about each employee.
In the `Develop` folder, there is a `package.json`.
The dependencies are, [jest](https://jestjs.io/) for running the provided tests, and [inquirer](https://www.npmjs.com/package/inquirer) for collecting input from the user.
* App uses multiple HTML templates:
* `main.html`
* `engineer.html`
* `intern.html`
* `manager.html`* The different employee types inherit some methods and properties from a base class of `Employee`.
## Classes
The app has these classes: `Employee`, `Manager`, `Engineer`, `Intern`. The tests for these classes in the `tests` directory.The first class is an `Employee` parent class with the following properties and
methods:* name
* id
* title
* getName()
* getId()
* getEmail()
* getRole() // Returns 'Employee'The other three classes extend `Employee`.
In addition to `Employee`'s properties and methods, `Manager` also has:
* officeNumber
* getRole() // Overridden to return 'Manager'
In addition to `Employee`'s properties and methods, `Engineer` also has:
* github // GitHub username
* getGithub()
* getRole() // Overridden to return 'Engineer'
In addition to `Employee`'s properties and methods, `Intern` also has:
* school
* getSchool()
* getRole() // Overridden to return 'Intern'
## User input
The app prompt the user to build an engineering team. An engineering
team consists of any number of managers, engineers and interns.## Roster output
The app generates a `team.html` page in the `output` directory, that displays a nicely formatted team roster. Each team member displays the following:
* Name
* Role
* ID
* Role-specific property (School, link to GitHub profile, or office number)
## Helpful links
* [Constructor Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/constructor)* [Prototype Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype)
* [Class Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes)
* [Jest Docs](https://jestjs.io/)