Tregu i Pronave
En produktionssatt fastighetsplattform för Albanien, byggd kring bostadssökning, publicering, byråflöden och plattformsadministration.
Besök live-projektet →Tregu i Pronave är en fullstack-plattform för fastighetsmarknaden i Albanien, utvecklad som ett kundprojekt. Jag byggde plattformen för att samla bostadssökning, publicering av objekt, professionella profiler, förfrågningar och administrativ hantering i en tvåspråkig produkt för privatpersoner, byråer och byggföretag. Resultatet är en produktionssatt plattform, inte enbart en marknadsföringssajt för fastigheter.
Marknadsplatsens startsida samlar fastighetssökning, ingångar för köp och uthyrning, publicering och byråöversikt.
En marknadsplats med flera sidor
Plattformen behövde stödja mer än en publik katalog över objekt. Personer som söker bostad behöver en tydlig väg från upptäckt till publicerare, medan privatpersoner och professionella publicerare behöver verktyg för att publicera och hantera sitt utbud. Administratörer behöver insyn och kontroller för plattformen bakom de publika flödena.
Fastighetssökning → objektsida → publicerare → direktkontakt eller förfrågan.
Konto → publicering → hantering → förfrågningar → uppdaterings- och modereringslivscykel.
Fastighetssökning
Sökningen är byggd kring objekt för köp och uthyrning, fastighetskategorier, stad och område, publicerartyp, pris, storlek, sovrum, badrum och våningsintervall. Besökare kan också använda fritextsökning, sortering och paginering, medan filterläget kan delas via URL:en. Inloggade användare kan spara objekt till senare.
Filtren tillämpas genom serverns API- och databaslager, inte bara i webbläsaren. Det håller den publika sökupplevelsen kopplad till marknadsplatsens underliggande data när katalogen förändras.
Från objektsida till kontakt
Varje objekt samlar bildgalleri, strukturerade fastighetsattribut, plats, publiceraridentitet och tillgängliga kontaktvägar på en sida. Där koordinater finns kan objektet också visa sin kartposition. Flödet är utformat för att hjälpa en besökare förstå objektet, identifiera publiceraren och ta kontakt utan att plattformen framställs som ett transaktions- eller betalningssystem.
Objektsidan kopplar rik objektinformation till publiceraridentitet, direktkontakt och en förfrågningsåtgärd.
Byggd även för professionella aktörer
Tregu i Pronave stödjer individuella konton tillsammans med fastighetsbyråer och byggföretag. Professionella publicerare kan ha en publik närvaro med profilbilder eller logotyper, konfigurerade externa länkar och en egen objektkatalog. Den publika byråkatalogen gör dessa profiler till en del av upptäcktsupplevelsen i stället för att lämna marknadsplatsen som en samling isolerade annonser.
Byråöversikten ger professionella publicerare en synlig plats på marknadsplatsen vid sidan av deras objekt.
Operativ arbetsyta för publicerare
Inloggade användare har en arbetsyta, inte bara en publik profilsida. Där kan publicerare lägga upp objekt, hantera och förnya annonser, redigera sin profil, se sparade objekt och hantera inkommande förfrågningar. Behöriga användare kan också nå den administrativa ytan genom rollmedveten navigering.
Den inloggade arbetsytan skiljer säljarens och publicerarens flöden från den publika marknadsplatsen.
Plats- och referensverktyg
Kartor används för att fånga och kommunicera plats, inte som en kartcentrerad resultatsökning. Vid publicering finns en Google Maps-baserad platsväljare med Places-autocomplete, geokodning, webbläsargeolokalisering samt dragbar eller klickbar positionsval. Latitud och longitud lagras med objekten, medan albanska kommun- och stadspolygoner samt zonlogik för Tirana stödjer platsupplösning och en separat referenskartupplevelse.
Platsfångst, polygonbaserade referenszoner och introduktion för publicerare går längre än grundläggande objektfält.
En verklig livscykel för annonser
Objekt har en operativ livscykel utöver grundläggande åtgärder för att skapa, redigera och ta bort. Implementationens publiceringsstatus är skild från modereringsstatus och stöder publicering, utgång, förnyelse, avstängning, ändringsbegäranden, lyft, återställning och borttagning. Det ger publicerare och administratörer skilda ansvar när objekt rör sig genom plattformen.
Administration bakom marknadsplatsen
Den administrativa ytan stödjer plattformsstatistik, användar- och objekthantering, sökning och filtrering av objekt, moderering, godkännandeflöden, ändringsbegäranden, avstängning och återställning. Den omfattar även annonsförnyelser och lyft, hantering av lyft, översikt över förfrågningar, schemalagda tvåspråkiga startsidesbanners och modereringshistorik, med en behörighetshierarki för root och administratör.
Administrations- och modereringsverktygen gör produkten till en operativ plattform, inte bara en publik marknadsplats.
Förfrågningar, media och produktionsgrunder
Förfrågningsflödet sparar en besökares förfrågan mot ett objekt och visar den i publicerarens inkorg, där den kan följas som kontaktad eller arkiverad. En publicerare kan också erbjuda direktkontakt via telefon eller WhatsApp när det är konfigurerat. Detta är leadinsamling och hantering av säljarförfrågningar, inte en chatt i appen eller ett fullt CRM.
Objektbilder behandlas som en produktfunktion. Autentiserade uppladdningar valideras och begränsas innan Sharp bearbetar responsiva WebP-varianter för S3-kompatibel lagring. Ersatt media kan rensas när objektet förändras.
Plattformen innehåller också SEO-grunder för en Vite-baserad single-page application: objektslugs, kanonisk och social metadata, strukturerad objekts- och breadcrumb-data, dynamisk sitemap, robots-regler samt interna länkar för städer och kategorier. Publika och operativa gränssnitt stödjer albanska och engelska, med tvåspråkig innehållsinfrastruktur för startsidesbanners och metadata där det är relevant.
Teknisk översikt
- React 19, TypeScript och Vite för marknadsplatsen, kontodashboards och administrationsgränssnittet.
- React Router och TanStack React Query för routing, API-tillstånd och mutationsflöden.
- Node.js och Express REST API för marknadsplatsens och driftens affärslogik.
- PostgreSQL och Prisma för användare, objekt, media, sparningar, förfrågningar, sessioner och modereringsstatus.
- JWT-autentisering med beständig refresh-session-rotation och serverbaserad rollauktorisering.
- S3-kompatibel objektlagring och Sharp-bearbetade responsiva WebP-bilder.
- Google Maps och Places samt egen polygonbaserad platslogik för Albanien och Tirana.
- Zod-validering, rate limiting, bakgrundsjobb för utgång, strukturerad loggning, CI och hälsokontroller.
Aktivitet i produktion
Tidiga produktionssiffror, uppmätta under de första veckorna efter lansering. Avrundade värden från en första analysmätning — inte aktuella totaler, som sannolikt är högre i dag.
Tekniska skyddsåtgärder
Serverbaserade rollkontroller, request-validering, lösenordshashning och roterande beständiga refresh-sessioner stödjer konto- och publicerarflöden. Känsliga och publika endpoints använder rate limiting, medan uppladdningar har validerings- och bearbetningsgränser. Strukturerade fel, loggning, hälsokontroller och schemalagd hantering av utgång stödjer plattformen i drift.