Siirry sisältöön

Tapaustutkimus

Dice Cat: Pöytäpelien treffisovellus

Rooli: Käyttäjäkokemussuunnittelija ja täyden full-stack-kehittäjäKesto: 2024-2026Tila: Saatavilla Google Playssa
ReactIonicTypeScriptSupabasePostgreSQLPostGISFirebase Cloud Messaging

Ongelma

Lautapelien harrastajat keräävät suuria kokoelmia ja kehittävät vahvoja mieltymyksiä, mutta on todella vaikeaa löytää paikallisia pelaajia, joilla on samat pelit, jotka sopivat aikataulultaan yhteen ja joiden pelityyli on samanlainen. Nykyiset vaihtoehdot – Facebook-ryhmät, Discord-palvelimet, Meetup – vaativat manuaalista koordinointia, eikä niissä ole pelivalikoiman yhteensovitusominaisuutta.

Keskeinen toive: kehitä lautapeleille Tinderin kaltainen sovellus, joka todella tuntee pelikokoelmasi.

Yleiskatsaus

Tuote sai alkunsa nimellä "Meeplr" – käyttökokemuskonseptina, jota edelsi perusteellinen tutkimus jo ennen kuin yhtään riviä koodia oli kirjoitettu.

  • ·Kilpailuanalyysi nykyisistä yhteisö- ja parinmuodostustyökaluista
  • ·Käyttäjäprofiilin luominen – muualta muuttanut pelaaja, jolla ei ole paikallista peliryhmää
  • ·Kolme kierrosta ääneen ajattelua hyödyntävää käytettävyystestausta, johon osallistui 15 henkilöä
  • ·Kano-analyysi: kaikki suunnitellut MVP-ominaisuudet todettiin toimiviksi tai houkutteleviksi
  • ·Nimeksi muutettiin Dice Cat, kun tavaramerkkitutkimus esti alkuperäisen nimen käytön – nimi jäi paremmin mieleen testissä

Tärkeimmät ominaisuudet

  • ·Moniulotteinen paritus: pelikirjastot, maantieteellinen läheisyys, aikataulujen päällekkäisyydet ja pelityylimieltymykset
  • ·Yli 10 000 pelin tietokanta, jossa on paikallinen sumehaku ja mahdollisuus lisätä pelejä manuaalisesti
  • ·Visuaalinen viikkosuunnitelman laatija, jossa tunnistetaan mahdollisten aikataulujen päällekkäisyydet
  • ·Yhteyspyyntöjärjestelmä, jossa suoritetaan keskinäinen yhteensovitus ennen viestien lähettämistä
  • ·Salattu sovelluksen sisäinen viestintä istuntojen suunnittelua varten
  • ·Push-ilmoitukset Firebase Cloud Messagingin kautta
  • ·Mukautettava SVG-avatarien luontityökalu, jossa on kerroksellinen komponenttijärjestelmä
  • ·Lähellä olevien pelaajien karttanäkymä PostGIS-paikkatietokyselyjen avulla

Kuvakaappaukset

Discover - match feed
Gaming sessions
Game Hub
Profile with custom avatar

Tekninen arkkitehtuuri

FrontendReact ja Ionic-kehys luonnollisen tuntuisen mobiilikäyttöliittymän luomiseen
LanguageTypeScriptia kauttaaltaan
BackendSupabase (PostgreSQL, käyttäjätunnistus, reaaliaikaisuus) rivikohtaisella tietoturvalla
GeospatialPostGIS lähikyselyihin – aika lyhennetty 3–5 sekunnista alle 500 millisekuntiin strategisen indeksoinnin avulla
Push notificationsFirebase Cloud Messaging on siirretty Supabase Edge Functions -palveluun luotettavan käyttöoikeuksien hallinnan varmistamiseksi
MessagingSalattu sovelluksen sisäinen viestintä Supabase Realtime -tilauksilla
Game databaseAlun perin BoardGameGeek-sovellusliittymä; rakennettiin uudelleen paikalliseksi tietokannaksi, kun sovellusliittymän käyttöoikeudet lakkautettiin
BuildAndroid Studio Google Play -julkaisujen luomiseen

Tekniset kohokohdat

Tietokannan suorituskyky

Ottelupisteiden laskemiseen käytetyt monitaulukoiden JOIN-kyselyt kestivät alun perin 3–5 sekuntia. Strategisen PostGIS-indeksoinnin ja kyselyjen uudelleenrakentamisen ansiosta niiden suoritusaika lyheni alle 500 millisekuntiin.

Ulkoisen sovellusliittymän riippuvuuden virhe

BoardGameGeek lopetti API-käytön kesken kehitystyön. Siirryimme rakentamaan paikallista, yli 10 000 pelin tietokantaa, johon yhteisö voi lisätä sisältöä – näin saimme paremman toimivuuden offline-tilassa eikä tulevaisuudessa ole riippuvuusriskiä.

Push-ilmoitusten käyttöoikeuksien rakenne

Trigger-pohjaisessa ratkaisussa ilmeni käyttöoikeusvirheitä tuotantoympäristössä. Siirrettiin logiikka Supabase Edge Functions -palveluun, mikä ratkaisi käyttöoikeusongelman tyylikkäästi.

Linkit