- Zavedení yarn workspaces - Sloučení klienta a serveru do jednoho Docker kontejneru - Společný dockerfile, builder - Zbavení se nginx (není již potřeba)
74 lines
3.9 KiB
Markdown
74 lines
3.9 KiB
Markdown
# Luncher
|
|
Aplikace pro profesionální management obědů.
|
|
|
|
Aplikace sestává ze tří modulů.
|
|
- types
|
|
- společné TypeScript definice, pro objekty posílané mezi serverem a klientem
|
|
- server
|
|
- backend psaný v [node.js](https://nodejs.dev)
|
|
- client
|
|
- frontend psaný v [React.js](https://react.dev)
|
|
|
|
## Spuštění pro vývoj
|
|
### Závislosti
|
|
#### Klient/server
|
|
- [Node.js 18.x](https://nodejs.dev)
|
|
- [Yarn 1.22.x (Classic)](https://classic.yarnpkg.com)
|
|
|
|
### Spuštění na *nix platformách
|
|
- Nainstalovat závislosti viz předchozí bod
|
|
- 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
|
|
- [Docker](https://www.docker.com)
|
|
- [Docker Compose](https://docs.docker.com/compose)
|
|
|
|
### Spuštení s traefik
|
|
- `docker compose -f compose-traefik.yml up --build -d`
|
|
|
|
## TODO
|
|
- [x] Umožnit smazání aktuální volby "popelnicí", místo nutnosti vybrat prázdnou položku v selectu
|
|
- [x] Přívětivější možnost odhlašování
|
|
- [x] Vyřešit responzivní design pro použití na mobilu
|
|
- [x] Vyndat URL na Food API do .env
|
|
- [x] Neselhat při nedostupnosti nebo chybě z Food API
|
|
- [x] Dokončit docker-compose pro kompletní funkčnost
|
|
- [x] Implementovat Pizza day
|
|
- [x] Umožnit uzamčení objednávek zakladatelem
|
|
- [x] Možnost uložení čísla účtu
|
|
- [x] Automatické generování a zobrazení QR kódů
|
|
- [x] https://qr-platba.cz/pro-vyvojare/restful-api/
|
|
- [x] Zobrazovat celkovou cenu objednávky pod tabulkou objednávek
|
|
- [ ] Zobrazit upozornění před smazáním/zamknutím/odemknutím pizza day
|
|
- [x] Umožnit přidat k objednávce poznámku (např. "bez oliv")
|
|
- [x] 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)
|
|
- [x] Vylepšit dokumentaci projektu
|
|
- [x] Popsat závislosti, co je nutné provést před vývojem a postup spuštění pro vývoj
|
|
- [x] Popsat dostupné env
|
|
- [x] Přesunout autentizaci na server (JWT?)
|
|
- [x] Zavést .env.template a přidat .env do .gitignore
|
|
- [x] 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
|
|
- [x] Zbavit se Food API, potřebnou funkcionalitu zahrnout do serveru
|
|
- [x] 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)') |