Preț benzină – Win 8 App

A trecut aproximativ o lună de când am publicat aplicația Preț Benzină pe Windows 8. Am ajuns la ~500 de download-uri și în medie 20 persoane folosesc zilnic aplicația dintre care 8 persoane/zi trimit un update pentru preț.

Pe scurt

Aplicație cu backend în Azure, mobile services: utilizatorii adaugă prețul, informațiile sunt salvate într-o bază de date, acolo sunt calculate valorile și puse într-un alt tabel de unde vor fi trase de către cei care vor să vadă cât mai costă combustibilul prin intermediul aplicației.

pret benzinza

Updates

Ce îmi place mie cel mai mult la aplicație (și lucru pentru care sunt și mândru) este faptul că are backend în azure! Astfel încât pot modifica algoritmul cât vreau eu fără ca nimeni să își dea seama. Evitând astfel foarte multe probleme. Practic utilizatorul are doar scheletul care cere informații: nu calculează, nu interpretează, doar serializează/deserializează.

Propriuzis aplicația a primit un singur update în store, cel în care am adăugat și posibilitatea să vezi prețul motorinei 🙂

Probleme #1: big numbers

La început am zis că updatez eu sistemul zilnic și că fac o medie/verific prețul potrivit. După 2 zile m-am plictisit și am făcut un sistem automat de verificare, practic făcea o medie dintre toate valorile primite.

Probleme #2: idiots

După o săptămână am văzut în aplicație că prețul la benzină a urcat la ~400 lei! Semnal de panică am căutat să văd care este problema și se pare că unele persoane nu puteau punct/virgulă și adăugau prețuri sub forma: 558, 620 etc. Astfel că valoarea primită o luam ca pe un string, dacă avea virgulă/punct o eliminam și dacă nu avea îi adăugam după fix o cifră! Astfel încât 558 devenea 5.58.

Probleme #3: trolls

Normal că pe internet umblă trolii și aplicația mea nu putea să fie o excepție. Astfel că au apărat persoane care puneau valori de genul 99999, datorită update-ului precedent valoarea ajungea să fie 9.9999 astfel că a trebuit să lucrez la un algoritm care să treacă prin toate valorile și să excludă extremele (orice creștere/scădere mai mare de 10%)

Probleme #4: big numbers 2

Well, cum tot primesc valori, nu mai era o idee bună să am media tuturor prețurilor. Așa că am făcut o medie, am tăiat prețurile care sar de acel 10% mai mare sau mai mic și am creat o valoare X care va fi mereu cea afișată. Inițial voiam să renunț de tot la media aceea și să rămână doar prețul actual care va fi cel mai mare și respectă restul cerințelor, dar nu acopeream două aspecte:

  • De unde știu dacă prețul scade sau urcă.
  • Trolii care ar fi putut adăuga mereu 10% din X+ 10% din noul X +…..

Probleme #5: more trolls

Well, am găsit un utilizator supărat care a vrut să rupă sistemul și mi-a adăugat într-o singură oră vreo 200 (!) de valori modificându-mi prețul la motorină la ~8 lei prin modificarea mediei și rămânând în acel 10%!! Am șters valorile adăugate în exces și am introdus o limită de 5 valori/zi de persoană.

The future

Urmează într-o săptămână să lansez și aplicația pe Windows Phone 8! Nu ar trebui să-mi ia mai mult de o zi de codat, dar timpul nu-mi permite în momentul de față.

Urmând să lansez aplicația și pe telefon mă aștept să crească și numărul persoanelor care îmi fac probleme 🙂 Așa că, what have i missed? Ce ar trebui să mai adaug la aplicația mea pentru a o face idiot/troll/big numbers proof? Credeți că mai poate fi păcălit în vreun fel sistemul? CUM?




Leave a Comment

Blog

Recent posts