Luncher/TODO.md

5.1 KiB

TODO

  • Možnost úhrady celé útraty jednou osobou
    • Základní myšlenka: jedna osoba uhradí celou útratu (v zájmu rychlosti odbavení), ostatním se automaticky vygeneruje QR kód, kterým následně uhradí svoji část útraty
    • Obecně to bude problém např. pokud si někdo objedná něco navíc (pití apod.)
    • Tlačítko "Uhradit" u každého řádku podniku - platí ten, kdo kliknul
      • Zobrazeno bude pouze, pokud má daný uživatel nastaveno číslo účtu
    • Dialog pro zadání spropitného, které se následně rozpočte rovnoměrně všem strávníkům
    • Generování a zobrazení QR kódů ostatním strávníkům
    • Umožnit u každého strávníka připočíst vlastní částku (např. za pití)
    • Umožnit (např. zaškrtávátky) vybrat, za koho bude zaplaceno (pokud někdo bude platit zvlášť)
  • Podpora pro notifikace v externích systémech (Gotify, Discord, MS Teams)
    • Umožnit zadat URL/tokeny uživatelem
    • Umožnit uživatelsky konfigurovat typy notifikací, které se budou odesílat
    • Zavést notifikace typu "Jdeme na oběd"
      • Notifikaci dostanou pouze uživatelé, kteří mají vybranou stejnou lokalitu
  • Vylepšit parsery restaurací
    • Sladovnická
    • Zbytečná prvotní validace indexu, datum konkrétního dne je i v samotné tabulce s jídly, viz TODO v parseru
    • U Motlíků
      • Validovat, že vstupní datum je zahrnuto v rozsahu uvedeném nad tabulkou (např. '12.6.-16.6.')
      • Jídelní lístek se stahuje jednou každý den, teoreticky by stačilo jednou týdně (za předpokladu, že se během týdne nemění)
    • TechTower
      • Validovat, že vstupní datum je zahrnuto v rozsahu uvedeném nad tabulkou (typicky 'Obědy 12. 6. - 16. 6. 2023 (každý den vždy i obědový bufet)')
      • Jídelní lístek se stahuje v rámci prvního požadavku daný den, ale často se jídelní lístek na stránkách aktualizuje až v průběhu pondělního dopoledne a ten zobrazený je proto neaktuální
        • Stránka neposílá hlavičku o času poslední modifikace, takže o to se nelze opřít
        • Nevím aktuálně jak řešit jinak, než častějším scrapováním celé stránky
    • Někdy jsou v názvech jídel přebytečné mezery kolem čárek ( , )
  • Nasazení nové verze v Docker smaže veškerá data (protože data.json není vystrčený ven z kontejneru)
    • Zavést složku /data
  • Mazat z databáze data z minulosti, aktuálně je to k ničemu
  • Skripty pro snadné spuštění vývoje na Windows (ekvivalent ./run_dev.sh)
  • Implementovat Pizza day
    • Zobrazit upozornění před smazáním/zamknutím/odemknutím pizza day
    • Pizzy se samy budou při naklikání přidávat do košíku
      • Nutno nejprve vyřešit předávání PHPSESSIONID cookie na pizzachefie.cz pomocí fetch()
    • Ceny krabic za pizzu jsou napevno v kódu - problém, pokud se někdy změní
    • Umožnit u Pizza day ručně připočíst cenu za přísady
    • Prvotní načtení pizz při založení Pizza Day trvá a nic se během toho nezobrazuje (např. loader)
    • Po doručení zobrazit komu zaplatit (kdo objednával)
    • Zbytečně nescrapovat každý den pizzy z Pizza Chefie, dokud není založen Pizza Day
    • Umožnit uzamčení objednávek zakladatelem
    • Možnost uložení čísla účtu
    • Automatické generování a zobrazení QR kódů
    • Zobrazovat celkovou cenu objednávky pod tabulkou objednávek
    • Umožnit přidat k objednávce poznámku (např. "bez oliv")
    • Negenerovat QR kód pro objednávajícího
  • Možnost náhledu na ostatní dny v týdnu (např. pomocí šipek)
    • Možnost výběru oběda na následující dny v týdnu
  • Umožnit vybrat libovolný čas odchodu
  • Validace zadání smysluplného času (ideálně i klientská)
  • Umožnit smazání aktuální volby "popelnicí", místo nutnosti vybrat prázdnou položku v selectu
  • Přívětivější možnost odhlašování
  • Vyřešit responzivní design pro použití na mobilu
  • Vyndat URL na Food API do .env
  • Neselhat při nedostupnosti nebo chybě z Food API
  • Dokončit docker-compose pro kompletní funkčnost
  • Vylepšit dokumentaci projektu
    • Popsat závislosti, co je nutné provést před vývojem a postup spuštění pro vývoj
    • Popsat dostupné env
  • Přesunout autentizaci na server (JWT?)
  • Zavést .env.template a přidat .env do .gitignore
  • Zkrášlit dialog pro vyplnění čísla účtu, vypadá mizerně
  • Zbavit se Food API, potřebnou funkcionalitu zahrnout do serveru
  • Vyřešit API mezi serverem a klientem, aby nebyl v obou projektech duplicitní kód (viz types.ts a Types.tsx)
  • Vybraná jídla strávníků zobrazovat v samostatném sloupci
  • Umožnit výběr/zadání preferovaného času odchodu na oběd
    • Hodí se např. pokud má někdo schůzky
  • Ukládat dostupné pizzy do DB místo souborů
  • Ukládat jídla do DB místo souborů