А4.2 Описание операций технологического процесса обработки данных, необходимых для выполнения задач
А4.2.1 Авторизация в информационной системе
В разработанной автоматизированной информационной системе существуют 3 типа пользователей: заведующий кафедрой, преподаватель и секретарь. После входа в систему под своим именем пользователя и паролем пользователь увидит интерфейс, настроенный на права данного пользователя. Для входа в систему нужно нажать на ссылку «Вход» в правом верхнем углу окна. После этого пользователю будет представлена форма для авторизации, как на рисунке А1. Для ввода имени пользователя и пароля нужно ввести необходимую информацию в соответствующие текстовые поля и нажать кнопку «Войти». Также существует возможность остаться в системе, выбрав соответствующий пункт.
Рисунок А.1 - Форма авторизации пользователя в системе
А4.2.2 Работа в системе, настроенной на права секретаря системы
Если пользователь вошел в систему с правами секретаря, то он увидит интерфейс системе, изображенный на рисунке А2. Для этой роли существуют три основные вкладки:
- Главная - первая страница с информацией о системе
- Отчеты - страница с отчетами системы
- Справочники - страница со справочниками системы
- Контакты - страница с контактами разработчика системы
Для перехода к спискам справочников или отчетов нужно кликнуть по соответствующей вкладке
Рисунок А.2 - Информационная система, настроенной на права секретаря
А4.2.3 Работа со справочниками системы
Работать со справочниками могут пользователи с правами секретаря. Для перехода к справочникам системы выберете вкладку «Справочники». Справочники системы изображены на рисунке А3. В открывшимся списке выберете интересующий справочник и кликните по нему.
Рисунок А.3 - Список справочников информационной системы
Рассмотрим работу со справочниками на примере справочника дисциплин. Нажав на справочник дисциплин система перейдет к списку всех дисциплин (рисунок А4).
Рисунок А.4 - Работа со справочником дисциплин
Чтобы добавить новую дисциплину в базу следует нажать ссылку «добавить». Система перейдет к форме добавления новой дисциплины в базу данных (рисунок А5). После необходимо заполнить поля названия дисциплины, а так же указать какие компетенции и знания относятся к данной дисциплине. Нажав кнопку «Добавить» дисциплина будет добавлена в базу данных. После добавления, система автоматически перейдет к списку дисциплин.
Так же система позволяет изменять информацию о дисциплине и удалять ее. Что бы изменить информацию о дисциплине нужно в строке с изменяемой дисциплиной нажать ссылку «Изменить». Система перейдет на форму изменения информации о дисциплине. Изменение происходит аналогичным образом, как и добавление. Для удаления дисциплины нужно в строке с изменяемой дисциплиной нажать ссылку «Удалить». Система перейдет на форму удаления дисциплины (рисунок А6). Нажав кнопку «Удалить» система удалит дисциплину из базы данных.
Рисунок А.5 - Форма добавления новой дисциплины в базу данных
Рисунок А.6 - Форма удаления дисциплины из базы данных
Работа с другими справочниками аналогична работе со справочником дисциплин.
А4.2.4 Работа с отчетами системы
В информационной системе существуют три вида отчетов. Отчет об успеваемости, отчет о компетенциях и отчет о знаниях студентов. На рисунке А.7 изображены отчеты системы.
Рисунок А.7 - Список отчетов автоматизированной информационной системы
Чтобы выбрать отчет об успеваемости нужно нажать на соответствующую ссылку. После этого система перейдет к форме формирования отчета. Далее необходимо выбрать факультет, группу и студента можно отметить при необходимости уточнения отчета. После этого необходимо нажать на кнопку «Построить график» и система создаст график с редактируемой легендой справа от графика. На рисунке А8 отображен пример отчета об мониторинге формирования успеваемости групп студентов за все время обучения.
Рисунок А.8 - Пример отчета об мониторинге формирования успеваемости групп студентов за все время обучения
А4.2.5 Работа в системе, настроенной на права заведующего кафедрой
Заведующий кафедрой в информационной системе имеет возможность формировать отчеты мониторинга формирования знаний и компетенций студентов. После входа в систему с выданными заранее именем пользователя и пароля заведующему кафедрой отображена главная страница системы. На рисунке А9 изображена главная страница системы, настроенная на права заведующего кафедрой.
Рисунок А.9 - Информационная система, настроенная на права зав. каф.
Нажав на вкладку «Отчеты» заведующий кафедрой может сформировать отчет об успеваемости, компетенциях и знаниях так же как и пользователь с правами секретаря.
Табличный отчет сформированный заведующим кафедрой указан на рисунке А10.
Рисунок А.10 - Табличный отчет сформированный заведующим кафедрой
А4.2.6 Работа в системе, настроенной на права преподавателя
Преподаватель в информационной системе в отличие от пользователей с правами заведующего кафедрой и секретаря имеет уникальную возможность вести журнал преподавателя. После входа в систему с выданными заранее именем пользователя и пароля преподавателю отображена главная страница системы. На рисунке А9 изображена главная страница системы, настроенная на права преподавателя.
Рисунок А.11 - Информационная система, настроенная на права преподавателя.
Нажав на вкладку «Журнал», выбрав необходимый ему семестр, факультет и группу. Преподаватель увидит список необходимых ему предметов в данном семестре необходимой ему группы. Нажав на нужный предмет откроется страница, уже ранее выбранной группы, со списком студентов и оценками по выбранному предмету. Которые преподаватель может добавить, изменить или удалить.
Страница добавления, редактирования и удаления оценок, указана на рисунке А.12.
Рисунок А.12 - Страница добавления, редактирования и удаления оценок
А.5 Аварийные ситуации
Таблица А.1 - Аварийных ситуаций
|
Класс ошибки |
Ошибка |
Описание ошибки |
Требуемые действия пользователя при возникновении ошибки |
|
|
АИС АИС |
Невозможно отобразить страницу . Сервер не найден. |
Возможны проблемы с сетью или с доступом к АИС |
Убедиться, что компьютер подключен к сети интернет. Обновить страницу |
|
|
Ошибка: Неверно введены имя пользователя или пароль |
При авторизации в системе неверно введены данные пользователя |
Ввести корректные имя пользователя и пароль |
||
|
Ошибка: Обязательное поле |
При вводе данных некоторые поля должны быть обязательно заполнены |
Заполнить соответствующее поле информацией. |
||
|
Сбой в электропитании рабочей станции |
Нет электропитания рабочей станции или произошел сбой в электропитании |
ПК выключился или перезагрузился |
Перезагрузить ПК. |
ПРИЛОЖЕНИЕ Б
Листинг основных модулей информационной системы
Б.1 Модуль заполнения справочника компетенций
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Fist.StudentKnowledge.Models;
namespace Fist.StudentKnowledge.Controllers
{
[Authorize(Roles = " Secretaries")]
public class CompetenceController : Controller
{
private DataContext db = new DataContext();
//
// GET: /Competence/
public ActionResult Index()
{
return View(db.Competencies.ToList());
}
//
// GET: /Competence/Details/5
public ActionResult Details(int id = 0)
{
Competence competence = db.Competencies.Find(id);
if (competence == null)
{
return HttpNotFound();
}
return View(competence);
}
//
// GET: /Competence/Create
public ActionResult Create()
{
return View();
}
//
// POST: /Competence/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Competence competence)
{
if (ModelState.IsValid)
{
db.Competencies.Add(competence);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(competence);
}
//
// GET: /Competence/Edit/5
public ActionResult Edit(int id = 0)
{
Competence competence = db.Competencies.Find(id);
if (competence == null)
{
return HttpNotFound();
}
return View(competence);
}
//
// POST: /Competence/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Competence competence)
{
if (ModelState.IsValid)
{
db.Entry(competence).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(competence);
}
//
// GET: /Competence/Delete/5
public ActionResult Delete(int id = 0)
{
Competence competence = db.Competencies.Find(id);
if (competence == null)
{
return HttpNotFound();
}
return View(competence);
}
//
// POST: /Competence/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Competence competence = db.Competencies.Find(id);
db.Competencies.Remove(competence);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
}
Б.2 Модуль заполнения журнала оценок.
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Fist.StudentKnowledge.Models;
namespace Fist.StudentKnowledge.Controllers
{
[Authorize(Roles = " Teachers")]
public class SubjectController : Controller
{
private DataContext db = new DataContext();
//
// GET: /Subject/
public ActionResult Index()
{
return View(db.Subjects.ToList());
}
//
// GET: /Subject/Details/5
public ActionResult Details(int id = 0)
{
Subject subject = db.Subjects.Find(id);
if (subject == null)
{
return HttpNotFound();
}
return View(subject);
}
//
// GET: /Subject/Create
public ActionResult Create()
{
ViewBag.AllCompetencies = new SelectList(db.Competencies, "Id", "Title");
ViewBag.SelectedCompetencies = new SelectList(new List<Competence>(), "Id", "Title");
ViewBag.AllFgoses = new SelectList(db.Fgoses, "Id", "Title");
ViewBag.SelectedFgoses = new SelectList(new List<Fgos>(), "Id", "Title");
ViewBag.JsonAllCompetencies = db.Competencies.Select(a => new {a.Id, a.Description}).ToList();
ViewBag.JsonAllFgoses = db.Fgoses.Select(a => new { a.Id, a.Description }).ToList();
return View();
}
//
// POST: /Subject/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Subject subject, int[] selectedCompetencies, int[] selectedFgoses)
{
if (ModelState.IsValid)
{
if (selectedCompetencies != null)
{
subject.Competencies = new Collection<Competence>();
foreach (var id in selectedCompetencies)
{
subject.Competencies.Add(db.Competencies.Find(id));
}
}
if (selectedFgoses != null)
{
subject.Fgoses = new Collection<Fgos>();
foreach (var id in selectedFgoses)
{
subject.Fgoses.Add(db.Fgoses.Find(id));
}
}
db.Subjects.Add(subject);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.AllCompetencies = new SelectList(db.Competencies, "Id", "Title");
ViewBag.SelectedCompetencies = new SelectList(new List<Competence>(), "Id", "Title");
ViewBag.AllFgoses = new SelectList(db.Fgoses, "Id", "Title");
ViewBag.SelectedFgoses = new SelectList(new List<Fgos>(), "Id", "Title");
ViewBag.JsonAllCompetencies = db.Competencies.Select(a => new { a.Id, a.Description }).ToList();
ViewBag.JsonAllFgoses = db.Fgoses.Select(a => new { a.Id, a.Description }).ToList();
return View(subject);
}
//
// GET: /Subject/Edit/5
public ActionResult Edit(int id = 0)
{
Subject subject = db.Subjects.Find(id);
if (subject == null)
{
return HttpNotFound();
}
ViewBag.AllCompetencies = new SelectList(db.Competencies, "Id", "Title");
ViewBag.SelectedCompetencies = new SelectList(subject.Competencies, "Id", "Title");
ViewBag.AllFgoses = new SelectList(db.Fgoses, "Id", "Title");
ViewBag.SelectedFgoses = new SelectList(subject.Fgoses, "Id", "Title");
ViewBag.JsonAllCompetencies = db.Competencies.Select(a => new { a.Id, a.Description }).ToList();
ViewBag.JsonAllFgoses = db.Fgoses.Select(a => new { a.Id, a.Description }).ToList();
return View(subject);
}
//
// POST: /Subject/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Subject subject, int[] selectedCompetencies, int[] selectedFgoses)
{
if (ModelState.IsValid)
{
var edit = db.Subjects.FirstOrDefault(s => s.Id == subject.Id);
if (edit != null)
{
edit.Title = subject.Title;
if (edit.Competencies != null)
{
edit.Competencies.Clear();
}
if (selectedCompetencies != null)
{
if (edit.Competencies == null)
edit.Competencies = new Collection<Competence>();
foreach (var id in selectedCompetencies)
{
edit.Competencies.Add(db.Competencies.Find(id));
}
}
if (edit.Fgoses != null)
{
edit.Fgoses.Clear();
}
if (selectedFgoses != null)
{
if (edit.Fgoses == null)
edit.Fgoses = new Collection<Fgos>();
foreach (var id in selectedFgoses)
{
edit.Fgoses.Add(db.Fgoses.Find(id));
}
}
db.SaveChanges();
return RedirectToAction("Index");
}
}
ViewBag.AllCompetencies = new SelectList(db.Competencies, "Id", "Title");
ViewBag.SelectedCompetencies = new SelectList(subject.Competencies, "Id", "Title");
ViewBag.AllFgoses = new SelectList(db.Fgoses, "Id", "Title");
ViewBag.SelectedFgoses = new SelectList(subject.Fgoses, "Id", "Title");
ViewBag.JsonAllCompetencies = db.Competencies.Select(a => new { a.Id, a.Description }).ToList();
ViewBag.JsonAllFgoses = db.Fgoses.Select(a => new { a.Id, a.Description }).ToList();
return View(subject);
}
//
// GET: /Subject/Delete/5
public ActionResult Delete(int id = 0)
{
Subject subject = db.Subjects.Find(id);
if (subject == null)
{
return HttpNotFound();
}
return View(subject);
}
//
// POST: /Subject/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Subject subject = db.Subjects.Find(id);
db.Subjects.Remove(subject);
db.SaveChanges();
return RedirectToAction("Index");