Sari la conținut
Studiu de caz

M2M

O piață de anunțuri imobiliare pentru o țară întreagă — apartamente, terenuri, birouri și garaje, cu fotografii, video și hartă. Unsprezece programe separate în spatele unui singur site.

Platforma de anunțuri imobiliare M2M: pagina de anunțuri cu filtre și trei ecrane de telefon
20de feluri de proprietate 121de filtre de căutare 11programe care conlucrează 3limbi
Ce am construit

Oricine poate publica un anunț, dar nimic nu apare public de la sine.

Douăzeci de feluri de proprietate

De la o cameră la un depozit, un garaj sau un teren. Fiecare fel are câmpurile lui, regulile lui și filtrele lui.

Cinci feluri de cont

Un proprietar particular, un agent, o agenție, un dezvoltator și un magazin văd fiecare alt site.

Fiecare anunț e verificat

Oamenii din echipă citesc fiecare anunț nou și fiecare înregistrare nouă, apoi îl aprobă sau îl resping cu un motiv scris, care ajunge la cel care l-a publicat.

Trei limbi, și o a doua piață

Tot site-ul în română, rusă și engleză. O piață de materiale de construcții a fost adăugată mai târziu, lângă cea imobiliară.

Cum funcționează

Cititul și scrisul, ținute separat dinadins.

  1. 1

    Partea care caută

    Un program nu face nimic altceva decât să răspundă la întrebări: găsește-mi proprietățile astea, arată-mi vânzătorul ăsta. Pe un site de anunțuri, răsfoitul se întâmplă de o mie de ori mai des decât publicatul.

  2. 2

    Partea care publică

    Un al doilea program nu face nimic altceva decât să schimbe lucruri: publică anunțul ăsta, modifică-l, scoate-l. Despărțite în două, partea care caută poate fi reglată doar pentru viteză, fără ca partea care publică să-i stea în cale.

  3. 3

    Tot ce e în jurul lor

    Autentificarea, fotografiile și video, moderarea, plățile, notificările — fiecare un program mic al lui, toate având încredere în același permis de intrare.

Despărțirea cititului de scris e hotărârea pe care se sprijină toată platforma. E și cea care costă cel mai mult dacă e greșită, fiindcă de atunci încolo cele două părți trebuie să se înțeleagă asupra tuturor lucrurilor fără să vorbească vreodată direct.

Construit cu

Unelte obișnuite, de unsprezece ori la rând.

În browser

Ce vede vizitatorul. Paginile se desenează întâi pe server, deci un anunț se deschide repede și motoarele de căutare îl pot citi.

  • TypeScript
  • React 17
  • Next.js 12
  • Material UI

Pe servere

Nouă programe mici, aproape toate în același limbaj, deci cine învață unul poate lucra la oricare dintre ele.

  • Go 1.17
  • Gin
  • FastAPI

Unde stau datele

O bază de date pentru anunțuri, o memorie rapidă în fața ei și stocare în cloud pentru fotografii și video.

  • MongoDB
  • Redis
  • Stocare în cloud

Cum a fost livrat

Fiecare program în cutia lui, toate pe un singur cluster administrat, iar clusterul însuși scris ca fișier de cod, nu făcut din clicuri.

  • Docker
  • Kubernetes
  • Terraform
  • GitLab CI
Părțile grele

Trei probleme care nu se puteau cumpăra de-a gata.

Formularul se construiește singur

Un apartament de închiriat și un depozit de vânzare cer întrebări cu totul diferite. În loc de douăzeci de formulare scrise de mână, site-ul întreabă serverul ce să întrebe și desenează formularul din răspuns. Un fel nou de proprietate se poate adăuga fără să se atingă site-ul deloc.

121 de filtre, o singură întrebare

Preț, etaj, camere, renovare, mobilă, parcare, animale, oraș, sector, stradă. Fiecare trebuie să devină parte dintr-o singură întrebare la care baza de date poate răspunde repede.

Prețuri comparate între valute

În fiecare noapte platforma descarcă cursurile oficiale ale băncii naționale și convertește intervalul de preț al cumpărătorului înainte să-l compare. Fără asta, o bună parte din catalog e invizibilă pentru orice căutare.

Lucrarea

Circa 1.800 de ore de lucru, pe parcursul a treisprezece luni.

Construit în 2021 și 2022 de o echipă de nouă oameni. Platforma nu mai e online, deci nu avem unde să te trimitem.

13 lunide la primul commit la ultimul
Contactează-ne

Ai o idee de proiect? Solicită o ofertă!

Ai un proiect? Scrie-ne dacă vrei să lucrăm împreună la ceva interesant. Sau ai nevoie de ajutorul nostru? Nu ezita să ne contactezi.