Compare commits
3 Commits
07550e7f83
...
3b429850a3
Author | SHA1 | Date | |
---|---|---|---|
3b429850a3 | |||
0e57acea2b | |||
179e27f8af |
20
README.md
20
README.md
@ -1,10 +1,22 @@
|
|||||||
# Luncher
|
# Luncher
|
||||||
Aplikace pro profesionální management obědů.
|
Aplikace pro profesionální management obědů.
|
||||||
|
|
||||||
|
Aplikace sestává ze tří (čtyř) modulů.
|
||||||
|
- food_api
|
||||||
|
- Python scraper/parser pro zpracování obědových menu restaurací
|
||||||
|
- server
|
||||||
|
- backend psaný v [node.js](https://nodejs.dev)
|
||||||
|
- client
|
||||||
|
- frontend psaný v [React.js](https://react.dev)
|
||||||
|
- [nginx](https://nginx.org)
|
||||||
|
- proxy pro snadné propojení Docker kontejnerů pod jednou URL
|
||||||
|
|
||||||
## Spuštění pro vývoj
|
## Spuštění pro vývoj
|
||||||
### Závislosti
|
### Závislosti
|
||||||
|
#### Food API
|
||||||
- [Python 3](https://www.python.org)
|
- [Python 3](https://www.python.org)
|
||||||
- [pip](https://pypi.org/project/pip)
|
- [pip](https://pypi.org/project/pip)
|
||||||
|
#### Klient/server
|
||||||
- [Node.js 18.x](https://nodejs.dev)
|
- [Node.js 18.x](https://nodejs.dev)
|
||||||
- [Yarn 1.22.x (Classic)](https://classic.yarnpkg.com)
|
- [Yarn 1.22.x (Classic)](https://classic.yarnpkg.com)
|
||||||
|
|
||||||
@ -14,6 +26,14 @@ Aplikace pro profesionální management obědů.
|
|||||||
- Zkopírovat `server/.env.template` do `server/.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ý.
|
- 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štění
|
||||||
|
- `docker compose up --build -d`
|
||||||
|
|
||||||
## TODO
|
## TODO
|
||||||
- [x] Umožnit smazání aktuální volby "popelnicí", místo nutnosti vybrat prázdnou položku v selectu
|
- [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] Přívětivější možnost odhlašování
|
||||||
|
@ -125,29 +125,29 @@ function App() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const addToCart = async () => {
|
// const addToCart = async () => {
|
||||||
// TODO aktuálně nefunkční - nedokážeme poslat PHPSESSIONID cookie
|
// TODO aktuálně nefunkční - nedokážeme poslat PHPSESSIONID cookie
|
||||||
// if (data?.pizzaDay?.orders) {
|
// if (data?.pizzaDay?.orders) {
|
||||||
// for (const order of data?.pizzaDay?.orders) {
|
// for (const order of data?.pizzaDay?.orders) {
|
||||||
// for (const pizzaOrder of order.pizzaList) {
|
// for (const pizzaOrder of order.pizzaList) {
|
||||||
// const url = 'https://www.pizzachefie.cz/pridat.html';
|
// const url = 'https://www.pizzachefie.cz/pridat.html';
|
||||||
// const payload = new URLSearchParams();
|
// const payload = new URLSearchParams();
|
||||||
// payload.append('varId', pizzaOrder.varId.toString());
|
// payload.append('varId', pizzaOrder.varId.toString());
|
||||||
// await fetch(url, {
|
// await fetch(url, {
|
||||||
// method: "POST",
|
// method: "POST",
|
||||||
// mode: "no-cors",
|
// mode: "no-cors",
|
||||||
// cache: "no-cache",
|
// cache: "no-cache",
|
||||||
// credentials: "same-origin",
|
// credentials: "same-origin",
|
||||||
// headers: {
|
// headers: {
|
||||||
// 'Content-Type': 'application/x-www-form-urlencoded',
|
// 'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
// },
|
// },
|
||||||
// body: payload,
|
// body: payload,
|
||||||
// })
|
// })
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// // TODO otevřít košík v nové záložce
|
// // TODO otevřít košík v nové záložce
|
||||||
// }
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
const renderFoodTable = (name, food) => {
|
const renderFoodTable = (name, food) => {
|
||||||
return <Col md={12} lg={4}>
|
return <Col md={12} lg={4}>
|
||||||
@ -174,7 +174,7 @@ function App() {
|
|||||||
return <div>Načítám data...</div>
|
return <div>Načítám data...</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
const noOrders = data?.pizzaDay?.orders?.length == 0;
|
const noOrders = data?.pizzaDay?.orders?.length === 0;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -184,7 +184,9 @@ function App() {
|
|||||||
<Alert variant={'primary'}>
|
<Alert variant={'primary'}>
|
||||||
Poslední změny:
|
Poslední změny:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Přechody mezi stavy Pizza Day: Vytvořeno -> Uzamčeno -> Objednáno -> Doručeno</li>
|
<li>Podpora Gotify</li>
|
||||||
|
<li>Vylepšení dokumentace pro vývojáře</li>
|
||||||
|
<li>Potíže usnout i v pozdních nočních hodinách</li>
|
||||||
</ul>
|
</ul>
|
||||||
</Alert>
|
</Alert>
|
||||||
<h1 className='title'>Dnes je {data.date}</h1>
|
<h1 className='title'>Dnes je {data.date}</h1>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user