Проекти за поправка по технология на програмирането

Сега след като практиките вече са приключили имам възможност да дам проектите за реализация за поправката.

Целта е да се разработи малък проект по който да се работи всеки ден по около 5 часа на ден. Общата стойност на проекта е около 25 часа.

Общи изисквания

1. Проектът да се държи от ден 1 в хранилище и да се вижда неговото развитие. Последният къмит трябва да е не по-късно от денят на поправката.
2. Накрая да се разработи 60-90 секундно видео по проекта което да го представя към клиента
3. Да се разработи wiki страничка по проекта, която в рамките на 500 до 1000 думи да описва неговото поведение.
4. Технологията за реализация на пректа се избира от ученика. Може да се избере всякаква, стига да може да се демонстрира в 31-кабинет от ученика. Може да се реализира на лаптоп, или на компютър вкъщи но компютърът от вкъщи трябва да може да се донесе в кабинета.
5. Операционна система, библиотеки, тулове за реализация се избира от ученика.
6. За реализацията аз лично препоръчвам Ruby on Rails тъй като това е технологията, която сме разглеждали в часовете.

Специфични изисквания

Да се реализира web платформа за продажба на документи. Част от докумените са налични публични и всеки един потребител може да има достъп до тях, част от документите изискват потребителят да е заплатил за достъпа си.

Платформата да поддържа

Следните функционалности за средна оценка 3

  1. Регистрация на потребител – потребител се регистрира с потребител и парола, получава писмо за регистрацията си и потвърждава регистрацитята си като избира и последва връзка в писмото. Така се удостоверява, че мейлът е негов.
  2. На началната страница се показват последните три качени документа в платформата както и дали те изискват абонамент или не, тяхното име и тяхното кратко описание
  3. Потребителят може да отиде на адрес /documents и да види всички документи в платформата, като те са разделени на страници от по 10. Поддържа се pagination
  4. Администраторите в платформата имат право да отидат на /documents/new където се показва форма за създаване на нов документ. Посочват се име на документ, картинка, кратко описание, самият документ се качва, както и дали документът изисква плащане или не. Избира се бутон Create и документът се създава в платформата и обикновенните потребители вече могат да го достъпват
  5. Всеки отделен документ може да се достъпи на url-то /documents/:id където id е идентификаторът на документа в базата.
  6. Когато потребител достъпи адрес на документ в браузъра той може да има достъп до него или да няма достъп. Ако има достъп му се показват картинката на документа, името, описанието и връзка за свалянето на документа. Ако няма достъп му се показват картинката, името, описанието и съобщение, че той няма достъп и затова трябва да се абонира.
  7. Потребител може да отиде на страницата /subscriptions където е показана информация за плана и да закупи нов абонамент за този план. Закупуването на абонамент се прави като потребителят отговори на въпроса колко е „2+2“. Ако потребителят правилно е отговорил на този въпрос се счита, че си е закупил абонамент. Целта е да няма връзка към външни услуги за плащания. Ние да си управляваме плащанията по възможно на-простия начин.
  8. Един потребител може да закупи даден план само веднъж. Ако вече го е закупил трябва да му се покаже информация кога го е закупил.
  9. Ако потребител има редовно закупен план трябва да може да достъпва всички документи, които изискват закупен план.
  10. Приложението да се качи на сървъв и да е достъпно през интернет. Примерно Amazon, Heroku, Azure

Следните допълнителни функционалности за оценка 4

  1. Да се създадът 3 плана и човек да може да се абонира за повече от един план.  Първият план да дава възможност на потребител да достъпва документите в рамките на следващите 1 минута. Вторият в рамките на следващите 2 минути. Третият в рамките на следващите 3 минути. План 1 се закупува с отговор на въпроса колко е 1+1, план 2 се закупува с отговор на въпроса колко е 2+2 и план 3 се закупува с отговор на въпроса колко е 3+3
  2. За всеки един документ да се знае кои са авторите. Един документ може да има много автори. В страницата за документа се показват имената на авторите на документа и html връзка, която да води към адрес /authors/:id където id е идентификатора на автора
  3. Като се посети адрес /authors/1 може да се видят всички документи публикувани от автор 1.

Следните допълнителни функционалности за оценка 5

  1. За всеки един документа да може да се посочи до кой точно абонамент трябва да се е абонирал човека, за да може той да има достъп до него.

Следните допълнителни функционалности за оценка 6

  1. Да се добавят категории достъпни на /categories. Всеки документ може да бъде в една или повече категории. Като се посети адресът /categories/1 да се покажат всички документи в тази категория.
  2. Да се добави валидация, че един автор не може да има повече от 70% от документите си като платени.
  3. Да се праща съобщение на авторите кои са документите които днес са били свалени от потребителите и колко пъти е бил свален всеки документ
Публикувано в Технология на програмирането. Постоянна връзка.