Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gudzsv/nodejs-hw-01
nodejs-hw-01
https://github.com/gudzsv/nodejs-hw-01
Last synced: about 1 month ago
JSON representation
nodejs-hw-01
- Host: GitHub
- URL: https://github.com/gudzsv/nodejs-hw-01
- Owner: gudzsv
- License: mit
- Created: 2024-07-18T16:32:29.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-18T21:20:47.000Z (6 months ago)
- Last Synced: 2024-07-20T00:12:09.207Z (6 months ago)
- Language: JavaScript
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Node JS `nodejs-hw-01`
### Завдання
Вам потрібно створити додаток для роботи з файлами, який за допомогою команд буде створювати, логувати, додавати, видаляти контакти тощоВикористовуйте цей [шаблон проєкту](https://github.com/goitacademy/nodejs-hw-01-template) як стартову точку для цього Домашнього завдання
**Критерії прийому**
- Створено репозиторій `nodejs-hw-01`
- При здачі домашньої роботи є посилання на вихідні файли на **Github**
- При виконані коду завдання немає помилок**Покрокове виконання завдання**
**Крок 1**
Ознайомтесь зі стартовими файлами [шаблонного проєкту](https://github.com/goitacademy/nodejs-hw-01-template). Важливо зазначити, що ви не повинні видаляти чи перейменовувати існуючі змінні та функції, щоб уникнути помилок під час виконання.У файлі `src/db/db.json` зберігається колекція контактів. Поки що там порожній масив, але ви будете його далі наповнювати.
У файлі `src/constants/contacts.js` є оголошена константа `PATH_DB`. Ініціалізуйте її значенням, яке буде зберігати шлях до файлу `src/db/db.json`.
У файлі `package.json`, вже описані скрипти, які виконують код певних файлів:
`npm run get-all` - виконує код із файлу `src/scripts/getAllContacts.js`
`npm run generate` - виконує код із файлу `src/scripts/generateContacts.js`
`npm run add-one`- виконує код із файлу `src/scripts/addOneContact.js`
`npm run count`- виконує код із файлу `src/scripts/countContacts.js`
`npm run remove-last` - виконує код із файлу `src/scripts/removeLastContact.js`
`npm run remove-all`- виконує код із файлу `src/scripts/removeAllContacts.js`
В файлі `src/utils/createFakeContact.js` оголошена функція createFakeContact, яка створює контакт з випадковими даними. Для генерації реалістичних випадкових даних, таких як імена, телефонні номери, емейли тощо використовується бібліотека [@faker-js/faker](https://github.com/faker-js/faker).
Встанови її у свій проєкт командою:
```js
npm i -D @faker-js/faker
```В цій бібілотеці зараз нас будуть цікавити наступні методи:
- **id: faker.string.uuid()** для генерації унікального ідентифікатора;
- **faker.person.fullName()** для генерації повних імен;
- **faker.phone.number()** для створення телефонних номерів;
- **faker.internet.email()** для формування електронних адрес;
- **faker.person.jobTitle()** для генерації назв професій.**Крок 2**
У файлі `src/scripts/generateContacts.js` опишіть функцію **generateContacts**. Вона має за допомогою функції **createFakeContact**, створювати передану кількість згенерованих контактів, а потім додавати їх до масиву у файлі `src/db/db.json` і записувати їх назад у файл `src/db/db.json`.
Переконайтесь, що ваша функція **generateContacts** коректно додає нові контакти до вже існуючих. Тобто, якщо масив був порожній, після виклику функції в ньому має бути передана кількість контактів, наприклад 5. Якщо контактів було 3 і у виклик передали 5, то після виклику функції їх має стати 8.
Перевірити роботу функції можна виконавши команду **npm run generate**, яка буде виконувати код у файлі `src/scripts/generateContacts.js`. У файлі `src/db/db.json` мають відбутися відповідні зміни.
**Крок 3**
У файлі `src/scripts/addOneContact.js` опишіть функцію **addOneContact**. Вона має додавати до масиву у файлі `src/db/db.json` лише один згенерований контакт. Забезпечте правильне додавання одного контакту до масиву, збереження змін у файлі.
Перевірити роботу функції можна виконавши команду npm **run add-one**, яка буде виконувати код у файлі `src/scripts/addOneContact.js`. У файлі `src/db/db.json` мають відбутися відповідні зміни.
**Крок 4**
У файлі `src/scripts/getAllContacts.js` опишіть функцію **getAllContacts**. Вона має повертати масив контактів із файлу `src/db/db.json`. Функція має коректно читати масив контактів з файлу.
Перевірити роботу функції можна виконавши команду npm **run get-all**, яка буде виконувати код у файлі s`rc/scripts/getAllContacts.js`.
**Крок 5**
У файлі `src/scripts/countContacts.js` опишіть функцію **countContacts**. Вона має повертати кількість контактів в масиві у файлі `src/db/db.json`.Переконайтесь, що функція точно рахує кількість контактів.
Перевірити роботу функції можна виконавши команду **npm run count**, яка буде виконувати код у файлі `src/scripts/countContacts.js`.
**Крок 6**
У файлі `src/scripts/removeAllContacts.js` опишіть функцію **removeAllContacts**. Вона має видаляти усі контакти з масиву у файлі `src/db/db.json`.
Перевірити роботу функції можна виконавши команду **npm run remove-all**, яка буде виконувати код у файлі `src/scripts/removeAllContacts.js`. У файлі `src/db/db.json` мають відбутися відповідні зміни.
**Крок 7**
У файлі `src/scripts/removeLastContact.js` опишіть функцію **removeLastContact**, яка видалятиме останній контакт з масиву, якщо в масиві є хоча б один елемент.
Перевірити роботу функції можна виконавши команду **npm run remove-last**, яка буде виконувати код у файлі `src/scripts/removeLastContact.js`. У файлі `src/db/db.json` мають відбутися відповідні зміни.