Trampa: marketplace za razmjenu
Marketplace u kojem se predmeti mijenjaju, a ne prodaju.
Trampa je platforma za razmjenu predmeta koju je FIN STUDIO dizajnirao i razvio. Ovdje je jer pokazuje logiku koju marketplace i prodaja s više prodavatelja traže: dvije strane transakcije, pregovaranje, reputaciju i komunikaciju vezanu uz konkretnu razmjenu.
- Odnos
- Dizajn i razvoj FIN STUDIO
- Model
- Marketplace (C2C)
- Status
- Prototip
- Javna stranica
- trampa.
app (otvara se u novoj kartici)
Tijek razmjene
U webshopu kupac plaća cijenu. U razmjeni se dvije strane dogovaraju, pa je jezgra sustava stanje razmjene: tko je što ponudio, što je prihvaćeno i je li se razmjena stvarno dogodila.
Platforma je krenula javnom stranicom s listom čekanja u vlastitoj bazi. Odluke iz obje faze opisujemo u tekstu kako smo izgradili landing page i marketplace za Trampu.
Prijedlog razmjene
Korisnik za tuđi predmet nudi svoj ili vlasniku oglasa šalje poruku s ponudom. Primatelj prijedlog prihvaća ili odbija, a predlagatelj ga može otkazati; svaka razmjena ima jedno od pet stanja, a završena ima i vrijeme završetka.
Razgovor uz razmjenu
Poruke se spremaju uz razmjenu, pa je dogovor uvijek uz predmete o kojima se razgovara. Oznaka nepročitanih osvježava se u izborniku.
Potvrda primopredaje
Kad se korisnici nađu, svaki potvrđuje primopredaju. Kad potvrde obje strane, razmjena je završena i svaka strana dobiva 100 bodova, a potvrde s lokacija udaljenih najviše jedan kilometar donose svakoj još 25.
Ocjene
Nakon razmjene strane se međusobno ocjenjuju. Prosjek ocjena i broj ocjena stoje uz profil i na ljestvici.
Oglasi
Pretraga po udaljenosti
Oglasi se mogu filtrirati po udaljenosti od odabranog mjesta ili lokacije korisnika, u radijusu koji korisnik odabere. Filtar obavlja server, a isti oglasi mogu se pregledati i na karti.
Slike
Slike oglasa spremaju se u vlastitu pohranu platforme (Supabase Storage), do 5 MB po slici, a neiskorištene fotografije periodički se brišu.
Spremljene pretrage
Uz oglas korisnik navodi što traži zauzvrat, a pretragu s filtrima može spremiti i kasnije je ponovno otvoriti.
Reputacija i angažman
Šest rangova
Početnik, Cjenkač (500 bodova), Posrednik (1.000), Trgovac (2.500), Kolekcionar (5.000) i Tramper (10.000), s trakom napretka do sljedećeg ranga.
Bodovi
Završena razmjena 100 bodova, potvrde s iste lokacije još 25, primljena ocjena 10, ocjena 5/5 još 50 i prvi oglas 20.
Ljestvica
Korisnici poredani po bodovima, uz prosječnu ocjenu i broj ocjena.
Izazov razmjene
Korisnik bilježi niz razmjena prema cilju koji je sam opisao.
Računi i sigurnost
Prijava preko Supabase Autha, sa sesijom u kolačićima koju provjerava server. Stranice za objavu oglasa, poruke, obavijesti, favorite i postavke otvaraju se samo prijavljenom korisniku, a prijavljeni korisnik ne vidi stranice za prijavu. Administracija je zasebna aplikacija koja može suspendirati korisnike i rješavati prijave sadržaja.
Za tehnički timModel podataka, odluke i što je bilo zahtjevno
Model podataka
PostgreSQL na Supabaseu, shema u migracijama. Tablice su grupirane po onome što korisnik radi:
Korisnici
Profili, postavke, bodovi i povijest bodova te prijave neprimjerenog sadržaja.
Oglasi
Oglasi sa stanjem predmeta, slikama, lokacijom i onim što korisnik traži zauzvrat.
Razmjene
Razmjena povezuje dva korisnika i dva oglasa, uz stanje, poruke i potvrde s koordinatama obiju strana.
Zajednica
Ocjene, favoriti, spremljene pretrage, obavijesti i izazovi s nizom razmjena.
Odluke
| Odluka | Što smo odabrali | Zašto |
|---|---|---|
| Tko smije čitati i mijenjati podatke | Što smo odabraliPravila na razini retka u PostgreSQL-u (RLS), uz shemu u migracijama | ZaštoPristup se provjerava u bazi, pa ga ne može zaobići ni pogrešan upit iz aplikacije. |
| Kako dokazati da se razmjena dogodila | Što smo odabraliPotvrde obiju strana; lokacija unutar 1 km donosi bonus | ZaštoBodovi i rang vrijede samo za razmjenu koju su potvrdile obje strane, a GPS koji zakaže ne sprječava završetak. |
| Gdje računati udaljenost | Što smo odabraliNa serveru, iz lokacije oglasa i odabranog polazišta | ZaštoSvaki uređaj dobiva isti popis i istu udaljenost, a preglednik ne mora dohvatiti oglase izvan radijusa. |
Što je bilo zahtjevno
Bodovi koji se ne mogu izmisliti. Rang ima vrijednost samo ako ga je teško lažirati, pa bodove upisuju samo funkcije i okidači u bazi, jednom po razmjeni i tek kad potvrde obje strane. Isti par korisnika dobiva bodove za razmjenu najviše jednom u 30 dana, a svaki korisnik za najviše 10 razmjena u 7 dana.
Gradite marketplace ili multi-vendor?
Više prodavatelja, obračun među prodavateljima prema vašim pravilima, reputacija i narudžbe koje se dijele po prodavatelju. Opišite model. Odgovor unutar 24 sata radnim danom.
Dogovorite analizu sustava
