Projekt: Inventory App
Duben 2026
Inventory App je jednoduchá webová aplikace pro správu položek v inventáři. Projekt ukazuje, jak postavit plně funkční backend s Express a PostgreSQL a jak data vykreslit pomocí EJS šablon.
Hlavní myšlenka byla procvičit CRUD operace a rozdělení aplikace na samostatné části: server, databáze, routy a pohledy.
Co projekt dělá
Aplikace má dvě kategorie položek:
- GPU inventory
- CPU inventory
Uživatelé mohou:
- zobrazit všechny položky v každé kategorii
- zobrazit detail konkrétní položky
- přidat nové položky
- smazat položky
- obnovit databázi se vzorovými daty
Architektura: Server → Databáze → Šablona
Stejně jako u Mini Dashboardu je JavaScript zde spouštěný na serveru (Node.js). Express zpracovává HTTP požadavky, PostgreSQL uchovává data a EJS vytváří výsledné HTML.
Frontend → Backend → Databáze → Šablona
Uživatel klikne nebo pošle formulář
↓
Express route přijme požadavek
↓
Controller provede logiku a zavolá databázi
↓
DB vrátí data nebo provede změnu
↓
EJS šablona renderuje výsledek
↓
Prohlížeč zobrazí stránku
Pracovní tok: Jak aplikace načítá data
Když uživatel otevře stránku s GPU nebo CPU inventářem, server:
- načte požadovanou kategorii z URL
- zavolá odpovídající query do databáze
- předá získaná data do EJS šablony
- odešle hotový HTML do prohlížeče
Příklad controlleru pro zobrazení položek:
// src/controllers/inventoryController.js
exports.getItems = async (req, res) => {
const category = req.params.category;
const result = await pool.query(
"SELECT * FROM items WHERE category = $1 ORDER BY id DESC",
[category],
);
res.render("inventory", { items: result.rows, category });
};
Co v repo najdete
Projekt obsahuje:
src/app.js— nastavení Express aplikacesrc/routes/— routy pro CPU, GPU a hlavní stránkusrc/controllers/— logika pro renderování stránek a úpravy datsrc/db/— připojení k PostgreSQL, SQL dotazy a seed skriptsrc/views/— EJS šablony pro zobrazení stránek a formuláře.env.example— příklad nastavení databáze
Nastavení a spuštění
Krok po kroku:
- vytvoř databázi
inventory_app - zkopíruj
.env.exampledo.enva nastav přihlašovací údaje - nainstaluj závislosti
npm install - naplň databázi
node src/db/seed.js - spusť aplikaci
node src/app.js - otevři
http://localhost:3000
GitHub: Inventory App