Portfolio
Projekt: Inventory App

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:

  1. načte požadovanou kategorii z URL
  2. zavolá odpovídající query do databáze
  3. předá získaná data do EJS šablony
  4. 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 aplikace
  • src/routes/ — routy pro CPU, GPU a hlavní stránku
  • src/controllers/ — logika pro renderování stránek a úpravy dat
  • src/db/ — připojení k PostgreSQL, SQL dotazy a seed skript
  • src/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:

  1. vytvoř databázi inventory_app
  2. zkopíruj .env.example do .env a nastav přihlašovací údaje
  3. nainstaluj závislosti npm install
  4. naplň databázi node src/db/seed.js
  5. spusť aplikaci node src/app.js
  6. otevři http://localhost:3000

GitHub: Inventory App