Skip to content

Commit 74e57b0

Browse files
committed
[PRAC/compl] Add description to README.md
Adding functional, structural description for this proj (what/how). Worth noting: - that it was part of the practicum tasks. core: B-3 / JS-BL
1 parent 94b8735 commit 74e57b0

File tree

1 file changed

+120
-0
lines changed
  • core-courses/3-js-basic-level/practicum-js-basic-level

1 file changed

+120
-0
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
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

Comments
 (0)