Разработка справки для онлайн-анкеты / экзаменационной заявки - PullRequest
3 голосов
/ 08 марта 2011

Я занимаюсь разработкой веб-приложения, которое будет заниматься онлайн-экспертизой. Требование:

  1. Может быть n-количество разделов в экзамен и админ пользователи должны быть возможность создавать вопросы / ответы и добавить к экзамену.
  2. Вопросы должны отображаться в течение определенного времени в браузер с таймером и должен автоматически перейти к следующему вопросу.
  3. Пользователю не должно быть разрешено открывать любой другой экземпляр браузера или входить с другого IP, если экзамен проводится.

Я ищу голосование сообщества о том, как кто-то разработает приложение, чтобы соответствовать всем этим критериям? Какие шаблоны следует использовать? Какие компоненты могут помочь сократить время разработки и т. Д.

Мой технологический стек - C #, ASP.NET MVC или ASP.NET с SQL Server.

Заранее спасибо !!!

Ответы [ 3 ]

4 голосов
/ 20 марта 2011

Вместо того, чтобы заново изобретать колесо, вы должны посмотреть на такое решение, как Open Source DotNetNuke, и либо купить / построить расширение для части, специфичной для вашего сценария.

Я думаю, что для пользовательского приложения вы должны рассмотреть приложение Silverlight, так как это даст вам детальный и безопасный контроль над процессом.

В целом решение будет таким:

  • DotNetNuke предоставляет базовый портал / Управление контентом, так что вы можете создать высоко настраиваемый опыт вокруг экзаменационный опыт, включая поддержку управления пользователями и т. Д.
  • Расширение DotNetNuke позволит авторизованным администраторам управлять экзаменами и экзаменационными вопросами.
  • Оболочка веб-сервиса предоставит доступ к бизнес-контроллеру, используемому расширением DotNetNuke.
  • Приложение Silverlight будет взаимодействовать с веб-сервисом, чтобы аутентифицированные пользователи могли сдавать экзамены

В целом, такое решение дало бы вам высокую степень контроля над пользовательским интерфейсом, позволяя вам сосредоточить время / ресурсы, которые являются только конкретными для вашей ситуации, в то же время используя существующее, надежное и популярное решение, на котором можно построить ваше решение. .

(Полное раскрытие: я являюсь одним из соучредителей компании, которая управляет DotNetNuke. Справедливости ради, вы можете заменить мое предложение для DotNetNuke на Orchard или Umbraco, и решение будет в равной степени справедливым.)

2 голосов
/ 08 марта 2011

Что касается базы данных, вы бы хотели что-то вроде:

Table Exams (ExamID, ExamName) //to hold all exams
Table Users(UserID, Username, Login, Password) //to hold all users
Table OpenExams(Exam_ID, User_ID) //to hold open exams
Table ExamSections(SectionID, Exam_ID, SectionName) //to hold sections of exams
Table Questions(QuestionID, Section_ID, QuestionName, Question, Answer) //to hold questions

Это, конечно, самый базовый и только один из многих подходов.Вам нужно будет добавить поля, где это необходимо.

Что касается пункта 2, я бы, вероятно, сделал это на прикладном уровне (или в VS).У меня нет большого опыта в веб-разработке, но я думаю, что ASP справится с этим.Для пункта 3 вы можете выполнить простую инструкцию SQl, чтобы получить информацию, если пользователь, пытающийся получить доступ к экзамену, в настоящее время сдает экзамен.

1 голос
/ 21 марта 2011

Позволяет также начать сопоставление процессов: Пользователь: 1. Пользователь входит в систему (для предотвращения нескольких экзаменов одним пользователем).2. Пользователь «запускает» экзамен -> Время отмечается на стороне сервера, а таймер срабатывает на стороне клиента.Пользователь получает динамический экзамен на странице 1. 3. Пользователь завершает работу со страницей 1, щелкает далее -> Ajax - перезагружает содержимое страницы (часть вопросов).Таймер для страницы 2 запущен (на стороне сервера и клиента) 3.a) обнаружен вход с другого IP-адреса - сеанс прерван, пользователь помечен как мошенник :) или просто отклонен вход в систему.

  1. Время пользователяна странице 2 -> содержимое страницы (ответы) автоматически передаются.таймеры установлены на странице 3. пользователь получает страницу 3.
  2. Пользователь нажимает кнопку «Закончить» -> экзамен завершен.Администратор:
  3. Вход в систему -> показать опцию «добавить экзамен» и таблицу существующих экзаменов
  4. Добавить экзамен - открыть «страницу экзамена», добавить новый объект «экзамен»
  5. Добавляет страницу -> к этому экзамену добавляется объект "страница", таблица вопросов загружается в графический интерфейс пользователя
  6. добавляет вопрос -> новый объект "вопрос" добавляется на страницу
  7. конецстраница -> страница сохранена.варианты завершения экзамена или добавления страницы находятся здесь.
  8. добавить страницу -> перейти к шагу 3
  9. закончить экзамен -> сохранить экзамен
  10. при желании пометить экзамен как «активный / неактивный»"
  11. добавьте таблицы со" студентами "и их результатами и тому подобное.

Это требует много работы, но когда у вас есть это, у вас есть представление о том, что вам нужноположить в свой дизайн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...