@mashka818/exam-de-template 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/exam-guides/COMMENTS_GUIDE.md +53 -0
- package/exam-guides/EXAM_COMMANDS.txt +47 -0
- package/exam-guides/GUIDE_PAGES.md +529 -0
- package/exam-guides/NPM_PACKAGE.md +206 -0
- package/exam-guides/README.md +40 -0
- package/exam-guides/RESPONSIVE.md +224 -0
- package/exam-guides/TECH_STACK.txt +142 -0
- package/exam-guides/THEME_BANQUETAM_NET.md +106 -0
- package/exam-guides/commented-code/README.txt +5 -0
- package/exam-guides/commented-code/client/index.html +14 -0
- package/exam-guides/commented-code/client/package-lock.json +2298 -0
- package/exam-guides/commented-code/client/package.json +21 -0
- package/exam-guides/commented-code/client/public/images/README.txt +26 -0
- package/exam-guides/commented-code/client/public/images/about-cleaning.svg +4 -0
- package/exam-guides/commented-code/client/public/images/admin-banner.svg +1 -0
- package/exam-guides/commented-code/client/public/images/empty-requests.svg +1 -0
- package/exam-guides/commented-code/client/public/images/footer-photo-1.svg +4 -0
- package/exam-guides/commented-code/client/public/images/footer-photo-2.svg +4 -0
- package/exam-guides/commented-code/client/public/images/footer-photo-3.svg +4 -0
- package/exam-guides/commented-code/client/public/images/home-hero.svg +4 -0
- package/exam-guides/commented-code/client/public/images/login-banner.svg +1 -0
- package/exam-guides/commented-code/client/public/images/logo.svg +4 -0
- package/exam-guides/commented-code/client/public/images/new-request-banner.svg +1 -0
- package/exam-guides/commented-code/client/public/images/register-banner.svg +1 -0
- package/exam-guides/commented-code/client/public/images/requests-banner.svg +1 -0
- package/exam-guides/commented-code/client/public/images/slide-1.svg +6 -0
- package/exam-guides/commented-code/client/public/images/slide-2.svg +5 -0
- package/exam-guides/commented-code/client/public/images/slide-3.svg +5 -0
- package/exam-guides/commented-code/client/src/App.jsx +72 -0
- package/exam-guides/commented-code/client/src/api.js +71 -0
- package/exam-guides/commented-code/client/src/components/FormField.jsx +25 -0
- package/exam-guides/commented-code/client/src/components/Layout.jsx +83 -0
- package/exam-guides/commented-code/client/src/components/PageImage.jsx +38 -0
- package/exam-guides/commented-code/client/src/components/ProtectedRoute.jsx +35 -0
- package/exam-guides/commented-code/client/src/components/UserNav.jsx +33 -0
- package/exam-guides/commented-code/client/src/components/landing/HeroSlider.jsx +103 -0
- package/exam-guides/commented-code/client/src/components/landing/LandingLayout.jsx +76 -0
- package/exam-guides/commented-code/client/src/components/landing/SiteFooter.jsx +74 -0
- package/exam-guides/commented-code/client/src/config/images.js +104 -0
- package/exam-guides/commented-code/client/src/constants/services.js +19 -0
- package/exam-guides/commented-code/client/src/context/AuthContext.jsx +72 -0
- package/exam-guides/commented-code/client/src/index.css +73 -0
- package/exam-guides/commented-code/client/src/main.jsx +28 -0
- package/exam-guides/commented-code/client/src/pages/AdminPage.jsx +151 -0
- package/exam-guides/commented-code/client/src/pages/LandingPage.jsx +131 -0
- package/exam-guides/commented-code/client/src/pages/LoginPage.jsx +81 -0
- package/exam-guides/commented-code/client/src/pages/RegisterPage.jsx +117 -0
- package/exam-guides/commented-code/client/src/pages/RequestFormPage.jsx +196 -0
- package/exam-guides/commented-code/client/src/pages/RequestsPage.jsx +112 -0
- package/exam-guides/commented-code/client/src/utils/validation.js +71 -0
- package/exam-guides/commented-code/client/vite.config.js +31 -0
- package/exam-guides/commented-code/server/db/init.js +67 -0
- package/exam-guides/commented-code/server/db/pool.js +23 -0
- package/exam-guides/commented-code/server/db/schema.sql +53 -0
- package/exam-guides/commented-code/server/db/seed.sql +15 -0
- package/exam-guides/commented-code/server/index.js +45 -0
- package/exam-guides/commented-code/server/middleware/auth.js +38 -0
- package/exam-guides/commented-code/server/package-lock.json +1084 -0
- package/exam-guides/commented-code/server/package.json +17 -0
- package/exam-guides/commented-code/server/routes/admin.js +96 -0
- package/exam-guides/commented-code/server/routes/auth.js +128 -0
- package/exam-guides/commented-code/server/routes/requests.js +115 -0
- package/exam-guides/commented-code/server/routes/services.js +31 -0
- package/exam-guides/commented-code/server/utils/validation.js +81 -0
- package/exam-guides/exam-starter/README.txt +22 -0
- package/exam-guides/exam-starter/package.json +13 -0
- package/exam-guides//320/243/320/224/320/220/320/233/320/230/320/242/320/254-/320/237/320/225/320/240/320/225/320/224-/320/241/320/224/320/220/320/247/320/225/320/231.txt +9 -0
- package/exam-project/README.md +16 -0
- package/exam-project/client/index.html +14 -0
- package/exam-project/client/package-lock.json +2298 -0
- package/exam-project/client/package.json +21 -0
- package/exam-project/client/public/images/README.txt +26 -0
- package/exam-project/client/public/images/about-cleaning.svg +4 -0
- package/exam-project/client/public/images/admin-banner.svg +1 -0
- package/exam-project/client/public/images/empty-requests.svg +1 -0
- package/exam-project/client/public/images/footer-photo-1.svg +4 -0
- package/exam-project/client/public/images/footer-photo-2.svg +4 -0
- package/exam-project/client/public/images/footer-photo-3.svg +4 -0
- package/exam-project/client/public/images/home-hero.svg +4 -0
- package/exam-project/client/public/images/login-banner.svg +1 -0
- package/exam-project/client/public/images/logo.svg +4 -0
- package/exam-project/client/public/images/new-request-banner.svg +1 -0
- package/exam-project/client/public/images/register-banner.svg +1 -0
- package/exam-project/client/public/images/requests-banner.svg +1 -0
- package/exam-project/client/public/images/slide-1.svg +6 -0
- package/exam-project/client/public/images/slide-2.svg +5 -0
- package/exam-project/client/public/images/slide-3.svg +5 -0
- package/exam-project/client/src/App.jsx +52 -0
- package/exam-project/client/src/api.js +50 -0
- package/exam-project/client/src/components/FormField.jsx +11 -0
- package/exam-project/client/src/components/Layout.jsx +61 -0
- package/exam-project/client/src/components/PageImage.jsx +22 -0
- package/exam-project/client/src/components/ProtectedRoute.jsx +20 -0
- package/exam-project/client/src/components/UserNav.jsx +20 -0
- package/exam-project/client/src/components/landing/HeroSlider.jsx +89 -0
- package/exam-project/client/src/components/landing/LandingLayout.jsx +61 -0
- package/exam-project/client/src/components/landing/SiteFooter.jsx +61 -0
- package/exam-project/client/src/config/images.js +83 -0
- package/exam-project/client/src/constants/services.js +7 -0
- package/exam-project/client/src/context/AuthContext.jsx +55 -0
- package/exam-project/client/src/index.css +54 -0
- package/exam-project/client/src/main.jsx +17 -0
- package/exam-project/client/src/pages/AdminPage.jsx +128 -0
- package/exam-project/client/src/pages/LandingPage.jsx +115 -0
- package/exam-project/client/src/pages/LoginPage.jsx +63 -0
- package/exam-project/client/src/pages/RegisterPage.jsx +97 -0
- package/exam-project/client/src/pages/RequestFormPage.jsx +178 -0
- package/exam-project/client/src/pages/RequestsPage.jsx +94 -0
- package/exam-project/client/src/utils/validation.js +54 -0
- package/exam-project/client/vite.config.js +17 -0
- package/exam-project/package.json +18 -0
- package/exam-project/scripts/init-project.js +86 -0
- package/exam-project/scripts/prepack.js +27 -0
- package/exam-project/scripts/unpack-template.js +105 -0
- package/exam-project/server/db/init.js +50 -0
- package/exam-project/server/db/pool.js +11 -0
- package/exam-project/server/db/schema.sql +41 -0
- package/exam-project/server/db/seed.sql +12 -0
- package/exam-project/server/index.js +29 -0
- package/exam-project/server/middleware/auth.js +24 -0
- package/exam-project/server/package-lock.json +1084 -0
- package/exam-project/server/package.json +17 -0
- package/exam-project/server/routes/admin.js +76 -0
- package/exam-project/server/routes/auth.js +109 -0
- package/exam-project/server/routes/requests.js +99 -0
- package/exam-project/server/routes/services.js +18 -0
- package/exam-project/server/utils/validation.js +63 -0
- package/package.json +25 -0
- package/scripts/init-project.js +86 -0
- package/scripts/prepack.js +27 -0
- package/scripts/unpack-template.js +105 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Тема «Банкетам.Нет» — что менять в шаблоне (только текст и логика по комментариям)
|
|
2
|
+
|
|
3
|
+
> **Подробный гайд** (как удалять/добавлять кнопки, картинки, секции, новую страницу): **[GUIDE_PAGES.md](GUIDE_PAGES.md)**
|
|
4
|
+
|
|
5
|
+
Сейчас в коде тема **«Мой Не Сам» (клининг)**. На экзамене ищите в файлах метку **`БАНКЕТАМ.НЕТ:`** — там подсказка, что заменить.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Быстрая таблица замен
|
|
10
|
+
|
|
11
|
+
| Сейчас (клининг) | Банкетам.Нет |
|
|
12
|
+
|------------------|--------------|
|
|
13
|
+
| Мой Не Сам | **Банкетам.Нет** |
|
|
14
|
+
| Заявка / requests | **Бронирование / заявка на зал** |
|
|
15
|
+
| Вид услуги | **Помещение** (зал, ресторан, летняя веранда, закрытая веранда) |
|
|
16
|
+
| Дата и время уборки | **Дата начала банкета** (формат **ДД.ММ.ГГГГ**) |
|
|
17
|
+
| adminka / password | **Admin26 / Demo20** |
|
|
18
|
+
| Статус «В работе» | **Банкет назначен** |
|
|
19
|
+
| Статус «Выполнено» | **Банкет завершен** |
|
|
20
|
+
| Отменено | по заданию может не быть — убрать кнопку или оставить |
|
|
21
|
+
| Пароль ≥ 6 | **Пароль ≥ 8** |
|
|
22
|
+
| Логин | **латиница + цифры, ≥ 6**, уникальный |
|
|
23
|
+
| Слайдер 3 слайда, 5 сек | **4 слайда, 3 сек** (HeroSlider.jsx, images.js) |
|
|
24
|
+
| «Иная услуга» | обычно **не нужна** — убрать чекбокс |
|
|
25
|
+
| Личный кабинет п.3 | история + **отзывы** (только после смены статуса админом) |
|
|
26
|
+
| Админ-панель | **фильтры, сортировка, пагинация**, уведомления |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Пункты задания → файлы
|
|
31
|
+
|
|
32
|
+
### п.1 Регистрация (`/register`)
|
|
33
|
+
- `RegisterPage.jsx` — подписи полей, ссылка «Уже зарегистрированы?» → наоборот: на login «**Еще не зарегистрированы? Регистрация**»
|
|
34
|
+
- `client/src/utils/validation.js` + `server/utils/validation.js` — логин `[a-zA-Z0-9]{6,}`, пароль `min 8`
|
|
35
|
+
- `server/routes/auth.js` — INSERT users
|
|
36
|
+
|
|
37
|
+
### п.2 Вход (`/login`)
|
|
38
|
+
- `LoginPage.jsx` — текст ошибок, ссылка на регистрацию
|
|
39
|
+
- `server/routes/auth.js` — POST /login
|
|
40
|
+
|
|
41
|
+
### п.3 Личный кабинет (`/requests`)
|
|
42
|
+
- `RequestsPage.jsx` — «история бронирований», **слайдер** (можно вынести компонент с лендинга)
|
|
43
|
+
- **ДОБАВИТЬ:** таблица/поле `reviews` в БД, форма отзыва если статус ≠ `new` (после действия админа)
|
|
44
|
+
- `server/db/schema.sql` — комментарий про `reviews`
|
|
45
|
+
|
|
46
|
+
### п.4 Оформление заявки (`/requests/form`)
|
|
47
|
+
- `RequestFormPage.jsx` — select помещений, дата **ДД.ММ.ГГГГ**, оплата
|
|
48
|
+
- `server/db/seed.sql` — 4 типа помещений
|
|
49
|
+
- убрать/не показывать «Иная услуга»
|
|
50
|
+
|
|
51
|
+
### п.5 Админ (`/admin`)
|
|
52
|
+
- `server/db/init.js` — **Admin26** / **Demo20**
|
|
53
|
+
- `AdminPage.jsx` — статусы только «Банкет назначен», «Банкет завершен» (+ изначально «Новая»)
|
|
54
|
+
- **ДОБАВИТЬ:** фильтр по статусу, сортировка, пагинация (комментарии в AdminPage.jsx)
|
|
55
|
+
|
|
56
|
+
### Лендинг (`/`)
|
|
57
|
+
- `LandingPage.jsx`, `HeroSlider.jsx` — тексты про банкеты, **4** картинки, интервал **3000** мс
|
|
58
|
+
- `client/public/images/` — slide-1…slide-4.png
|
|
59
|
+
|
|
60
|
+
### Модуль 2
|
|
61
|
+
- HTML-макеты 390×844 в Figma, не обязательно в репозитории
|
|
62
|
+
- `RESPONSIVE.md` — мобильный дизайн
|
|
63
|
+
|
|
64
|
+
### Модуль 3
|
|
65
|
+
- `schema.sql` — отзывы, при необходимости убрать `cancelled`
|
|
66
|
+
- `index.css` — микроанимации уже есть (animate-fade-up)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Статусы в БД (schema.sql + routes)
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
new → «Новая»
|
|
74
|
+
in_progress → «Банкет назначен» (переименовать LABEL, не обязательно ключ)
|
|
75
|
+
completed → «Банкет завершен»
|
|
76
|
+
cancelled → убрать из CHECK или не показывать в админке
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
В `server/routes/requests.js` и `admin.js` — `STATUS_LABELS`.
|
|
80
|
+
В `RequestsPage.jsx` — `statusColors`.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Помещения (seed.sql)
|
|
85
|
+
|
|
86
|
+
```sql
|
|
87
|
+
('Банкетный зал'),
|
|
88
|
+
('Ресторан'),
|
|
89
|
+
('Летняя веранда'),
|
|
90
|
+
('Закрытая веранда')
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Порядок работы на экзамене (≈30–60 мин только тексты)
|
|
96
|
+
|
|
97
|
+
1. `Layout.jsx` + `LandingLayout.jsx` — название **Банкетам.Нет**
|
|
98
|
+
2. `init.js` — Admin26 / Demo20 → `npm run db:init`
|
|
99
|
+
3. `seed.sql` — помещения
|
|
100
|
+
4. `validation.js` (×2) — логин/пароль
|
|
101
|
+
5. Все `pages/*.jsx` — заголовки и кнопки
|
|
102
|
+
6. `STATUS_LABELS` + админ-кнопки
|
|
103
|
+
7. Картинки в `public/images/` + `images.js`
|
|
104
|
+
8. По времени: отзывы, фильтры админа, 4-й слайд
|
|
105
|
+
|
|
106
|
+
Удачи на ДЭ.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="ru">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<!-- ЗАМЕНИТЕ title под название портала вашей темы -->
|
|
7
|
+
<!-- БАНКЕТАМ.НЕТ: Банкетам.Нет — бронирование банкетных залов -->
|
|
8
|
+
<title>Мой Не Сам — портал клининговых услуг</title>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
<script type="module" src="/src/main.jsx"></script>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|