/PizzaMania

Projektový tým #03

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

PizzaMania

Alt text

Důležité odkazy ke studiu / projektu

Instalace potřebného SW

Stažení a spuštění projektu

  • Příkaz git clone https://github.com/Neolker/PizzaMania anebo pomocí GUI ve VSCode
  • Otevřít si dva terminály, první pro server:
    • Ze složky serveru cd .\server\
    • Příkaz npm i nainstaluje všechny potřebné balíčky (Express.js apod.), stačí spustit jednou
    • Server potom spustíme příkazem npm start
    • Měl by potom server běžet na http://localhost:8000
    • Zastavit server jde potom klávesovou zkratkou CTRL + C, napsáním Y a potvrzením ENTER
    • Opětovné spuštění pomocí npm start - například po změně v kódu serveru (nezapomeňte uložit!) nebo si pomůžete šipkou nahoru v terminálu pro listování příkazů z historie
  • V druhém terminálu si spustíme client:
    • Opět se přesuneme do složky clienta cd .\client\
    • Příkaz npm i nainstaluje všechny potřebné balíčky (React.js apod.)
    • Příkaz npm run eject nám dovolí použit SCSS
    • Příkaz npm i sass-loader node-sass save nainstaluje sass-loader který nám pomůže zkompilovat SCSS
    • Příkaz npm i bootstrap-icons nainstaluje všechny ikony od Bootstrap
    • Client potom spustíme stejným příkazem npm start
    • Client by se měl spustit sám v prohlížeči na adrese: http://localhost:3000/
    • Ukončit client potom stejnou zkratkou CTRL + C

Dokumentace k API PizzaMania

  • POST požadavky předávají parametry v JSON formátu v Body, většinou jde o data z formulářů
  • GET požadavky předávají parametry, které jsou součástí URL (route)
URI METODA VSTUP VÝSTUP
recipe/super-create POST name, description, procedure, ingredients[] {id, amount} id, name, description, procedure, ingredients[] {id, amount}
recipe/super-update POST id, name, description, procedure, ingredients[] {id, amount} id, name, description, procedure, ingredients[] {id, amount}
recipe/create POST name, description, procedure id, name, description, procedure, ingredients[] {id, amount}
recipe/get GET id id, name, description, procedure, ingredients[] {id, amount}
recipe/update POST id, name, description, procedure id, name, description, procedure, ingredients[] {id, amount}
recipe/delete POST id -
recipe/list GET - recipes[] {id,name,description,procedure,ingredients[] {id, amount} }
recipe/add-ingredient POST id_recipe, id_ingredient, amount id, name, description, procedure, ingredients[] {id, amount}
recipe/delete-ingredient POST id_recipe, id_ingredient id, name, description, procedure, ingredients[] {id, amount}
recipe/update-ingredient POST id_recipe, id_ingredient, amount id, name, description, procedure, ingredients[] {id, amount}
ingredient/create POST name, unit id, name, unit
ingredient/get GET id id, name, unit
ingredient/update POST id, name, unit id, name, unit
ingredient/delete POST id -
ingredient/list GET - ingredients[] {id, name, unit}

Příklady JSON databází

recipes.json

[
  {
    "id": "REC-e6823940",
    "name": "Pizza Margherita",
    "description": "Klasická pizza",
    "procedure": "Předehřejte troubu na 220 °C...",
    "ingredients": [
      {
        "id": "ING-239e0305",
        "amount": 50
      },
      {
        "id": "ING-7ecadb7b",
        "amount": 10
      }
    ]
  },
  {
    "id": "REC-1f1ddb76",
    "name": "Pizza XXX",
    "description": "Klasická pizza",
    "procedure": "Předehřejte troubu na 220 °C...",
    "ingredients": [
      {
        "id": "ING-239e0305",
        "amount": 25
      },
      {
        "id": "ING-6ff59e25",
        "amount": 20
      }
    ]
  },
  {
    "id": "REC-63c5eb4c",
    "name": "Pizza TEST",
    "description": "Klasická pizza",
    "procedure": "Předehřejte troubu na 220 °C...",
    "ingredients": [
      {
        "id": "ING-239e0305",
        "amount": 5
      },
      {
        "id": "ING-7c09dfa1",
        "amount": 15
      },
      {
        "id": "ING-6ff59e25",
        "amount": 10
      }
    ]
  }
]

ingredients.json

[
  {
    "id": "ING-239e0305",
    "name": "Sýr",
    "unit": "g"
  },
  {
    "id": "ING-7c09dfa1",
    "name": "Rajčatový protlak",
    "unit": "ml"
  },
  {
    "id": "ING-6ff59e25",
    "name": "Šunka",
    "unit": "g"
  },
  {
    "id": "ING-7ecadb7b",
    "name": "Salám",
    "unit": "ks"
  }
]