|
| 1 | +# Skillbus-CRM, система для управления клиентами |
| 2 | + |
| 3 | +### Описание проекта |
| 4 | + |
| 5 | +Данный проект представляет собой веб-приложение CRM для управления клиентами. Система позволяет добавлять, редактировать, удалять клиентов, а также управлять их контактными данными. Вся информация хранится на сервере, а клиентская часть динамически обновляется. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +### Функциональность |
| 10 | + |
| 11 | +- Добавление клиентов (с динамическим управлением контактными данными). |
| 12 | +- Редактирование информации о клиентах (с обновлением данных в реальном времени). |
| 13 | +- Удаление клиентов (с подтверждением). |
| 14 | +- Использование модальных окон для управления клиентами (для добавления, редактирования и удаления). |
| 15 | +- Валидация введённых данных (с учетом типов контактов). |
| 16 | +- Сортировка клиентов и фильтрация по ФИО. |
| 17 | +- Поддержка интерактивных тултипов (для отображения информации). |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +### Используемые технологии и библиотеки |
| 22 | + |
| 23 | +#### Front-end: |
| 24 | + |
| 25 | +- **HTML, CSS, JavaScript** – основные технологии для создания интерфейса. |
| 26 | +- **Bootstrap v5.3.3** – используется для стилизации интерфейса и адаптивного дизайна. |
| 27 | +- **Bootstrap Icons v1.11.3** – для отображения иконок в интерфейсе. |
| 28 | +- **jQuery v3.7.1** – для вспомогательных манипуляций с DOM. |
| 29 | +- **Tippy.js v6.3.7** – для реализации всплывающих подсказок. |
| 30 | + |
| 31 | +#### Back-end: |
| 32 | + |
| 33 | +- **Node.js с Express.js** – серверная часть для обработки запросов (была уже реализована). |
| 34 | +- **REST API** – используется для взаимодействия между клиентом и сервером. |
| 35 | +- **JSON** – формат хранения данных о клиентах. |
| 36 | + |
| 37 | +--- |
| 38 | + |
| 39 | +### Структура кода |
| 40 | + |
| 41 | +#### Основные принципы кода: |
| 42 | + |
| 43 | +- **Одна функция – одно действие**: каждая функция выполняет строго одну задачу. |
| 44 | +- **Чистый код**: все переменные и функции имеют понятные названия. |
| 45 | +- **Модульность**: код разделён на логические блоки. |
| 46 | + |
| 47 | +#### Основные файлы и папки: |
| 48 | + |
| 49 | +``` |
| 50 | +project-root/ |
| 51 | +│── sb-crm-client/ # Клиентская часть: |
| 52 | +│ ├── css/ # стили |
| 53 | +│ ├── fonts/ # шрифты |
| 54 | +│ ├── images/ # изображения |
| 55 | +│ ├── js/ # логика работы клиентской части |
| 56 | +│ ├── libs/ # подключаемые библиотеки |
| 57 | +│ ├── index.html # главная страница |
| 58 | +│── sb-crm-server/ # Серверная часть: |
| 59 | +│ ├── index.js # основной серверный файл |
| 60 | +│── README.md # Описание проекта |
| 61 | +``` |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +### Основные модули |
| 66 | + |
| 67 | +#### Файл `index.js` |
| 68 | + |
| 69 | +В этом файле содержится логика управления клиентами, включая: |
| 70 | + |
| 71 | +- Создание и рендеринг таблицы клиентов. |
| 72 | +- Добавление и редактирование клиентов через модальные окна. |
| 73 | +- Взаимодействие с сервером (GET, POST, PATCH, DELETE запросы). |
| 74 | +- Валидация введённых данных. |
| 75 | +- Обновление интерфейса при изменении данных. |
| 76 | + |
| 77 | +#### Работа с API |
| 78 | + |
| 79 | +Система взаимодействует с сервером через REST API: |
| 80 | + |
| 81 | +- `GET /api/clients` – получение списка клиентов. |
| 82 | +- `POST /api/clients` – добавление нового клиента. |
| 83 | +- `PATCH /api/clients/:id` – обновление данных клиента. |
| 84 | +- `DELETE /api/clients/:id` – удаление клиента. |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +### На что обратить внимание? |
| 89 | + |
| 90 | +1. **Динамическое управление контактами** – контакты можно добавлять/редактировать и удалять через модальные окна. |
| 91 | +2. **Валидация данных** – проверка ввода для различных типов контактов (телефон, email, соцсети). |
| 92 | +3. **Адаптивность** – дизайн подстраивается под разные экраны. |
| 93 | +4. **Интерактивные элементы** – тултипы, анимации, плавные переходы. |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +### Запуск проекта |
| 98 | + |
| 99 | +#### Клиентская часть: |
| 100 | + |
| 101 | +```sh |
| 102 | +cd sb-crm-client |
| 103 | +open index.html |
| 104 | +``` |
| 105 | + |
| 106 | +#### Серверная часть: |
| 107 | + |
| 108 | +```sh |
| 109 | +cd sb-crm-server |
| 110 | +node index.js |
| 111 | +``` |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +### Заключение |
| 116 | + |
| 117 | +Этот проект - "практикум" по завершению обучающего блока по JavaScript "Basic Level". Работа над CRM-системой была долгой и кропотливой, но она позволила значительно углубить понимание JavaScript, принципов работы с DOM, REST API и клиент-серверного взаимодействия. |
| 118 | + |
| 119 | +- Процесс разработки дал ценный опыт в написании чистого и структурированного кода, улучшил навыки работы с асинхронными запросами и манипуляциями с интерфейсом. |
| 120 | +- Проект демонстрирует не только технические навыки, но и умение продумывать архитектуру приложения, писать поддерживаемый код и учитывать пользовательский опыт. |
0 commit comments