Potrzebuję pomocy z wniesieniem szafy na drugie piętro.
This System Requirements Document (SRD) defines the complete functional and non-functional requirements for „Stare Stawy — Sąsiedzi”, an ultra-local community web application delivered as an installable Progressive Web App (PWA).
The product is a single, ordered place for the residents of the Stare Stawy housing estate in Oświęcim to ask neighbours for help, lend and borrow items, give things away, find lost property, report local problems, announce important events, find local tradespeople, ask about shared travel, and pass on information about the immediate area.
The working name is „Stare Stawy — Sąsiedzi”. The name may change later; therefore the architecture must not be tightly coupled to this specific name.
The application interface must be in Polish.
This SRD converts the source project brief into verifiable requirements. It covers the MVP feature modules, user personas, flows, design direction, non-functional requirements, technology stack, and constraints. It replaces any previously generated SRD content.
Source identity: user-supplied text file containing the project brief/instruction („Polecenie w pliku tekstowym”), attached as chat_media/d3c9ae57-0e65-407c-84b0-8f28f478f987/3581b365_Notes_260923_013110.txt (message 93e984ab-2eff-4ef1-ad30-9e857eef4320, created 2026-09-22T23:34:29.951369+00:00).
Authority: authoritative content source and domain context for the whole build. Its content is the source of truth for the product name, locality, modules, categories, copy, palette, constraints, and quality gate reproduced throughout this SRD.
Named items carried from the source:
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY (or equivalent current variables).Media references: the attached text file itself; no other images, logos, or media were supplied.
Unverified facts: the source does not specify a legal entity, contact e-mail/phone, hosting account, or domain; these remain unverified and must not be invented.
Residents of Stare Stawy live very close to one another but have no single, ordered place where they can:
Today this information is scattered across Facebook groups, Messenger, WhatsApp, and ad-hoc notices.
Create one simple place that expresses: „Tutaj dzieje się coś na Starych Stawach.” ("Something is happening at Stare Stawy.")
The application must be:
The application must not become "another Facebook". It must not contain:
The most important value: a resident opens the app and immediately sees what is happening in their area.
The application is for Stare Stawy in Oświęcim only. It must not be built as a general "portal for all residents of Poland". The whole UX must produce the feeling: „To jest nasze osiedle.” Copy should use expressions such as „na Starych Stawach", „u nas", „sąsiedzi", „Twoja okolica", without over-repeating the estate name.
The product is an alternative and complement to existing community groups — it does not copy Facebook.
A working, deployable web application (PWA) — not a mockup, not a prototype with stubs, not screens only. Key functions must not be left as TODO. After environment configuration, the app must be runnable and deployable, with a documented Supabase setup, ENV setup, database migrations, local run instructions, and Vercel deployment instructions.
.env.example, and documentation), excluding secrets, node_modules, build output, and other generated artifacts.The runnable system is composed of the following provisioned services, which are the authoritative inventory of infrastructure:
The frontend reaches the backend through the application gateway/API layer; the backend is the only service that talks to the database. Supabase Auth, Storage, and Web Push remain external system actors (Section 4.4) and are configured through documented environment variables. This inventory adds no product requirements and does not change any access decision.
Requirements are expressed as user stories. MVP scope is indicated by the module grouping.
The main feed of the application, where residents publish announcements.
A separate module for requests for help, e.g.:
„Potrzebuję pomocy z wniesieniem szafy."
„Czy ktoś może odebrać mi paczkę?"
„Potrzebuję podwiezienia."
„Czy ktoś ma drabinę?"
„Potrzebuję pomocy przy drobnej naprawie."
As a resident, I want to create a help request, so that neighbours can offer assistance.
As a resident, I want to set a category on my help request.
As a resident, I want to set an urgency level on my help request.
As a resident, I want to set an approximate location for my help request.
As a resident, I want to mark my help problem as resolved, so that others know it no longer needs attention.
Residents list items they are willing to lend (e.g. drill, ladder, washing vacuum, tools, trailer, garden equipment).
A separate section for important local information.
Alert categories: -\x20\xf0\x9f\x9a\xa7 Droga / utrudnienia -\x20\xe2\x9a\xa1 Awaria -\x20\xf0\x9f\x90\x95 Zwierzę -\x20\xf0\x9f\x94\x91 Zguba / znaleziono -\x20\xe2\x9a\xa0️ Ważne -\x20\xf0\x9f\x8c\xb3 Inne
A catalogue of local services.
Professional categories:
Users can contact one another inside the application.
Location is one of the most important elements of the product.
The first screen must immediately answer: „Co dzieje się teraz na Starych Stawach?"
The proposed layout includes:
Header: STARE STAWY — Twoje osiedle. Twoi sąsiedzi.
Search: [\x20\xf0\x9f\x94\x8e Czego szukasz? ]
Add: [ + Dodaj ]
Filter chips: \xf0\x9f\x93\xa2 Wszystko,\x20\xf0\x9f\xa4\x9d Pomoc,\x20\xf0\x9f\x94\xa7 Pożycz,\x20\xf0\x9f\x8e\x81 Oddam,\x20\xf0\x9f\x9a\xa8 Ważne
NAJNOWSCE / NAJNOWSZE section with post cards
Bottom navigation: \xf0\x9f\x8f\xa0 Tablica,\x20\xf0\x9f\xa4\x9d Pomoc,\x20\xf0\x9f\x94\xa7 Pożycz,\x20\xf0\x9f\x92\xac Wiadomości,\x20\xf0\x9f\x91\xa4 Profil
As a resident, I want the main screen to immediately show what is happening now at Stare Stawy.
As a resident, I want quick filter chips (Wszystko, Pomoc, Pożycz, Oddam, Ważne) on the main screen.
As a resident, I want a persistent bottom navigation with Tablica, Pomoc, Pożycz, Wiadomości, Profil.
As a resident, I want a mobile-first layout.
A simple administrator panel, functional rather than pretty.
For a logged-out user, an empty application must not be shown.
The project is considered ready only when:
.env.example, and the documentation described in Section 3.27..env files with credentials, node_modules, build output, or other generated artifacts.The primary persona. A person living at the Stare Stawy estate in Oświęcim who wants to handle everyday local needs in one place.
A local service provider listed in the catalogue.
A person operating the admin panel.
.env.example, documentation), excluding secrets and generated artifacts.Design character: local + modern + friendly. It must not feel banking, corporate, childish, overly colourful, or like a "start-up from 2020".
A restrained, warm, grounded palette that reads as neighbourhood and everyday utility — not finance and not a toy.
-\x20\xf0\x9f\x9a\xa7 Droga / utrudnienia — amber -\x20\xe2\x9a\xa1 Awaria — red -\x20\xf0\x9f\x90\x95 Zwierzę — teal -\x20\xf0\x9f\x94\x91 Zguba / znaleziono — indigo/soft blue -\x20\xe2\x9a\xa0️ Ważne — strong red/amber emphasis -\x20\xf0\x9f\x8c\xb3 Inne — neutral grey
Alert cards must be recognisable at a glance versus regular announcement cards (accent stripe / accent badge / stronger border).
Dark mode may be prepared, but it is not more important than the base UX.
Concept: „Sąsiedzka tablica" — the neighbourhood board, brought into a warm modern app.
The signature is the feeling of a well-kept local notice board that has been cleaned up and made fast: everything is on one wall, sorted into a handful of clear categories, and anything nearby is close enough to be meaningful.
Design principles that define the experience:
On a phone the application must work perfectly.
.env.example with a description of the required variables.The following stack is preferred and may be substituted only if the repository already defines a technology:
Framework: Next.js
Language: TypeScript
Styling: Tailwind CSS
UI components: shadcn/ui
Backend / Platform: Supabase
PWA layer: web manifest, icons, theme color, install prompt, service worker, basic caching, offline fallback
Deployment target: Vercel
Configuration: .env.example documenting required variables, including:
NEXT_PUBLIC_SUPABASE_URL=NEXT_PUBLIC_SUPABASE_ANON_KEY=(or the equivalent current variables required by the chosen architecture)
Notifications: architecture prepared for Web Push, with complete implementation and clearly documented ENV/config where additional configuration is required.
Example tables: profiles, posts, post_categories, comments, messages, conversations, help_requests, borrow_items, alerts, professionals, professional_reviews, reports, blocks, notifications.
Each table must have sensible id, created_at, updated_at, and — where needed — user_id, status, deleted_at. RLS must be enabled. No tables should be created without need.
The provisioned service inventory (Section 2.8) is authoritative for the runtime:
Supabase Auth, Supabase Storage, and the Web Push service remain external system actors configured through documented environment variables. Where the architecture requires a background job (for example delivering Web Push notifications), it runs as a worker process alongside the shared backend and is documented as such.
.env.example, and the documentation from Section 3.27..env files with credentials, node_modules, build output, and other generated artifacts..env.| Term | Definition |
|---|---|
| Stare Stawy | The housing estate in Oświęcim for which the application is built. |
| „Stare Stawy — Sąsiedzi" | Working project name; may change and must not drive architecture. |
| Tablica Sąsiadów | The main board feed of the application, where residents publish announcements. |
| Ogłoszenie | An announcement published on the board, with title, description, category, optional photo, date, author, approximate location, status, reply count, and report option. |
| Pomoc Lokalna | The separate module for help requests, with category, urgency, approximate location, and resolved status. |
| Pożyczalnia Rzeczy | The module where residents list items they are willing to lend (drill, ladder, washing vacuum, tools, trailer, garden equipment), each with name, description, photo, owner, approximate location, availability, and lending rules. |
| Alert Osiedlowy | A neighbourhood alert in a separate section, visually distinguished from ordinary announcements; categories: Droga / utrudnienia, Awaria, Zwierzę, Zguba / znaleziono, Ważne, Inne. |
| Fachowiec | A local professional listed in the services catalogue with name, description, category, area of operation, optional phone, optional website, photo/logo, verified status, and reviews. |
| ZWERYFIKOWANY (Verified) | A system/administrator-controlled status on a professional profile; users may never set it themselves. |
| Wiadomości | The in-app 1:1 messaging module: conversation, conversation list, messages with date, read status, blocking, and conversation reporting. Group chat is out of MVP. |
| Powiadomienia | Notifications for new messages, replies to announcements, important alerts, and activity on the user's own content. |
| DEMO data | Seed/demo entries in the development environment, explicitly marked as DEMO; never impersonating real residents and never fabricating real reviews. |
| Masked location | The relational, safe representation of position („~300 m od Ciebie", „Stare Stawy", „okolice ul. X") that never exposes exact coordinates or addresses. |
| RLS | Row Level Security — database-level access control enforced in Supabase, not solely in the frontend. |
| PWA | Progressive Web App — installable, manifest-driven, service-worker-cached web application that behaves like a mobile app. |
| MVP | Minimum Viable Product — the first released scope defined in Section 3. |
| ZIP delivery | The single downloadable archive containing the complete finished project (source, backend, migrations, DEMO seed, PWA assets, .env.example, documentation), excluding secrets and generated artifacts. |
| Bajery (extras) | The post-delivery, additive enhancements that polish the site within the accepted scope, without gamification, likes, rankings, or new data collection. |

Pożycz. Pomóż. Zapytaj. Oddaj. Dowiedz się, co dzieje się obok Ciebie.
Bo czasami najlepsza pomoc jest 200 metrów od Ciebie.
Potrzebuję pomocy z wniesieniem szafy na drugie piętro.
Awaria oświetlenia przy wejściu do klatki — zgłoszone do administracji.
Drabina i odkurzacz piorący są wolne w ten weekend.
Wszystko, co sąsiedzi dodali ostatnio — ogłoszenia, prośby o pomoc, rzeczy do pożyczenia i alerty z okolicy. Bez kategorii na trzydzieści zakładek.
DEMO · przykładowe wpisy, nie prawdziwa aktywność sąsiadówPotrzebuję na jedno popołudnie, żeby zawiesić półki. Oddam tego samego dnia, oczywiście sprawną.
Kilka siatek, wszystko wyprane i poskładane. Do odbioru u mnie na klatce, najlepiej w ten weekend.
Pęk kluczy z breloczkiem leżał przy wejściu do klatki. Leżą u mnie i czekają na właściciela.
Mam jedną paczkę do odebrania po drodze. Oczywiście dorzucę się do paliwa.
Wysoka drabina na jedno przedpołudnie — chcę przeczyścić rynny przed deszczami. Pomogę przy wynoszeniu.
Rudy kot z jasną obrożą, ostatnio widziany przy ogródkach. Jeśli go widzisz, napisz do właściciela.
Szukaj po tytule, treści i kategorii. Gdy znasz swoją okolicę, zawęź wyniki do wybranego promienia.
W promieniu 3 km widzisz 6 wpisów i 9 lokalnych fachowców.
Każda sprawa ma swoje miejsce, więc nic nie ginie w jednym długim feedzie.
Ogłoszenia z okolicy w jednym, uporządkowanym miejscu — od „oddam" po „szukam".
Krótkie prośby o wsparcie: wniesienie szafy, odebranie paczki, podwiezienie.
Wiertarka, drabina, odkurzacz piorący — rzeczy, które wystarczy pożyczyć od sąsiada.
Ważne informacje z okolicy, wyróżnione na tle zwykłych ogłoszeń.
Katalog polecanych usług z najbliższej okolicy, z kategoriami i opiniami.
Rozmowy jeden na jeden — bez grup, bez szumu, tylko konkretna sprawa.
Odpowiedzi na Twoje ogłoszenia, nowe wiadomości i ważne alerty z osiedla.
Katalog usług z kategoriami, obszarem działania i opiniami. Status „zweryfikowany" nadaje moderator — nie użytkownik.
DEMO · układ katalogu, bez prawdziwych wpisówZamiast jednego długiego formularza — jedno krótkie pytanie, a potem kilka pól.
Pięć miejsc, wszystkie w zasięgu kciuka.
Jedno miejsce zamiast grupy na Facebooku, Messengera i kartki na klatce. Lokalnie, prosto i bez zbędnych funkcji.
Dla mieszkańców Starych Stawów w Oświęcimiu

Pożycz. Pomóż. Zapytaj. Oddaj. Dowiedz się, co dzieje się obok Ciebie.
Bo czasami najlepsza pomoc jest 200 metrów od Ciebie.
Potrzebuję pomocy z wniesieniem szafy na drugie piętro.
Awaria oświetlenia przy wejściu do klatki — zgłoszone do administracji.
Drabina i odkurzacz piorący są wolne w ten weekend.
Wszystko, co sąsiedzi dodali ostatnio — ogłoszenia, prośby o pomoc, rzeczy do pożyczenia i alerty z okolicy. Bez kategorii na trzydzieści zakładek.
DEMO · przykładowe wpisy, nie prawdziwa aktywność sąsiadówPotrzebuję na jedno popołudnie, żeby zawiesić półki. Oddam tego samego dnia, oczywiście sprawną.
Kilka siatek, wszystko wyprane i poskładane. Do odbioru u mnie na klatce, najlepiej w ten weekend.
Pęk kluczy z breloczkiem leżał przy wejściu do klatki. Leżą u mnie i czekają na właściciela.
Mam jedną paczkę do odebrania po drodze. Oczywiście dorzucę się do paliwa.
Wysoka drabina na jedno przedpołudnie — chcę przeczyścić rynny przed deszczami. Pomogę przy wynoszeniu.
Rudy kot z jasną obrożą, ostatnio widziany przy ogródkach. Jeśli go widzisz, napisz do właściciela.
Szukaj po tytule, treści i kategorii. Gdy znasz swoją okolicę, zawęź wyniki do wybranego promienia.
W promieniu 3 km widzisz 6 wpisów i 9 lokalnych fachowców.
Każda sprawa ma swoje miejsce, więc nic nie ginie w jednym długim feedzie.
Ogłoszenia z okolicy w jednym, uporządkowanym miejscu — od „oddam" po „szukam".
Krótkie prośby o wsparcie: wniesienie szafy, odebranie paczki, podwiezienie.
Wiertarka, drabina, odkurzacz piorący — rzeczy, które wystarczy pożyczyć od sąsiada.
Ważne informacje z okolicy, wyróżnione na tle zwykłych ogłoszeń.
Katalog polecanych usług z najbliższej okolicy, z kategoriami i opiniami.
Rozmowy jeden na jeden — bez grup, bez szumu, tylko konkretna sprawa.
Odpowiedzi na Twoje ogłoszenia, nowe wiadomości i ważne alerty z osiedla.
Katalog usług z kategoriami, obszarem działania i opiniami. Status „zweryfikowany" nadaje moderator — nie użytkownik.
DEMO · układ katalogu, bez prawdziwych wpisówZamiast jednego długiego formularza — jedno krótkie pytanie, a potem kilka pól.
Pięć miejsc, wszystkie w zasięgu kciuka.
Jedno miejsce zamiast grupy na Facebooku, Messengera i kartki na klatce. Lokalnie, prosto i bez zbędnych funkcji.
Dla mieszkańców Starych Stawów w Oświęcimiu
No comments yet. Be the first!