Връщане към Състезание по програмиране (2016)

Задание за състезанието по програмиране (2016)

Социален спам

Социален спам

Конкурсна задача на ДАВИД академия

Въведение

Настоящият документ описва основите на система за управление на социална мрежа с възможност за изпращане, препращане и оценка на съобщения.

Функционално описание

Социалната мрежа е изградена от равноправни потребители.

Потребители

Социалната мрежа е изградена от равноправни потребители.

  • Потребителите се регистрират с уникален имейл и парола.
  • Потребителите се характеризират с:
    • Имейл – задължително за попълва по време на регистрация
    • Парола – задължително се попълва по време на регистрация
    • Имена – задължително се попълва по време на регистрация
    • Пол – по желание
    • Дата на раждане – по желание
    • Снимка/Аватар – по желание
  • Всеки потребител има своя профилна страница, на която могат да се видят гореспоменатите данни и неговата текуща оценка.
Контакти

Потребителите в социалната мрежа са свързани посредством контакти.

  • Контакт между два потребителя може да се инициира от единия от тях и се потвърждава или отхвърля от другия.
  • Контакт между два потребителя може да се прекрати по инициатива на единия от тях и няма нужда да се отхвърля от другия.
Съобщения

Потребителите могат да си изпращат и препращат съобщения от различни категории.

  • Съобщенията се характеризират с:
    • Дата/час – автоматично генерирано
    • Автор – потребител създал съобщението
    • Заглавие – задължителен текст между 8 и 64 символа
    • Текст – задължителен текст между 16 и 65536 символа
  • Потребител може да създава съобщение и да го изпрати на един или повече от своите контакти.
  • Потребител може да препраща получено съобщение на един или повече от своите контакти.
  • Съобщение в системата се съхранява само веднъж, независимо дали е препращано или не.
  • Потребител разполага с кутия със съобщения съдържаща папки:
    • „Моите съобщения“ – съобщенията, които потребителят е създал
    • „Получени съобщения“ – съобщенията, които потребителят е получил и/или препратил
  • Създадените от потребител съобщения автоматично се записват в неговата папка „Моите съобщения“.
  • Получените от потребител съобщения автоматично се записват в неговата папка „Получени съобщения“.
  • Потребител не може да вижда автора на получено съобщение, както и от кого е било препратено.
Оценки

Потребителите в системата могат да оценяват получените от тях съобщения.

  • Потребител може да оценява получено от него съобщение положително (👍), отрицателно (👎) или спам.
  • Потребител не може да оценява създадено от него съобщение.
  • Потребител може да оценява получено от него съобщение само веднъж.
  • Потребител може да вижда сумарния брой положителни и отрицателни оценки.
  • Потребител не може да вижда кой, кога и каква оценка е дал на дадено съобщение.
Класации

Системата поддържа следните класации, според оценките дадени от потребителите.

  • Видовете класации биват:
    • Най-добро съобщение – съобщенията събрали най-висока оценка
    • Най-добър автор – авторите, чиито съобщения са събрали най-висока оценка
  • Класациите се строят по дата/час на дадената оценка.
  • Класациите се строят за следните периоди:
    • за последния 1 ден
    • за последните 7 дни
    • за последните 30 дни

Технически изисквания

  • Системата трябва да е разработена в средата на Microsoft Visual Studio;
  • Системата трябва да бъде уеб базирана
  • Системата трябва да се достъпва през browser (Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Opera и др.);
  • За съдържание на страниците системата трябва да генерирана валидни HTML 5 документи;
  • За оформление на страниците системата трябва да генерира валидни отделни CSS стилове, по възможност в отделни файлове (може да се използва Bootstrap);
  • За поведението на страниците системата трябва да генерира валидни JavaScript скриптове, по възможност в отделни файлове (може да се използва jQuery);
  • Системата трябва да има консистентен дизайн;
  • Проектът трябва да включва скриптове за създаване на базата данни и първоначално зареждане с данни;
  • Проектът трябва да съдържа “md”, който да съдържа като минимум кратка информация за проекта и автора му, както и особености за нейното конфигуриране и стартиране.
  • Преизползване на код:
    • Могат да се използват готови шаблони от Visual Studio
    • Могат да се използват готови визуални компоненти

Постоянен линк към тази тема: https://acad.david.bg/sustezaniya/2016-sustezanie-po-programirane/zadanie/