Создание веб-сайта для Острогожского Районного потребительского кооператива, который будет выполнять функции регистрации пользователей, управления вакансиями и отзывами, а также черного списка. Веб-сайт будет работать с базой данных и использовать MySQL в качестве системы управления базами данных, а JavaScript для клиентской логики.
Функциональные требования
1. Пользователь:
Регистрация:
Пользователь должен иметь возможность зарегистрироваться, указав имя, фамилию, электронную почту и пароль.
Авторизация:
Пользователь должен иметь возможность войти в систему, используя зарегистрированные учетные данные.
Личный кабинет пользователя должен включать:
Оставление отзывов:
Зарегистрированный пользователь может оставить отзыв о кооперативе.
Отклик на вакансии:
Зарегистрированный пользователь может откликнуться на актуальные вакансии, предоставляя:
Резюме (файл)
Контактные данные (телефон, электронная почта)
2. Администратор: его личный кабинет.
Управление пользователями:
Возможность добавления пользователей в черный список сайта.
Управление вакансиями:
Возможность создания, редактирования и удаления вакансий.
Просмотр откликов на вакансии:
Возможность просматривать отклики, оставленные пользователями на вакансии, включая резюме и контактные данные.
Структура базы данных
Таблицы
Users
id (INT, PK, AUTO_INCREMENT) — уникальный идентификатор пользователя
first_name (VARCHAR) — имя пользователя
last_name (VARCHAR) — фамилия пользователя
email (VARCHAR) — электронная почта (уникальная)
password (VARCHAR) — хэш пароля
created_at (DATETIME) — дата регистрации
is_blacklisted (BOOLEAN) — статус в черном списке (по умолчанию FALSE)
Feedback
id (INT, PK, AUTO_INCREMENT) — уникальный идентификатор отзыва
user_id (INT, FK) — идентификатор пользователя, оставившего отзыв
content (TEXT) — текст отзыва
created_at (DATETIME) — дата создания отзыва
Vacancies
id (INT, PK, AUTO_INCREMENT) — уникальный идентификатор вакансии
title (VARCHAR) — название вакансии
description (TEXT) — описание вакансии
created_at (DATETIME) — дата создания вакансии
updated_at (DATETIME) — дата последнего обновления вакансии
Applications
id (INT, PK, AUTO_INCREMENT) — уникальный идентификатор отклика
vacancy_id (INT, FK) — идентификатор вакансии
user_id (INT, FK) — идентификатор пользователя, откликнувшегося на вакансию
resume (VARCHAR) — путь к файлу резюме
contact_phone (VARCHAR) — контактный телефон
contact_email (VARCHAR) — контактная электронная почта
created_at (DATETIME) — дата отклика
Blacklist
id (INT, PK, AUTO_INCREMENT) — уникальный идентификатор записи
user_id (INT, FK) — идентификатор пользователя в черном списке
reason (TEXT) — причина добавления в черный список
created_at (DATETIME) — дата внесения в черный список
Таблица информации о Районном потребительском кооперативе (coop_info)
info_id (INT, PRIMARY KEY, AUTO_INCREMENT) — уникальный идентификатор записи
content (TEXT) — текст информации о кооперативе
updated_at (TIMESTAMP) — дата и время последнего обновления информации
Нефункциональные требования
Безопасность:
Все пароли должны храниться в виде хешей.
Защита от SQL инъекций и XSS-атак.
Производительность:
Быстрая загрузка страниц и откликов.
Технологический стек
База данных: MySQL
Язык программирования: JavaScript
Фреймворк: Node.js/Express для серверной части, React/Vue.js или другой библиотека для клиентской части.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |