Platfomry programistyczne:.net i Jawa L ABORATORIUM 3: HACKATHON - JTTT



Podobne dokumenty
Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Programowanie obiektowe

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

dr inż. Tomasz Krzeszowski

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

emszmal 3: Automatyczne księgowanie przelewów w menadżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym RedCart (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Sky-Shop (plugin dostępny w wersji ecommerce)

1.2 Prawa dostępu - Role

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

Mazowiecki Elektroniczny Wniosek Aplikacyjny

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Projekt: Mikro zaprogramowane na sukces!

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Przewodnik... Segmentacja listy Odbiorców

Symfonia Mała Księgowość 2013 Specyfikacja zmian

Podstawy technologii WWW

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Aplikacje Internetowe

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoper (plugin dostępny w wersji ecommerce)

Instrukcja instalacji oprogramowania dla środowiska Windows

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym SoteShop 7 (plugin dostępny w wersji ecommerce)

Instrukcja laboratoryjna cz.3

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce)

Kurier DPD dla Subiekt GT

INFRA. System Connector. Opis systemu

SYSTEM ZARZĄDZANIA DANYMI OSOBOWYMI - INSTRUKCJA UŻYTKOWNIKA

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Sky-Shop (plugin dostępny w wersji ecommerce)

REFERAT PRACY DYPLOMOWEJ

BACKUP BAZ DANYCH FIREBIRD

Aplikacje webowe z wykorzystaniem Node.js oraz Express

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym IAI-Shop (plugin dostępny w wersji ecommerce)

Układy VLSI Bramki 1.0

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Praca w środowisku Visual Studio 2008, Visual C

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym RedCart (plugin dostępny w wersji ecommerce)

Rys.2.1. Drzewo modelu DOM [1]

INSTRUKCJA UŻYTKOWANIA DZIENNIKA NAUCZYCIELA W PROGRAMIE SZKOLNY KLUB SPORTOWY

APLIKACJA KONKURSOWA INSTRUKCJA UŻYTKOWNIKA

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

REFERAT O PRACY DYPLOMOWEJ

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Programowanie komputerowe Computer programming

1. MOZILLA THUNDERBIRD (31.3.0) 2 2. WINDOWS LIVE MAIL THE BAT HOME EDITION ( BIT) 30

Funkcje i instrukcje języka JavaScript

Programowanie aplikacji biznesowych

Wykaz zmian w programie SysLoger

IIIIIIIIIIIIIIIMMIMMIII

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

KARTA MODUŁU KSZTAŁCENIA

