Публикуваме условието на курсовата задача за курса по информационни технологии (2013).
Срокът за предаване на задачата е 22.9.2013 г. (седмица след приключване на курса). Решенията си изпращайте като архив на електронния адрес на курса. За да бъде приета за успешно изпълнена курсовата задача, решението ви трябва да покрива всички изисквания. Изпълнението на допълнителните задачи не е задължително.
Академия
Задача
Да се създаде приложение, което служи за регистриране и разглеждане на информацията, свързана с протичащите курсове в академия за извънкласно обучение, участниците в тези курсове и поставените им курсови задачи.
Изисквания
- Информацията да се съхранява в база данни или в подходящо структуриран(и) XML документ(и) във файловата система;
- Предметната област включва следните типове обекти:
- Курс – характеризира се с наименование, описание, ниво (изброен тип със стойности начинаещи, напреднали и специалисти), начална дата и крайна дата;
- Допълнителен материал към курс – характеризира се със заглавие, описание, автор и курс, за който е предназначен;
- Курсова задача – характеризира се със заглавие, условие, дали е задължителна и курс, към който принадлежи;
- Участник – характеризира се с три имена, email адрес, дата на присъединяване към академията и курсове, които посещава (или е посещавал);
- Предметната област включва следните множества от зависимости:
- Зависимост едно-към-много между курсове и допълнителни материали към тях;
- Зависимост едно-към-много между курсове и курсови задачи към тях;
- Зависимост много-към-много между курсове и участници в тях;
- Приложението да позволява следните операции:
- Извеждане на списък с всички курсове;
- Извеждане на списък с курсовете, в които участва конкретен участник;
- Извеждане на списък с всички материали към конкретен курс;
- Извеждане на списък с всички курсови задачи към конкретен курс;
- Извеждане на списък с всички участници в академията;
- Извеждане на списък с участниците в конкретен курс;
- Регистриране на нов курс;
- Регистриране на нов допълнителен материал към курс;
- Регистриране на нова курсова задача към курс;
- Регистриране на нов участник в академията;
- Включване на участник в курс;
- Да бъдат спазени принципите на ООП;
- Да се предотврати възникването на грешки в програмата при въвеждането на некоректни стойности от потребителя;
- Ако данните се съхраняват в база данни, да се осигури защита от SQL Injection атаки;
- Ако данните се съхраняват в база данни, да се използва СУБД Microsoft SQL Server;
- Приложението може да бъде с конзолно, графично, уеб базирано или мобилно.
Допълнителни задачи
- Да се реализират и следните типове обекти и множества от зависимости от предметната област (заедно с операции за манипулиране с тях):
- Решение на курсова задача – характеризира се с участник, който го е изработил, курсова задача, върху която е разработено, дата на предаване, както и дали е било одобрено;
- Сертификат за завършен курс – характеризира се с участник, който го е получил, курс, за който е издаден, резултат (цяло число между 0 и 100), както и дата, на която е издаден;
- Зависимост едно-към-много между участници и решения на курсови задачи;
- Зависимост едно-към-много между курсови задачи и решения;
- Зависимост едно-към-много между участници и сертификати за завършени курсове;
- Зависимост едно-към-много между курсове и сертификати;
- Приложението да позволява и модификация и изтриване на вече регистрирани обекти;
- Да се реализират операции за извеждане на филтрирани списъци с обекти (например всички курсове с конкретно ниво, или всички курсови задачи, чиито условия включват определена дума/символен низ);
- Ако данните се съхраняват в база данни, да се използва LINQ to SQL или Entity Framework за манипулациите с нея;
- Ако данните се съхраняват в XML документ(и), да се използва механизмът за сериализиране/десериализиране на обекти;
- Множеството от операции да бъде оформено като уеб услуга, която да се използва от съответното приложение.