10000 GitHub - Pepengu/GameWise: Gamified educational platform
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Pepengu/GameWise

Repository files navigation

Описание

GameWise — это образовательная платформа, которая делает процесс обучения более увлекательным и интерактивным. Пользователи могут записываться на курсы, проходить тесты по пройденному материалу и соревноваться друг с другом за место в глобальном лидерборде, что способствует повышению мотивации и вовлеченности.

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

На нашей платформе реализованна система наград за выполнение определённых условий пользователями. Эти достижения позволяют куда приятнее подкрепить полученные знания признанием общества.

Список доступных достижений на данный момент:

Название Условие получения Тэг
Первый курс Пройдите первый курс, чтобы получить эту ачивку first_course
Топ-1 в рейтинге Станьте лучшим игроком в рейтинге top_1
Все задачи курса выполнены верно Выполните все задачи курса с правильными ответами all_correct
Три курса выполнены Пройдите три курса, чтобы получить эту ачивку three_courses

Наименование

GameWise — название отражает назначение самой платформы: обучение с геймификацией процесса.

Предметная область

GameWise предназначен для пользователей, желающих проводить свои часы обучения какому-либо навыку не только с пользой для себя, но и показывать остальным ребятам, что у всего есть цель. Система поддерживает администрирование контента, а также выстраивание справедливого соревнования между пользователями. Осуществлена система лидерборда и ачивок.

Инструкция по использованию

Зависимости

Для работы приложения требуется установить docker. Скрипты запуска работают на linux/macos. Для работы на windows требуется использовать эмуляцию работы unix, например git bash или cygwin.

Необходимая подготовка

После установки докера требуется создать аккаунт на hub.docker.com и сгенерировать на нём personal access token. Никнейм и токен нужно вставить в .env файл на соответсвующие места в двойых ковычках

DOCKERHUB_USERNAME="sample_username"
DOCKERHUB_TOKEN="sample_token"

Запуск приложения

В папке находятся 3 скрипта для запуска, останоки и сборки приложения

  • build_and_push.sh собирает проект и загружает на докерхаб в соответтвии с .env
  • start.sh запускает проект в соответтвии с .env, требуется предварительная сборка
  • stop.sh останавливает проект в соответтвии с .env

Скрипты start и stop поддер DD5F ивают частичную работу с проектам по средсвам передачи флагов:

-w/-f - Запустить web/frontend составляющую

-a/-b - Запустить api/backend составляющую

Если ни одного флага передано не было, то работа выполняется со всем проктом

Данные

DataBaseScheme.png

Пользователи

Название Содержимое Тип данных Ограничения Стандартное значение
username имя пользователя Char длина не более 255, уникален
email почтовый адрес пользователя String уникален
is_active может ли пользователь входить на сайт Bool True
is_staff является ли пользователь сотрудником Bool False
is_superuser является ли пользователь суперюзером Bool False
date_joined дата последнего захода на сайт DateTime Now
profile_photo аватар профиля Image

Курсы

Название Содержимое Тип данных Ограничения Стандартное значение
title Название курса Char длина не более 255, уникален
author ID автора курса ForeignKey
description Опиасние курса Text длина не более 500 null
tags Тэги курса Char длина не более 255
content Содержимое курса Text null

Записи на курсы

Название Содержимое Тип данных Ограничения Стандартное значение
course ID курса ForeignKey
user ID пользователя ForeignKey
enrollment_date Дата записи DateTime Now

Вопросы курса

Название Содержимое Тип данных Ограничения Стандартное значение
course ID курса ForeignKey
text Текст вопроса Char длина не более 255

Ответы курса

Название Содержимое Тип данных Ограничения Стандартное значение
question ID вопроса ForeignKey
text Текст ответа Char длина не более 255
is_correct Является ли ответ верным Bool

Результаты от пользователей

Название Содержимое Тип данных Ограничения Стандартное значение
course ID курса ForeignKey
user ID пользователя ForeignKey
correct_answers Ответы пользователя Int Значение неотрицательно

Достижения

Название Содержимое Тип данных Ограничения Стандартное значение
title Название достижения Char длина не более 255, уникален
description Описание достижения Text
image Иконка достижения Image
condition Условие получения достижения Char длина не более 255

Достижения пользователей

Название Содержимое Тип данных Ограничения Стандартное значение
user ID пользователя ForeignKey
achivement ID достижения ForeignKey
date_earned Дата получения достижения DateTime Now

Общие ограничения целостности

  • Не может быть 2 записи достижений пользователя с одинаковой парой значений {user, achivement}
  • Не может быть 2 записи записей на курс с одинаковой парой значений {user, course}

Пользовательские роли

Название роли ответственность количество пользователей
User Отсутствует Не ограничено
Admin Редактирование пользователей, создание и редактирование курсов 5

API

URL запроса результат
/api/register/ запрос данных у пользователя для регистрации на сайте
/api/login/ запрос данных для авторизации на сайте
/api/profile/?userid={userid} запрос к БД на получение данных о пользователе по его id
/api/courses/ Выводит список всех доступных курсов
/api/courses/{course_id}/ Возвращает API-ответ с детальной информацией о курсе с указанным id
/api/courses/{course_id}/enroll/ Осуществляет регистрацию (запись) пользователя на курс с указанным id
/api/courses/create/ Интерфейс для создания нового курса
/api/user/{userid}/courses возвращает количество курсов по всем пользователям
/api/user/{int:user_id}/courses/ посмотреть курсы конкретного пользователя
/api/courses/users посмотреть количество курсов всех пользователей
/api/users/{int:user_id}/edit/ отредактировать информацию о пользователе
/api/delete_user/{int:user_id}/ удалить из базы пользователя по id
api/courses/users информация о сумме набранных очков за курсы
api/courses/{course_id}/add-form/ создание тестировочной формы по материалам курса
api/courses/{course_id}/questions/ берет вопросы курса из бд для отображения их в форме пользователя
api/courses/{course_id}/check-answers/ проверяет корректность ответов, данных пользователем
api/achievements/ общий список ачивок
api/users/{user_id}/achievements-view/ показать ачивки конкретного пользователя

Технологии разработки

Язык программирования

Python 3.8 Node.js 20

СУБД

sqlite3

Тестирование

About

Gamified educational platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
0