Piotr Bubacz Cloud Computing

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento 2 (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym WooCommerce (plugin dostępny w wersji ecommerce)

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym SoteShop 7 (plugin dostępny w wersji ecommerce)

Tworzenie Stron Internetowych. odcinek 9

Skrócona instrukcja obsługi programu EndymionKOL

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

Java jako język programowania

Komponent Formularz. Rys. 1. Strona programu Joomla - Rys. 2. Instalacja komponentu

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Specyfikowanie wymagań przypadki użycia

Alians AMReminder. Przypomnij kontrahentom o nierozliczonych płatnościach

APL_03_scenariusz_lekcji. Rodzaje kontrolek i ich obsługa w programach. Informatyka. Jadwiga Jezierska. Osiedle Stawki 39/27

R o g e r A c c e s s C o n t r o l S y s t e m 5

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Rozpoczęcie pracy z programem.

Instrukcja instalacji i obsługi programu Szpieg 3

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Instrukcja obsługi aplikacji Karty Pojazdów dla Dealerów Samochodowych

1. Informacje podstawowe

Maciej Kiewra Quality Business Intelligence Consulting

emszmal 3: Automatyczne księgowanie przelewów w menedżerze sprzedaży BaseLinker (plugin dostępny w wersji ecommerce)

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

TECHBYTE FACEBOOK BOT PACK

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu.

Przelewy24 Wirtualny Koszyk

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Shoplo (plugin dostępny w wersji ecommerce)

Podstawy technologii WWW

Referat Pracy Dyplomowej

TAXI W KLASIE BIZNES. Przejazdy firmowe z mytaxi

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Instrukcja obsługi aplikacji X-Trade DDE To MetaStock Chart 1.1

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Sprawdzenie czy połączenie przebiegło poprawnie if (mysqli_connect_errno()) { echo Błąd; Połączenie z bazą danych nie powiodło się.

OWASP OWASP. The OWASP Foundation Cross-Site Scripting. Ryzyko do zaakceptowania? Warszawa, 27 stycznia 2011 Michał Kurek

Transkrypt:

Platfomry programistyczne:.net i Jawa L ABORATORIUM 3: HACKATHON - JTTT

O co chodzi? Hackathon - http://en.wikipedia.org/wiki/hackathon A hackathon is an event in which computer programmers and others involved in software development, collaborate intensively on software projects Definiujemy sobie konkretny cel np. stworzenie prostej aplikacji Pracujemy w podgrupach, aby cel mógł być osiągnięty w trakcie kilku zajęć laboratoryjnych Na każdych zajęciach może być definiowany dodatkowy cel tematyczny Na każdych kolejnych zajęciach pracujemy w stałych grupach 2 osobowych Niezbędne linki: Visual Studio - http://www.visualstudio.com/ MSDN - http://msdn.microsoft.com/ StackOverflow - http://stackoverflow.com/ Html Agility Pack - http://htmlagilitypack.codeplex.com/ IFTTT - https://ifttt.com/ Code sample - https://bitbucket.org/bjablonskipwr/pwr-bj-downloadnodessample

JTTT Jeśli to to wykonaj to

JTTT - wprowadzenie Background: w dzisiejszych czasach coraz więcej urządzeń jest ze sobą połączonych. Jednocześnie cierpimy na nadmiar informacji. Cel: Przydałby się osobisty asystent, który potrafi wykonać automatycznie różne zadania na podstawie zdefiniowanych warunków. Podobny system: https://ifttt.com/wtf Przykłady użycia: Jako świadomy obywatel chciałbym dostawać powiadomienie o tym, że na głównej stronie Demotywatorów pojawił się obrazek, który w opisie ma słowo np. podatku / podatek (http://demotywatory.pl/4466926/pomylilo-mu-sie-z-kwota-wolna-od-podatku) Jako fan Dilberta chciałbym codziennie rano otrzymywać email z załączonym komiksem z danego dnia (http://dilbert.com/)

JTTT faza 1.0 Przygotuj prostą aplikację typu Windows Forms lub WPF (Windows Presentation Foundation) W pierwszym podejściu rozpatrujemy ograniczoną logikę: Jeden warunek na podanej przez użytkownika stronie znajdujemy obrazek, który w opisie ma konkretne wyrażenie Jedna akcja wysyłamy maila z załącznikiem w postaci znalezionego obrazka Dla ułatwienia bierzemy pod uwagę pierwszy pasujący obraz typu JPG / PNG Sprawdzanie wykonuje się po naciśnięciu przycisku Start! Przetestuj działanie na podstawie stron, których warunki na to pozwalają Historię wykonania akcji zapisuj do pliku jttt.log

JTTT faza 1.0

JTTT faza 1.1 Przygotowanie aplikacji tak, aby możliwy był wybór jednego z kilku warunków i jednej z kilku akcji Z tego punktu widzenia warto zaprojektować strukturę klas w sposób dość uniwersalny z dobrze zdefiniowanym zestawem interfejsów Warto przygotować kontrolki (UserControl) dla poszczególnych akcji/warunków, aby móc dynamicznie zmieniać interfejs

Kilka przydatnych klas dla fazy 1.0/1.1 Podczas realizacji mogą się przydać następujące klasy: System.Net.WebClient (.NET Framework 1.0-4.5) HtmlAgilityPack.HtmlDocument przykładowe wykorzystanie tu: https://bitbucket.org/bjablonskipwr/pwr-bj-downloadnodessample/overview System.Net.Mail.SmtpClient oraz System.Net.Mail.MailMessage System.IO.StreamWriter oraz System.IO.StreamReader Metoda HtmlAgilityPack.LoadHtml / doc.documentnode.descendants( img )

Jak pobrać atrybuty // Ładujemy zawartość strony html do struktury documentu (obiektu klasy HtmlDocument) doc.loadhtml(pagehtml); // Metoda Descendants pozwala wybrać zestaw node'ów o określonej nazwie var nodes = doc.documentnode.descendants("img"); // Iterujemy po wszystkich znalezionych node'ach foreach (var node in nodes) { Console.WriteLine("---------"); // Wyświetlamy nazwę node'a (powinno byc img") Console.WriteLine("Node name: " + node.name); // Każdy node ma zestaw atrybutów - nas interesują atrybuty src oraz alt // Wyświetlamy wartość atrybuty src Console.WriteLine("Src value: " + node.getattributevalue("src", "")); // Wyświetlamy wartość atrybuty alt Console.WriteLine("Alt value: " + node.getattributevalue("alt", "")); // Oczywiscie w aplikacji JTTT nie będziemy tego wyświetlać tylko będziemy analizować // wartość atrybutów node'a jako string // Wszystkie powyższe operacje można napisać zdecydowanie prościej i składniej na przyklad za pomoca wyrazenia LINQ // Ten zapis jest tylko do celów ćwiczebnych }

JTTT dalszy rozwój Faza 2.0: Możliwość tworzenia listy zadań, które są regularnie wykonywane (opcjonalnie) Możliwość dodawania więcej niż jednego warunku do jednego zadania (zakładamy, że obowiązuje iloczyn logiczny) (opcjonalnie) Możliwość zapisywania i odczytywania zdefiniowanych zadań (serializacja) Faza 3.0: zapisywanie i odczytywanie zdefiniowanych zadań do prostej bazy danych Faza 4.0: Współpraca z zewnętrznym API, wiele warunków Faza?.0: Aplikacja udostępniająca swoje API, aplikacja webowa

Kilka dobrych rad Zacznij od napisania wersji, która działa, ale po uruchomieniu przystąp do refactoringu (tzn. do uporządkowania kodu, aby był czystszy, bardziej przejrzysty i przygotowany do dalszego rozwijania - http://en.wikipedia.org/wiki/code_refactoring ) Jeżeli nie wiesz, jak coś zrealizować szukaj w dokumentacji i studiuj przykłady kodu Jeżeli wklejasz kod z dokumentacji miej pewność, że rozumiesz jak działa Tworzony kod trzymaj w repozytorium Zaznacz w repozytorium autorów Zaproś do repozytorium prowadzącego Na kolejnych zajęciach będziemy rozwijać dalej tą samą aplikację, więc trzeba mieć pod ręką stabilną wersję

Retrospekcja Co poszło dobrze? Co możemy poprawić? Jakie nowe pomysły?

Zadanie domowe Przygotować działającą aplikację według minimalnego zakresu dla fazy 1.0 Aplikację wrzucić do repozytorium na Bitbucket-cie o nazwie dotnet-jttt-2016-xx-yy (gdzie XX, YY to odpowiednio inicjały osób w grupie) Wysłać maila do prowadzącego, że już może oceniać najpóźniej na chwilę przed kolejnymi zajęciami W mailu koniecznie zaznaczyć autorów aplikacji