Tworzenie bloków Gutenberg z użyciem ChatGPT.

Zobacz kurs

Podstawy AWS.

Automatyzacja procesów z Make.com

WordPress z AI i Model Context Protocol

WordPress z AI i Model Context Protocol

Nowy plugin Secure Custom Fields i konflikt na horyzoncie

Nowy plugin Secure Custom Fields i konflikt na horyzoncie

Przyszłość projektowania w WordPressie: Blokowe rewolucje i wizje Franka Kleina

Przyszłość projektowania w WordPressie: Blokowe rewolucje i wizje Franka Kleina

Optymalizacja obrazów w WordPress: jak przyspieszyć witrynę i poprawić jakość?

Optymalizacja obrazów w WordPress: jak przyspieszyć witrynę i poprawić jakość?

Najlepsze wtyczki do sprzedaży biletów na WordPressie

Najlepsze wtyczki do sprzedaży biletów na WordPressie

Zobacz więcej
Szybki kurs Cursor AI + Vibe Coding: fullstack’owa aplikacja w 4 krokach!

Szybki kurs Cursor AI + Vibe Coding: fullstack’owa aplikacja w 4 krokach!

Jakie pytania zadają benchmarki AI?

Jakie pytania zadają benchmarki AI?

Jak działa RAG? Proste wytłumaczenie systemu niezbędnego we współczesnej firmie

Jak działa RAG? Proste wytłumaczenie systemu niezbędnego we współczesnej firmie

Bielik – Polski Model AI: Wszystko, Co Musisz Wiedzieć

Bielik – Polski Model AI: Wszystko, Co Musisz Wiedzieć

Deepseek R1 – Fakty i mity. Recenzja i analiza chińskiego modelu.

Deepseek R1 – Fakty i mity. Recenzja i analiza chińskiego modelu.

Zobacz więcej

Szybki kurs Cursor AI + Vibe Coding: fullstack’owa aplikacja w 4 krokach!

Przeskocz do treści

Awatar Mike Tomala

Jak powstała ta aplikacja?

W tym wpisie pokażę Ci, jak zbudowałem aplikację do śledzenia czasu pracy (Time Tracker) używając Cursor AI. Bez klepania kodu linijka po linijce, tylko z pomocą promptów i modeli językowych. Wszystko oparte na NestJS, React, MongoDB i Dockerze. Jeśli chcesz przyspieszyć development – ten wpis jest dla Ciebie.

Czym jest Cursor AI?

Cursor AI to edytor oparty na Visual Studio Code, wzbogacony o integrację z modelami językowymi (Claude, GPT, Gemini). Działa z lokalnym kodem, zna strukturę projektu i umożliwia m.in.:

  • tworzenie kodu z promptów,
  • debugowanie na podstawie logów,
  • refaktoryzację i poprawki AI,
  • akceptowanie/wycofywanie zmian wygenerowanych przez model,
  • współpracę z Dockerem i terminalem.

Oficjalna strona edytora: www.cursor.com

Stack technologiczny użyty w aplikacji

  • Frontend: React + Redux + Material UI v7
  • Backend: NestJS (TypeScript)
  • Baza danych: MongoDB
  • Docker: Konfiguracja za pomocą docker-compose

Etapy pracy w Cursor AI

1. Architektura i środowisko

Na start model generuje szkielet aplikacji i konfigurację Dockera. Prompt zawiera nazwę appki, stack i zestaw zasad (np. najpierw plan, potem kod, nie twórz ficzerów z palca itd.).

Act as IT Architect, DevOps and Developer.


Zadanie: Stwórz szkielet aplikacji na podstawie poniżej architektury usług mikroserwisowych.


Nazwa aplikacji: Time Tracker

Wymagania Docker:
Do uruchomienia lokalnie wykorzystaj docker-compose.
Nie twórz docker-compose dla produkcji.
Zadbaj o konfigurację lokalnych wolumenów.
Pliki Dockerfile mają być przygotowane zarówno do lokalnego developmentu, jak i produkcyjnego deploymentu (użyj Multi Stage Builds).
Zastosuj kompatybilność obrazów Docker --platform=linux/amd64 dla Proxy, Backend i Frontend.
Nie umieszczaj serwera proxy (Nginx ani Apache) w żadnej usłudze poza PROXY.
Ma istnieć tylko jeden serwer.
Ustal stałe nazwy kontenerów.

Wymagania aplikacji:
Wykorzystaj znane skrypty do generowania szkieletów aplikacji.
Nie twórz żadnych funkcjonalności - otrzymasz je w następnym kroku.

Rules:
Zacznij od szkieletu aplikacji, następnie utwórz konfigurację Dockera.
Najpierw opracuj plan - napisz, co, jak i dlaczego chcesz zrobić.
Utrzymuj jak najprostszą strukturę katalogów, nie twórz katalogu pośredniego.
Stwórz dokumentację w pliku readme.md
-

Proxy:
Serwer: Nginx
Nie zmieniaj adresów URL do backendu.

Backend:
Język: TypeScript
Framework: NestJS
Port: 3010
Przygotuj możliwość połączenia się z usługą Bazy danych.


Frontend:
Język: TypeScript
Framework: React, React Router, Redux
Port: 3000
UI: Material UI (v7)
Serwer Proxy: NIE
W środowisku deweloperskim uwzględnij konfigurację dla hot-reloading aplikacji React.

