static-mock-data
Version:
Static mock data for sample apps, demos, and POCs
160 lines (113 loc) • 7.71 kB
Markdown
Static mock data
==============================
Static mock data (as opposed to randomly-generated mock data) for sample apps, demos, and POCs.
[](https://github.com/JS-DevTools/static-mock-data/actions)
[](https://coveralls.io/github/JS-DevTools/static-mock-data)
[](https://www.npmjs.com/package/@jsdevtools/static-mock-data)
[](https://david-dm.org/JS-DevTools/static-mock-data)
[](LICENSE)
[](https://github.com/JS-DevTools/static-mock-data/actions)
Features
--------------------------
* __[100 mock employees](https://raw.githubusercontent.com/JS-DevTools/static-mock-data/master/employees.json)__, with names, addresses, phone numbers, etc.
* __[100 mock projects](https://raw.githubusercontent.com/JS-DevTools/static-mock-data/master/projects.json)__, with names, dates, departments, employees assigned, etc.
* __[Full-size](https://github.com/JS-DevTools/static-mock-data/blob/master/portraits/jdoe.jpg)__ and __[thumbnail](https://github.com/JS-DevTools/static-mock-data/blob/master/portraits/jdoe-thumb.jpg)__ photos for each employee
* No dependencies
* Tested in Node.js and all modern web browsers on Mac, Windows, and Linux
* All data follows logical rules:
- Usernames, SSNs, addresses, etc. are unique
- Birthdates, hire dates, and termination dates are in proper chronological order
- Employee roles "make sense" (e.g. "full time" and "part time" are mutually exclusive)
- Employees are only assigned to projects in their own department
- Employees are only assigned to projects that occurred during their employment
Installation
-------------------------------------
Install using [NPM](https://docs.npmjs.com/about-npm/) or [Yarn](https://yarnpkg.com):
```bash
npm install @jsdevtools/static-mock-data
```
Usage
-------------------------------------
The mock data can be used as plain JSON or as JavaScript objects.
### Raw JSON
```javascript
const employees = require("@jsdevtools/static-mock-data/employees.json");
for (let employee of employees) {
console.log(employee.dob); // date string
console.log(employee.portrait); // relative file path
}
```
### JavaScript Objects
```javascript
const mockData = require("@jsdevtools/static-mock-data");
for (let employee of mockData.employees) {
console.log(employee.dob); // Date object
console.log(employee.portrait); // absolute file path
}
```
Browser support
--------------------------
Static Mock Data supports recent versions of every major web browser. Older browsers may require [Babel](https://babeljs.io/) and/or [polyfills](https://babeljs.io/docs/en/next/babel-polyfill).
To use Static Mock Data in a browser, you'll need to use a bundling tool such as [Webpack](https://webpack.js.org/), [Rollup](https://rollupjs.org/), [Parcel](https://parceljs.org/), or [Browserify](http://browserify.org/). Some bundlers may require a bit of configuration, such as setting `browser: true` in [rollup-plugin-resolve](https://github.com/rollup/rollup-plugin-node-resolve).
Employees
--------------------------
`mockData.employees` is an array of objects with the following properties:
| Property | Data Type | Description
|:----------------------|:-----------------|:----------------------------
| `username` | string | A alphanumeric username that is unique for each employee
| `password` | string | An alphanumeric password
| `name.first` | string | First name
| `name.last` | string | Last name
| `gender` | string | "male" or "female"
| `portrait` | string | The path of the full-size portrait photo
| `thumbnail` | string | The path of the thumbnail-size portrait photo
| `email` | string | Email address
| `address.street` | string | House number and street name
| `address.city` | string | City name
| `address.state` | string | U.S. state name (full name, not abbreviation)
| `address.zip` | string | U.S. zip code, in the format #####
| `phones` | array of objects | Array of phone objects
| `phones[].type` | string | "home", "office", or "cell"
| `phones[].number` | string | Phone number, in the format ###-##-####
| `ssn` | string | U.S. Social Security Number, in the format ###-##-####. Unique for each employee.
| `dob` | Date | Date of birth
| `hiredOn` | Date | Date the employee was hired
| `terminatedOn` | Date or null | Date the employee was terminated, or `null` if still employed
| `department` | string | "Accounting", "Sales", "Human Resources", or "Marketing"
| `roles` | array of strings | Array of roles, such as "employee", "consultant", "part time", etc.
Projects
--------------------------
`mockData.projects` is an array of objects with the following properties:
| Property | Data Type | Description
|:----------------------|:-----------------|:----------------------------
| `id` | number | Numeric ID that is unique for each project
| `name` | string | Project name that is unique for each project. 55 characters max.
| `description` | string | Long project description. 2000 characters max
| `department` | string | "Accounting", "Sales", "Human Resources", or "Marketing"
| `startedOn` | Date | Date that the project started
| `endedOn` | Date or null | Date that the project ended, or `null` if still ongoing
| `assigned` | array of strings | Array of usernames of employees who are assigned to the project. Projects will only have employees from the same department.
Contributing
--------------------------
Contributions, enhancements, and bug-fixes are welcome! [Open an issue](https://github.com/JS-DevTools/static-mock-data/issues) on GitHub and [submit a pull request](https://github.com/JS-DevTools/static-mock-data/pulls).
#### Building
To build the project locally on your computer:
1. __Clone this repo__<br>
`git clone https://github.com/JS-DevTools/static-mock-data.git`
2. __Install dependencies__<br>
`npm install`
3. __Run the build script__<br>
`npm run build`
4. __Run the tests__<br>
`npm test`
License
--------------------------
All JSON data is [MIT licensed](http://opensource.org/licenses/MIT) and can be used however you want.
All images (employee portraits) are licensed under [Creative Commons BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/2.0/deed.en) and have some limitations on their use.
See the [LICENSE file](LICENSE) for more details.
Big Thanks To
--------------------------
Thanks to these awesome companies for their support of Open Source developers ❤
[](https://travis-ci.com)
[](https://saucelabs.com)
[](https://coveralls.io)