2. Job placement criteria: Evaluate
students code
• Project code convention;
• Follows best practices in code writing;
• Follows OOD principles (SOLID, design patterns, IoC
Container);
• Able to resolve issues in the most optimal and logical way;
3. Job placement criteria: Evaluate
students attitude and responsibilities
• Using tools by established rules (git, trello, IDE);
• Timely homework/tasks execution;
• lectures attendance;
• activity on the lectures (participate in discussions, respond to the
lecturer’s questions, asks questions etc.);
• Teamwork (shares information with team members, performs
assigned duties, participate in proj discussions, avoids conflicts etc.);
4. Job placement criteria: Evaluate
course projects
• Code Quality;
• Solution structure and architecture;
• Compliance with original requirements;
• Able to resolve issues in the most optimal and logical way;
• Extra features;
5. Project requirements
General
- Парсер повідомлення перед відправкою. Коли користувач відправляє повідомлення з
певними командами – ця команда повинна бути оброблена на сервері і змінене
повідомлення повинне прийти іншому користувачу. Оригінальне і нова повідомлення
повинне бути збережене. Нове – показане користувачу.
Architecture
- Apply Inversion of Control container.
- Implement MVPMVC.
- General project architecture + refactoring. Separate logic by layers, etc.
- Separate DAL
Documentation
- Architecture diagrams
- XML documentation to public methods
Testing
- Cover calculation logic with unit tests. (Coverage more than 30%)
6. Message Parser
Підтримка URL
- Якщо повідомлення містить url – програма повинна зробити запит за адресою, отримати
header сторінки і замісnь url в оригінальному повідомленні вставити <a
href=“url”>Caption</a>
Підтримка Email
- Якщо повідомлення містить email адресу – програма повинна поміняти адресу на тег <a
href=“mailto:emailAddress”>emailAddress</a>
Підтримка математичних операцій
- Якщо повідомлення містить =math(<operation>) – повинна порахувати вираз в дужках і
вставити його замість вхідного тексту. Приклад =math(2+2*2) повинно бути ставлено число
6.
7. Bot
Реалізувати бот-користувача який буде автоматично відповідати на повідомлення.
Підтримуванні команди:
v 1.0
Help – повертається повідомлення зі списком доступних команд
=math() – повертається повідомлення з результатом операції
=parse(urlemail) - повертається повідомлення у форматі який буде бачити користувач
отримувач.
Якщо писати будь який інший текст боту – він повинен відповідати, що ‘не знає як правильно
відповісти’
8. Bot 2.0
• Якщо користувач пише повідомлення якого не знає бот – бот повинен відповідати будь яку
випадкову фразу. (список фраз має міститись в конфігураційному файлі)
• Якщо користувач пише просто математичний вираз без команди =math() – цей вираз
повинен бути опрацьований і число має бути показане.
• Підтримка команди What is …
Якщо користувач присилає повідомлення боту What is c# delegates - ‘бот’ повинен надіслати в
googlewiki повідомлення з тестом ‘C# Delegates’ для пошуку і за знайдемим посиланням
вичитати інформацію. Повернути користувачеві перших 2 абзаци тексту і знизу посилання на
джерело. (можливо повернути певну кількість обмежених символів, або просто перші 2
речення)
• Кешувати відповіді по What is.. – якщо відповідь уже є в кеші, то не робити запити в
інтернет, а результат повертати з кешу.