Česky
English
Česky

Rezervační systém pro zasedačky

Představ si, že jsme zákazník a chceme od tebe navrhnout a částečně implementovat jednoduchý interní rezervační systém pro firemní zasedací místnosti.

Cílem úlohy není dodat perfektně hotovou aplikaci. Zajímá nás hlavně tvůj způsob práce, technické rozhodování, schopnost pracovat s AI nástroji a schopnost popsat, co jsi udělal, co jsi nestihl a proč.

Kontext

Firma má několik zasedacích místností. Zaměstnanci si je chtějí rezervovat na konkrétní čas. Potřebujeme jednoduchou aplikaci, která umožní:

  • zobrazit dostupné místnosti,
  • vytvořit rezervaci místnosti na konkrétní čas,
  • zabránit kolizi rezervací,
  • zobrazit seznam rezervací,
  • zrušit existující rezervaci,
  • rozlišit alespoň základní pravidla pro běžného uživatele a administrátora.

Orientační požadavky

  • Backend ideálně v Node.js / TypeScriptu.
  • Frontend ideálně v Angularu nebo jiné rozumné frontend technologii
  • Data mohou být uložená jednoduše — například in-memory, JSON soubor, SQLite nebo jiná jednoduchá varianta.
  • Není nutné řešit plnohodnotnou autentizaci. Stačí jednoduchá simulace uživatelské role.
  • Testy nemusí pokrývat všechno, ale chceme vidět, že víš, co a proč testovat.
  • UI nemusí být krásné. Důležitější je srozumitelnost, funkčnost a dobré technické rozhodování.

Práce s AI

Použití AI je požadované. Zajímá nás, jak s AI pracuješ.

Prosíme, odevzdej nám kromě výsledného kódu také export nebo záznam AI session, případně souhrn interakce s AI. Chceme vidět například:

  • jak AI zadáváš kontext,
  • jak formuluješ požadavky,
  • jak kontroluješ a opravuješ její výstupy,
  • kde s AI nesouhlasíš,
  • jak řešíš chyby nebo slepé uličky,
  • jak používáš AI při návrhu, implementaci, testech a dokumentaci.

Není problém, pokud AI udělá chybu. Naopak nás zajímá, jestli ji poznáš a jak s ní naložíš.

Časový rámec

Doporučený čas na úlohu je přibližně 5–6 hodin.

Nečekáme, že za tuto dobu vznikne kompletní produkční aplikace. Pokud něco nestihneš, zeptáme se, jak bys pokračoval dál.

Co nám odevzdat

  • odkaz na veřejný repozitář,
  • stručné README:
    • jak aplikaci spustit,
    • co je implementováno,
    • co není implementováno,
    • jaká technická rozhodnutí jsi udělal a proč,
    • jak bys pokračoval, kdybys měl více času,
    • jak jsi použil AI,
  • AI session / export / záznam interakce s AI,
  • případně krátký seznam nejdůležitějších kompromisů a známých nedostatků.

 

Co se bude dít po odevzdání úlohy

Po odevzdání si náš vývojový tým projde celé řešení — výsledný kód, README, technická rozhodnutí i záznam práce s AI.

Následně se společně potkáme nad úlohou a projdeme si ji s tebou osobně. Budeme se bavit o tom, jak jsi nad zadáním přemýšlel, jak sis práci rozdělil, jak jsi používal AI, kde ti pomohla, kde ses naopak rozhodl její výstup upravit nebo odmítnout, co jsi stihl, co jsi nestihl a jak bys pokračoval dál.

Nečekáme dokonalé produkční řešení. Zajímá nás hlavně způsob práce, technický úsudek, komunikace a schopnost rozumně popsat vlastní rozhodnutí.

English

Meeting Room Reservation System

Imagine that we are the customer and we would like you to design and partially implement a simple internal reservation system for company meeting rooms. The goal of this assignment is not to deliver a perfectly finished application. We are mainly interested in your way of working, your technical decision-making, your ability to work with AI tools, and your ability to explain what you completed, what you did not complete, and why.

Context

The company has several meeting rooms. Employees want to reserve them for specific time slots. We need a simple application that allows users to:
  • view available rooms,
  • create a room reservation for a specific time,
  • prevent overlapping reservations,
  • view a list of reservations,
  • cancel an existing reservation,
  • distinguish at least basic rules for a regular user and an administrator.

General requirements

  • The backend should ideally be built in Node.js / TypeScript.
  • The frontend should ideally be built in Angular or another reasonable frontend technology.
  • Data can be stored in a simple way — for example in memory, in a JSON file, in SQLite, or using another simple option.
  • Full authentication is not required. A simple simulation of user roles is sufficient.
  • Tests do not need to cover everything, but we want to see that you know what to test and why.
  • The UI does not need to be beautiful. Clarity, functionality, and good technical decision-making are more important.

Working with AI

The use of AI is required. We are interested in how you work with AI. In addition to the final code, please submit an export or record of your AI session, or alternatively a summary of your interaction with AI. We would like to see, for example:
  • how you provide context to AI,
  • how you formulate requirements,
  • how you review and correct AI outputs,
  • where you disagree with AI,
  • how you handle errors or dead ends,
  • how you use AI during design, implementation, testing, and documentation.
It is not a problem if AI makes a mistake. On the contrary, we are interested in whether you notice it and how you deal with it.

Time frame

The recommended time for the assignment is approximately 5–6 hours. We do not expect a complete production-ready application to be built within this time. If you do not finish something, we will ask you how you would continue.

What to submit

  • a link to a public repository,
  • a brief README including:
    • how to run the application,
    • what has been implemented,
    • what has not been implemented,
    • what technical decisions you made and why,
    • how you would continue if you had more time,
    • how you used AI,
  • the AI session / export / record of your interaction with AI,
  • optionally, a short list of the most important compromises and known limitations.

What happens after you submit the assignment

After submission, our development team will review the complete solution — the final code, README, technical decisions, and the record of your work with AI. We will then meet with you to discuss the assignment in person. We will talk about how you approached the task, how you structured your work, how you used AI, where it helped you, where you decided to modify or reject its output, what you completed, what you did not complete, and how you would continue. We do not expect a perfect production-ready solution. We are mainly interested in your way of working, technical judgement, communication, and ability to reasonably explain your own decisions.