Luncher

Aplikace pro profesionální management obědů.

Aplikace sestává ze dvou (tří) modulů.

  • server
  • client
  • nginx
    • proxy pro snadné propojení Docker kontejnerů pod jednou URL

Spuštění pro vývoj

Závislosti

Klient/server

Spuštění na *nix platformách

  • Nainstalovat závislosti viz předchozí bod
  • Zkopírovat client/.env.template do client/.env.development a upravit dle potřeby
  • Zkopírovat server/.env.template do server/.env.development a upravit dle potřeby
  • Spustit ./run_dev.sh. Na jiných platformách se lze inspirovat jeho obsahem, postup by měl být víceméně stejný.

Sestavení a spuštění produkční verze v Docker

Závislosti

Spuštění s nginx

  • docker compose up --build -d

Spuštení s traefik

  • docker compose -f compose-traefik.yml up --build -d

TODO

  • 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
  • Implementovat 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
    • Zobrazit upozornění před smazáním/zamknutím/odemknutím pizza day
    • Umožnit přidat k objednávce poznámku (např. "bez oliv")
    • Negenerovat QR kód pro objednávajícího
    • 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í
  • Předvyplnění poslední vybrané hodnoty občas nefunguje, viz komentář
  • Nasazení nové verze v Docker smaže veškerá data (protože data.json není venku)
  • Vylepšit dokumentaci projektu
    • Popsat nginx
    • 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ě
  • 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
  • Skripty pro snadné spuštění vývoje na Windows (ekvivalent ./run_dev.sh)
  • Možnost náhledu na jiné dny v týdnu (např. pomocí šipek)
    • Možnost zadat si oběd dopředu na následující dny v týdnu
  • 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)
  • Mazat z databáze předchozí dny, aktuálně je to k ničemu
  • 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, stačilo by to jednou týdně ("ID" by mohlo být číslo týdne v roce, místo celého datumu)
    • 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)')
Description
Aplikace pro profesionální management obědů.
Readme 9.6 MiB
Languages
TypeScript 96.7%
SCSS 1.2%
Dockerfile 1%
JavaScript 0.4%
HTML 0.3%
Other 0.3%