- •Реферат
- •Содержание
- •Перечень условных обозначений, символов, сокращений и терминов
- •Введение
- •1 Анализ предметной области
- •1.1 Актуальность проблем разработки web-сайта, основные понятия и определения
- •1.2 Обоснование потребности в web-сайте
- •1.3 Постановка задачи при проектировании сайта
- •2 Проектирование web-приложения
- •2.1 Выбор технологии для разработки приложения
- •2.2 Серверная платформа
- •2.3 Клиентская платформа
- •2.4 Серверная база данных
- •2.5 Работа с базой данных
- •2.6 Панель администратора
- •3 Тестирование web-приложения
- •Список литературы
- •Руководство пользователя
- •Пример прохождения реального теста
2.5 Работа с базой данных
База данных - совокупность связанных данных, сохраняемая в двумерных таблицах информационной системы. Программное обеспечение информационной системы, обеспечивающей создание, ведение и совместное использование баз данных, называется системой управления базами данных (СУБД). База данных представляет собой удачно организованный набор поименованных таблиц. Каждая таблица - массив (возможно, очень большой) из однородных элементов, которые называются записями. Запись может содержать в себе одно или несколько именованных полей. Число и имена полей задаются при создании таблицы. Каждое поле имеет определенный тип.
Для работы с базой данных необходимо скачать дополнительное приложение – Robomongo. Robomongo — кроссплатформенный графический пользовательский интерфейс для MongoDB, документо-ориентированной системы управления базами данных с открытым исходным кодом (изображен на рисунке 2.2). Для работы с компьютерной системой я выбрала одну из самых популярных СУБД - NoSQL, потому что она проста и универсальна для большинства приложений, а также позволяет расширить возможности программиста, не ограничиваясь созданием таблиц.
Рисунок 2.2 - Графический интерфейс для MongoDB
Данная графическая среда позволяет с лёгкостью манипулировать данными во время отсутствия страницы администратора или прототипирования базы. Для корректной работы понадобилось 4 коллекции – аналог таблиц в SQL, которые имеют древовидную структуру:
Curses – здесь хранится первичный ключ, который описывает один курс. Содержит поля с названием и описанием курса, ссылка на логотип и массив уроков, которые принадлежат этому курсу;
Lessons – коллекция, описывающая один урок. Содержит первичный ключ и поля с названием и описанием урока, ссылку на курс, где он находится, массив вопросов с правильными ответами, а также список пользователей, которые прошли этот урок. Тут же есть настройки, указывающие на то, экзаменационный ли этот урок или нет, показывают максимальную оценку, количество вопросов за один сеанс и количество попыток прохождения (только во время экзамена);
Roles – тут хранится список ролей, которые могут быть в системе. Например, администратор и обычный пользователь;
Users – коллекция, описывающего каждого пользователя в отдельности. Содержит идентификатор, дату регистрации, почту, имя и роль.
2.6 Панель администратора
Администратор управляет контентом сайта. В его обязанности входит приглашение новых пользователей, управление курсами, уроками и их содержимым. Тонкая настройка всего контента обеспечит стабильное функционирование всего приложения и позволит новым пользователям быстро сориентироваться в навигации и пользовании сайтом. Администратор может просматривать всю статистику пользователей и устанавливать экзаменационные курсы. Чтобы зайти в панель администратора необходимо ввести секретный логин и пароль. Они создаются автоматически при самом первом запуске сервера (обязательное условие – пустая база данных). По умолчанию, логин – «a@a.a», пароль – «admin». После того, как будут введены эти данные, происходит вход в личный кабинет, изображённый на рисунке 2.3. По желанию можно изменить логин и пароль в БД.
Рисунок 2.3 – Кабинет администратора
В этой панели находятся все существующие на данный момент курсы и уроки. В разделе «Введение» находится список всех пользователей, которые прошли данный урок, их оценки и количество допустимых попыток. Оценку за пройденный урок устанавливается также администратором. По умолчанию, максимальная оценка – 10 баллов. Здесь может храниться материал не только касающийся web-программирования, но и любого другого предмета. Создание администратора с логином и паролем по умолчанию на листинге 2.1
Листинг 2.1 – Создание администратора и ролей
const availRoles = _.map(Roles.getAllRoles().fetch(), 'name');
// Create roles
_.forOwn(Role, (role) => {
if (!_.includes(availRoles, role)) {
console.log('Adding role: ', role);
Roles.createRole(role);
}
});
if(Users.find().count() == 0) {
var users=[ {email: "a@a.a", username: "admin", name: "admin", roles: [Role.Admin]}];
_.each(users, function(user){
const userId = Accounts.createUser({
email: user.email,
password: "admin",
profile: {name: user.name},
roles: user.roles });
Roles.addUsersToRoles(userId, Role.Admin);
})
Сперва, выполняется условие, которое проверяет наличие в базе ролей. Если таковых нет, то они создаются. Функция «Users.find().count()» возвращает количество всех пользователей, зарегистрированных в системе. Функция «Roles.addUsersToRoles (userId, Role.Admin)», которая добавляет пользователю роль. В нашем случае это Админ. Добавление новых пользователей изображено на рисунке 2.4.
Рисунок 2.4 – Создание нового пользователя
Все три поля являются обязательными для заполнения. Заполняет их администратор. На практике это могут быть студенты из определённых групп. Администратор выдаст всем имя и пароль, под которыми они смогут в любое время заходить в приложение и проходить тематические тесты, по результатам которых преподаватель и выставит оценки. Отметим, что для расчёта оценок используется специальная формула, прописанная в коде программы: «const rating = maxPrice / countQuestion * bestRes». Здесь:
maxPrice – это максимальная оценка, которую можно получить за урок.
countQuestion – количество вопросов;
bestRes – лучшая оценка из всех пройденных тестов. То есть, если пользователь проходил один тест три раза, то выберется лучшая из этих трёх.
Добавление, редактирование и удаление курсов происходит через панель, изображённую на рисунке 2.5.
Рисунок 2.5 – Панель редактирования курсов
Преподаватель может предоставить администратору конкретный материал, необходимый для изучения, а тот в свою очередь занесёт это на сайт. Именно на этой панели происходит всё, что касается корректирования курсов. Каждый курс имеет своё описание и может быть выделен тем или иным цветом (по желанию админа). Удалив курс, он удаляется из всей БД полностью и навсегда.