Baza danych:
Silnik: MongoDB
Port: 27017

2. Tworzenie funkcjonalności

Logowanie, role użytkowników, zarządzanie projektami, taski, trackowanie czasu – każda funkcja to osobny prompt. Dzięki temu kontroluję strukturę i unikam chaosu w kodzie.

Act as Developer.

Zadanie: 
Na podstawie stworzonej architektury, dokumentacji @README.md i obecnego kodu bazowego opracuj funkcjonalności opisane poniżej.

Rules:
Odczytaj dokumentację aplikacji: @README.md 
Najpierw przygotuj zmiany w API Backend, a następnie w aplikacji Frontend.
Konfigurację ENV utrzymuj bezpośrednio w docker-compose.yml
Przed instalacją pakietów sprawdzaj, czy nie są już zainstalowane.
Po wprowadzeniu zmian zaktualizuj dokumentację w pliku readme.md.
W dokumentacji w szczególności uwzględnij schematy adresów URL (Frontend i Backend).
Wydziel interfejsy do osobnych plików w specjalnym katalogu z interfejsami. Odczytaj potrzebne interfejsy.
We frontendzie zastosuj podział komponentów na odpowiednie podkatalogi w /src/components/ zgodnie z ich funkcją / przeznaczeniem.
Pamiętaj, że korzystamy z mongodb więc pole identyfikatora to zazwyczaj: “_id”, a nie “id”.
Używaj “class-validator” oraz “class-transformer” w kontrolerach i zawsze zmieniaj w zwracanych danych pole klucza jako “id” (NIE “_id”) w postaci stringu.
Pamiętaj, ze frontend robimy zgodnie z Material UI (v7).
Aby sprawdzić aktualną wersję API Backendu odwiedź stronę: http://localhost/api/docs-json
Korzystaj z RTK Query + custom hook + route param. 
Twórz własne hooki do odpytywania danych.
Pamiętaj o aktualizacji dokumentacji API dla Swagger’a.
Twórz w backendzie moduły dla osobnych funkcjonalności.
Twórz funkcje pobierające dane w service’ach i używaj ich między modułami, zamiast pobierać dane bezpośrednio z modeli.
Pamiętaj o validacji danych po stronie API, nie tylko na froncie.

* Logowanie użytkowników
Model: User
Użytkownicy mają być podzieleni na 2 role: “user” (Zwykły użytkownik) oraz “admin” (Administrator).
Użytkownicy nie mogą się sami rejestrować. 
Loginem użytkownika jest jego adres e-mail.
Administrator może dodawać i edytować użytkowników.
Administrator może zmienić status użytkownika z “active” na “inactive”.
Zwykły użytkownik może przeglądać profile innych użytkowników. 
Wykorzystaj mechanizm cookies to zapisywania tokenu autoryzacyjnego.
Przygotuj skrypt tworzący pierwotnego administratora podczas inicjalizacji aplikacji.

* Profil użytkownika
Każdy użytkownik może po zalogowaniu wejść w swój profil i edytować imię, nazwisko oraz stanowisko.

3. Stylowanie i UI/UX

Używam tylko Material UI v7. Promptuję model tak, aby nie używał bootstrapa, ustalam ciemny motyw, konkretne fonty i wygląd layoutów (np. menu w topbarze, avatar z dropdownem itd.).

Act as Designer and Frontend Developer.

Zadanie: Dokonaj zmian wizualnych, UI, UX w interfejsie aplikacji zgodnie z poniższym opisem.

Rules:
* Stosuj Material UI (v7)
* Jeśli potrzebna jest edycja API backendu to zatrzymaj działanie i napisz, jaki endpoint jest potrzebny.
* Jeśli masz problem z API backendu sprawdź najpierw dokumentację pod adresem: http://localhost/api/docs-json
* Wygląd interfejsu powinien być minimalistyczny
* Korzystaj z RTK Query + custom hook + route param. 

4. Debug i refaktoryzacja

Cursor AI koloruje zmiany. Błędy w kodzie są wykrywane i naprawiane przez AI lub przeze mnie (np. ręcznie triggerując poprawkę przez prompt). Używam rollbacków, checkpointów i logów z kontenerów.

Czy Cursor AI ma sens?

Tak, jeśli:

  • tworzysz MVP lub chcesz szybko prototypować,
  • znasz podstawy stacku i chcesz przyspieszyć codzienny workflow,
  • szukasz narzędzia, które naprawdę działa z AI, nie tylko udaje „smart IDE”.

Nie – jeśli liczysz, że zrobi wszystko za Ciebie bez kontekstu i złożysz produkcyjną apkę w 10 minut. To narzędzie, nie magia.

Podsumowanie

Cursor AI to jedno z najbardziej użytecznych narzędzi AI-first dla programistów. Jeśli chcesz zautomatyzować 50–70% procesu tworzenia aplikacji i nadal mieć kontrolę nad kodem – spróbuj. Film u góry pokaże Ci, jak to wygląda w praktyce.

W kolejnym wpisie zajmę się testowaniem i deploymentem tej aplikacji. Jeśli chcesz być na bieżąco – subskrybuj i dołącz do newslettera.

Newsletter. I wszystko jasne.

Nieominie Cię żadna ważna informacja.

Obiecuje nigdy nie wysyłać spamu, ani scamu! Sprawdź Politykę Prywatności.

Zamknij