Разработка бд, backend и фронтенд с тестами

Цена договорная
05 декабря 2022, 18:49 • 17 откликов • 95 просмотров
Добрый день

Необходимо разработать:

1. mysql innodb БД для сайта с тестами по школьным предметам.
Примерная структура БД:
1. Предметы predmet_id | predmet_name | predmet_image | predmet_text | meta*
2. Классы klass_id | klass_name
3. Таблица зависимости Предмет-Класс (в каких классах изучают данный предмет) pk_id | predmet_id | klass_id
4. Таблица с темами привязанная к таблице №3. Определенная тема изучается по определенному предмету в соответствующем классе. (Например: Тема - Квадратные корни, изучается на Алгебре 8 класс) tpk_id | pk_id | theme_name
5. Тесты. test_id | tpk_id | test_name | test_level | test_image | author | total_scores (всего получено оценок) | average_rating (средняя оценка по данному тесту у пройденных)
6. Вопросы question_id | test_id | question_text | is_active | total_scores (сколько всего ответили на вопрос) | right_rating (процент ответивших на этот вопрос правильно)
7. Ответы choice_id | question_id | is_right | choice_text | additional_text
8. Уровни сложности (новичок / знаток / эксперт)
9. Таблица авторов (Фио автора, аватарка автора, текст об авторе, логин/пароль, аутентификация)
10. Таблица всех результатов пройденных тестов result_id | test_id | user_id (если не авторизован, то гость) | result_score | result_date
11. Таблица пользователей сайта (логин, имя, фамилия, email, роль на сайте(ученик, учитель, родитель), пароль, активация регистрации)

Сделать все необходимые связи, индексы и прочее для стабильной работы бд.

2. backend админку сайта
Примерная структура:
1. Обычный bootstrap с аутентификацией и ролями (админ, автор, учитель)
2. Страница добавления теста. Выбор предмета, класса, темы, название теста, сложность теста, загрузка изображения. Добавление вопросов: textarea для вопроса и input'ы (не более 4х) для вариантов ответов, галочка для выбора правильного ответ(. Кнопка + для добавление следующего вопроса. Кнопка сохранить
3. Страница со всеми тестами. Фильтр по предметам/классам. Кнопки редактирование теста/удаление
4. Страница редактирования тестов. Вывод всех вопросов теста и вариантов ответов к вопросам. Кнопка Сохранить.
5. Добавление авторов с генерацией пароля для выдачи.
6. Страница со всеми авторами. Кнопки редактирования профиля, удаление автора.
7. Страница редактирования профиля автора. Кнопка сохранить
8. Автору видны/доступны для редактирования только его лично добавленные тесты

3. Фронтенд
Нужно встроить в готовый дизайн (шаблон html+css есть)
1. Страница с выводом всех предметов и классов
2. Страница предмета. Вывод классов (количество тестов в этом классе), листинг всех тестов (у теста отображается количество вопросов теста), текст описания
3. Страница класса внутри предмета. Разбивка тестов по темам. Вывод всех тестов внутри класса.
4. Страница теста. Поэтапный вывод вопроса (после ответа на вопрос выводится следующий) отображение номера вопроса из всего количества вопросов к этому тесту. После ответа на последний вопрос - кнопка "Результат" и отображение количества правильных ответов.
5. Все результаты прохождений сохраняются в бд, для начала авторизации на фронтенде не будет, все результаты попадающие в базу будут сохраняться, что прошел "Гость"

4. Написать парсер для добавления существующих тестов
Есть более 200 существующих статических страниц с добавленными тестами в таблице. Нужно парсер, который поочередно пройдется по всем страницам на сайте, спарсит тесты и добавит их в бд со статусом неактивно.

БД и фронтенд будут на виртуальном хостинге. Бэкенд будет на vps и подключаться к удаленной базе на виртуальном хостинге, нужно это учитывать при проектировании и разработке.

ТЗ полное. Просьба сразу оценить свою работу и сразу огласить стоимость за каждый этап. Отклики посмотрю через пару дней. Спасибо
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Андрей настоящий профессионал своего дела! Нет смысла расписывать насколько легко и непринужденно прошел процесс работы и коммуникации. Грамотная постановка вопросов, честный подход к делу и оперативность. Полностью доволен.
1 год назад
R50 ab7c16462f5c457becdcd9821c6b23ba
Фрилансер
Идеальный заказчик! Все четко, по существу и без головной боли. Быстрая и своевременная оплата выставленных счетов, оперативные ответы на вопросы, всегда на связи и всегда готов к диалогу. Игорь, с вами очень приятно было работать, спасибо Вам!
1 год назад