SlideShare a Scribd company logo
eleks.comeleks.com
Unit 2 Summary
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;
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.);
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;
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%)
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.
Bot
Реалізувати бот-користувача який буде автоматично відповідати на повідомлення.
Підтримуванні команди:
v 1.0
Help – повертається повідомлення зі списком доступних команд
=math() – повертається повідомлення з результатом операції
=parse(urlemail) - повертається повідомлення у форматі який буде бачити користувач
отримувач.
Якщо писати будь який інший текст боту – він повинен відповідати, що ‘не знає як правильно
відповісти’
Bot 2.0
• Якщо користувач пише повідомлення якого не знає бот – бот повинен відповідати будь яку
випадкову фразу. (список фраз має міститись в конфігураційному файлі)
• Якщо користувач пише просто математичний вираз без команди =math() – цей вираз
повинен бути опрацьований і число має бути показане.
• Підтримка команди What is …
Якщо користувач присилає повідомлення боту What is c# delegates - ‘бот’ повинен надіслати в
googlewiki повідомлення з тестом ‘C# Delegates’ для пошуку і за знайдемим посиланням
вичитати інформацію. Повернути користувачеві перших 2 абзаци тексту і знизу посилання на
джерело. (можливо повернути певну кількість обмежених символів, або просто перші 2
речення)
• Кешувати відповіді по What is.. – якщо відповідь уже є в кеші, то не робити запити в
інтернет, а результат повертати з кешу.
eleks.com
Inspired by Technology.
Driven by Value.

More Related Content

Viewers also liked (20)

Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patterns
eleksdev
 
DAL
DALDAL
DAL
eleksdev
 
Rpc
RpcRpc
Rpc
eleksdev
 
Code Practices
Code PracticesCode Practices
Code Practices
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
tsql
tsqltsql
tsql
eleksdev
 
Design patterns
Design patternsDesign patterns
Design patterns
eleksdev
 
Version control
Version controlVersion control
Version control
eleksdev
 
#4 code quality
#4 code quality#4 code quality
#4 code quality
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
eleksdev
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Solid and ioc principles
Solid and ioc principlesSolid and ioc principles
Solid and ioc principles
eleksdev
 
N tier
N tierN tier
N tier
eleksdev
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
Mvvw patterns
Mvvw patternsMvvw patterns
Mvvw patterns
eleksdev
 
Code Practices
Code PracticesCode Practices
Code Practices
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
Design patterns
Design patternsDesign patterns
Design patterns
eleksdev
 
Version control
Version controlVersion control
Version control
eleksdev
 
#4 code quality
#4 code quality#4 code quality
#4 code quality
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
NoSQL basics
NoSQL basicsNoSQL basics
NoSQL basics
eleksdev
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Solid and ioc principles
Solid and ioc principlesSolid and ioc principles
Solid and ioc principles
eleksdev
 

Similar to If unit2 summary (6)

природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1
Dmitry Chabanenko
 
Основні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютераОсновні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютера
Nuta1910
 
11 клас 5 урок
11 клас 5 урок11 клас 5 урок
11 клас 5 урок
Nuta1910
 
Чистий код
Чистий кодЧистий код
Чистий код
Igor Bronovskyy
 
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
Fwdays
 
природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...природна і економна дорожня карта для переходу команди розробки на тест центр...
природна і економна дорожня карта для переходу команди розробки на тест центр...
Andrii Podanenko
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1
Dmitry Chabanenko
 
Основні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютераОсновні етапи розв'язування задач із використанням комп'ютера
Основні етапи розв'язування задач із використанням комп'ютера
Nuta1910
 
11 клас 5 урок
11 клас 5 урок11 клас 5 урок
11 клас 5 урок
Nuta1910
 
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
"How to craft your AI bot using PHP. Step by step guide", Maksym Mova
Fwdays
 

More from eleksdev (11)

Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
sql introduction
sql introductionsql introduction
sql introduction
eleksdev
 
Uml
UmlUml
Uml
eleksdev
 
Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
sql introduction
sql introductionsql introduction
sql introduction
eleksdev
 

If unit2 summary

  • 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.. – якщо відповідь уже є в кеші, то не робити запити в інтернет, а результат повертати з кешу.