nvbach91 / 4IZ278-2021-2022-LS

4IZ278-2021-2022-LS
MIT License
0 stars 3 forks source link

mikm25-sp #9

Open marek-mikula opened 2 years ago

marek-mikula commented 2 years ago

Dobrý den @nvbach91 ,

mám spíše organizační dotaz. Je nějak nutná účast na cvičeních, nebo je možné na cvičení nechodit a zároveň Vám odevzdávat vypracované domácí cvičení? Pokud ano, je možné Vám to odevzdat i dopředu?

Velkou část probírané látky už umím z práce a hodilo by se mi v pátek místo cvičení pracovat.

Zároveň mám otázku ohledně semestrální práce. Už mám vybrané téma a rád bych začal pracovat. Je možné se tedy dostavit na konzultační hodiny k Vám a zadání s Vámi probrat?

Předem děkuji za odpověď. M.

nvbach91 commented 2 years ago

Téma sepište podle pokynu sem do Issues, budeme to diskutovat tady.

nvbach91 commented 2 years ago

Je to na Vás jestli chodit na cvika, domácí úkoly můžete odevzdat dopředu.

marek-mikula commented 2 years ago

@nvbach91 Omlouvám se za pozdní odpověď, úplně mi tento thread zapadnul.

Moc děkuji za odpověď. Zadání semestrální práce sepíšu do samostatného komentáře.

marek-mikula commented 2 years ago

Hirable

Aplikace Hirable bude sloužit náborářům jako jednoduchý web pro publikaci nabídek práce do různých firem. Základem bude landing page, kde se budou vypisovat všechny dostupné nabídky. Každý náborář bude mít v aplikaci svůj účet, ve kterém bude moci spravovat, vytvářet, mazat a editovat svoje nabídky práce.

Popis funkcionalit

Landing page

Základem celého projektu bude landing page, kde budou vypsány všechny dostupné pracovní nabídky (+stránkování), které jsou platné (uživatel bude moci nastavit platnost nabídky OD - DO).

Společně s tím zde bude i filtrace podle různých atributů nabídek:

Detail nabídky

Po kliknutí na konkrétní nabídku se uživatel dostane do detailu nabídky. Zde bude vypsané veškeré info o pracovní nabídce společně s kontaktem na daného recruitera.

V patičce nabídky bude formulář pro kontakt. Zde se budou vyplňovat tyto informace:

Po odeslání formuláře se obsah odešle na email recruitera.

Autentizace - registrace

Uživatel bude při registraci zadávat tyto základní údaje:

Po registraci bude odeslán email o úspěšné registraci + odkaz na ověření emailové adresy. Dokud uživatel neověří emailovou adresu, nebude se moci přihlásit. Email o verifikaci bude možné i odeslat znovu na příslušné stránce.

Odeslání formuláře bude zabezpečeno captchou, aby nemohlo dojít k bruteforce útoku.

Heslo bude validováno na tyto pravidla:

Autentiazce - potvrzení emailové adresy

Po registraci uživatel dostane email s potvrzením o registraci + odkaz pro verifikaci emailové adresy. Po kliknutí na odkaz bude email verifikován.

V případě, že uživatel link ztratil, nebo nepřišel, bude si moci odkaz na příslušné stránce odeslat znovu. Potvrzovací zpráva po odeslání formuláře nesmí sdělit, jestli byl email odeslán, pouze, že bude odeslán, pokud emailová adresa v systému existuje.

Odeslání formuláře tohoto formuláře bude zabezpečeno captchou, aby nemohlo dojít k bruteforce útoku.

Autentizace - přihlášení

Přihlášení bude probíhat pomocí emailové adresy a hesla. Po 5 neúspěšných pokusech bude uživatel muset vyplnit captchu. Pokud uživatel vyplní špatně emailovou adresu, heslo nebo jeho emailová adresa není potvrzena, zobrazím hlášku, že se nelze přihlásit.

Autentizace - reset hesla

Heslo si bude moci zresetovat pomocí linku, který přijde na zadanou a emailovou adresu. Emailová adresa musí být potvrzená pro resetování hesla. Link bude mít platnost 30 dní.

Dashboard

Domovská stránka po přihlášení. Zde se budou zobrazovat tyto informace:

Pracovní nabídky

Hlavní entita aplikace. Budeme ukládat tyto informace:

Základní náhled bude nějaký grid všech pracovních nabídek uživatele (+stránkování). Po prokliku se dostane na detail, z detailu se bude moci prokliknout do editace. V detailu bude moci i nabídku smazat (toto bude nutné potvrdit v nějakém modálním okně).

Techstack

Statická analýza kódu apod.

Ostatní

nvbach91 commented 2 years ago

Pěkný návrh, můžete dodat ještě databázové schéma?

marek-mikula commented 2 years ago

@nvbach91 Určitě :)

Snímek obrazovky 2022-04-02 v 11 10 22

Zde je nějaké základní schéma, které jsem sestavil.

U tabulky tagů jsem uvedl i vazbu na uživatele, plánuji to udělat tak, aby každý uživatel měl svou sadu tagů, které používá. Tzn. aby se nesdíleli mezi uživateli.

Ještě jsem přemýšlel, že bych aplikaci rozšířil o nějaké velmi jednoduché API. Např. kdyby nějaká společnost chtěla zveřejněné nabídky v mé aplikaci synchronizovat na jejich stránku společnosti. Jeden jednoduchý endpoint.

marek-mikula commented 2 years ago

Koukám ještě, že u tabulky users jsem použil camel case u atributu phoneNumber. To je kdyžtak chyba, v práci by se to neobjevilo.

marek-mikula commented 2 years ago

Místo atributu workplace_address, což jsem nyní uvedl jako string, ještě uvažuji, že bych použil Google maps API a ukládal si souřadnice, které bych přímo zobrazoval na mapě. To by určitě mohlo být zajimavé.

nvbach91 commented 2 years ago

Ok schváleno

nvbach91 commented 2 years ago

https://github.com/nvbach91/4IZ278-2021-2022-LS/pull/106