Project Assignment - nvbach91/4IZ278-2020-2021-LS GitHub Wiki

Info k semestrální práci

  • Semestrální práci vypracujte samostatně.
  • Maximální počet bodů: 50

Podrobný popis návrhu projektu

  • 2+ strany A4 v PDF nebo Markdown (přímo do textu Issue)
    • stručný popis aplikace
    • popis funkcionality
    • wireframe jednotlivých stránek, výčet stránek
    • architektura
      • typ webového serveru
      • typ rozhraní na back-endu
      • technologie na front-endu
      • návrhový vzor na backendu
      • způsob komunikace mezi databází, serverem a klientem
    • konceptuální návrh databáze - relační schéma databáze: logický + fyzický model databáze
  • pošlete do Issues, název Issue sp-xname
  • deadline pro zaslání návrhu je 2021-04-18
    • deadline znamená, že pokud to nestihnete, rovnou dostanete známku nedostatečně

Doporučená "komerčnější" témata:

  • E-shop (auta, elektro, výpočetní technika, stavebniny, zahradnictví, knihkupectví, hudebniny, sportovní pomůcky, nábytek, oblečení, ...),
  • Prodej vstupenek na veřejné události (koncerty, divadla, semináře, konference, festivaly, zápasy, ...),
  • Nabídky nemovitostí (realitní kancelář, pronájmy, ...),
  • Plánování schůzek (lékařské konzultace, kadeřnictví, bankovní poradce, psychoterapeuti, ...),
  • Vyhledávání místních služeb (restaurace, obchody, kadeřnictví, hotely, doprava, posilovny, ...),
  • Dobročinné aktivity (podpora chudoby, nezaměstnanosti, přírodní katastrofy, bezdomovectví, sirotčince, ...),
  • Sledování politických událostí (podle státu) v podobě fóra nebo příspěvků,
  • Prodej jízdenek na vlak + jízdní řád,
  • Hypoteční banky a pojišťovny,
  • Elektronické bankovnictví,
  • Vyhledávání vzdělávání - kurzy, školy, univerzity, ...
  • ...

Doporučená herní témata:

  • Lodě online - toto téma nebude akceptováno
  • Šachy, Go, Xiangqi, Shogi online
  • Poker online
  • Sudoku online
  • Monopoly online

Doporučená "techničtější" témata

  • Bezpečnostní analýza - kryptoanalýza, šifrování, hašhování, bezpečnostní útoky, ...
  • Dolování znalostí z dat,
  • Generování a editace životopisů.

Doporučená "vědečtější" témata za bonus:

  • Analýza otevřených propojených dat (Linked Open Data) na sémantickém webu. Např. data veřejné správy https://www.hackujstat.cz/.
  • Znalostní báze založená na otevřených propojených datech, ontologiích, atd.
  • Analýza virtuálních měn a block chainu.
  • Analýza publikačních propojených dat.
  • Analýza dat z Wikidata nebo DBPedia.
  • Annotace textu s použitím NLP + sémantických technologií, např. https://www.dbpedia-spotlight.org/demo/

Požadavky a omezení

  • Semestrálka musí být vypracována bez jakýchkoliv funkčních šablon (např. shoptet, wix, ...).
  • PHP frameworky jako Laravel a front-endové knihovny jako Bootstrap, jQuery lze použít.
  • Veškeré funkcionality musí být naimplementovány jeho řešiteli.

Doporučení pro samostatnou práci:

  • Nadefinujte si seznam funkčních požadavků a celkovou architekturu projektu.
  • Udělejte rozpad projektu na jednotlivé úlohy a deadliny a pokuste se je dodržet.
  • Zaveďte si záznam všech aktivit v projektu.
  • Projekt průběžně ukládejte pomocí Gitu.
  • Průběžně konzultovat projekt se cvičícím, lze využít možnost komentování v Pull Requestu.
  • Pokud nebudete chtít/stíhat chodit na cvika, podívejte se na PHP video tutoriály na YouTube doma a skutečně si to vyzkoušejte na vlastní kůži.

Základní požadavky pro SP

Základní technické a funkční požadavky:

  • Frontend: HTML5, CSS3, JavaScript
  • Jazyk na backendu: PHP 7/8
  • Databáze: MySQL
  • Backend v PHP musí být napsán s OOP přístupem, kde to dává smysl
  • Projekt lze koncipovat jako RESTful API + samostatný AJAX frontend
  • Lze používat frameworky, nástroje a knihovny jako Laravel, Netter, CodeIgniter, Symphony, Zend, ... (např. ke tvorbě REST API, routování, ...)
  • Vhodná implementace návrhového vzoru např. MVC
  • Implementace uživatelských účtů, autentizace, OAuth
  • CRUD operace (POST, GET, PUT/PATCH, DELETE)
  • Posílání e-mailu
  • SEO URL - url musí být SEO-friendly

Způsob odevzdání

  • SP se odevzdává přímo do tohoto repozitáře přes Pull Request stejně jako u domácích úkolů viz návod.
  • Žádný jiný způsob odevzdání prací nebude akceptován.

Termín pro odevzdání pilotní verze SP na GitHub

  • termín do konce semestru, tj. poslední výukový týden
  • pilotní verze musí mít hovotou alespoň strukturu souborů a složek a nějaký zárodek kódu, např. připojení k DB, založená schémata databáze, OOP třídy pro práci s databází, homepage, ...
  • další verze/úpravy se nahrávají přímo do stávajícího Pull Requestu

Termín pro odevzdání finální verze SP na GitHub

  • po odevzdání pilotní verze mají studenti čas k doladění projektu až do 48h před začátkem termínu obhajoby
  • hotový projekt musíte odevzdat k vyhodnocení alespoň 48h před zahájením obhajoby

Pozn. Obhajoby projektů proběhnou ve zkouškovém období. Na konkrétní termíny obhajob se studenti přihlášejí skze studijní informační systém. V případě, že autor projektu při obhajobě nebude schopen adekvátně reagovat na otázky vyučujícího, má vyučující právo dle svého uvážení snížit počet bodů z jednotlivých kategorií až na 0, a to i v případě, že se bude jednat o kvalitní projekt.