ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 16
Abonament PDF

DoItFor.co

Teodor Olteanu
End User Computing Lead
@Betfair



PROGRAMARE

Am participat anul acesta pentru prima dată la Startup Weekend Cluj. Și nu oricum, am mers pregătit să prezint propria mea idee. La primul pitch, această idee se numea TaskList pentru ca la sfârșitul evenimentului să se transforme în Do it for. Am pornit cu ideea unui site prin care să poți externaliza acele sarcini pe care nu știi, nu poți sau nu vrei să le faci tu. Mă gândeam aici la curățenie, spălat haine, făcut de mâncare, stat la coadă, spălat mașina, etc.

Alături de o echipă numeroasă și energică am luat locul 3 la acea competiție. Având acest feedback pozitiv și fiind foarte motivați să realizăm acest site care să ne ajute să avem mai mult timp liber am continuat să lucrăm la Doitfor în timpul liber. Din echipa inițială am rămas eu, Codin, Gabi si Victor.

Motivați și dornici să facem ceva care să fie folositor și altor oameni am lucrat cu bucurie la realizarea site-­ului. După trei luni, pe 1 iunie, am lansat site-­ul doitfor.co (cred că am fost prima echipă de la StartupWeekend care au lansat după eveniment). Așa cum este el acum, site-­ul rezolvă două probleme mari: nevoia de mai mult timp și nevoia de venituri în plus. Cine vrea să externalizeze o activitate, oricare ar fi ea, este cel mai avantajat, postează un task și cei dornici să îl ajute și să câștige bani în plus licitează pentru acest task cu suma și detaliile necesare (când, cum și în ce condiții poate realiza task­ul). Cel care a postat task­ul e singurul care vede cu ce sumă au licitat cei interesați, utilizatorii care licitează văd doar câte licitări sunt, nu și valoarea lor. Astfel evităm goana după cel mai mic preț, care nu avantajează pe nici una dintre părți.

Câteva statistici interesante de pe site: până acum au fost postate 150 de task-uri cu valori cuprinse între 10 si 3500 lei. Avem aproape 1000 de utilizatori îscriși pe site care au licitat de peste 500 de ori pe task-urile postate. În cele patru luni de la lansare site-ul a fost vizitat de aproape 10.000 de vizitatori unici, care au făcut peste 17.000 de vizite și au vizualizat de 73.000 de ori paginile site-ului. Aproape 60% au navigat pe site folosind browserul Chrome, 25% cu Firefox si doar 6% cu Internet Explorer, iar 90% din utilizatori au folosit un PC pentru a vizita site-ul, 8% un telefon mobil si 2% o tabletă.

Au fost realizate cu succes o multitudine de activități: platou sushi, montat tapet, administrat pagini de facebook, redactare de documente, prăjitură tiramisu, activități de merchandising și multe altele.

Suntem abia la începutul activității noastre și mai avem multe de făcut pe toate planurile: marketing, design, programare. Chiar dacă este multă muncă și mult timp în care am putea să ne odihnim după orele de muncă full time pe care toți le avem, satisfacția pe care ne-­o aduce este pe măsură. E super să știi că ai făcut ceva care le face oamenilor viața un pic mai ușoară.

Momentan doitfor este complet gratuit, oamenii își schimbă banii direct între ei. Sperăm ca în această toamnă să reușim să implementăm un sistem de plată electronic.

Detalii tehnice

Din punct de vedere tehnic în primul rând aveam nevoie de un limbaj de programare care să ne ajute să ne miscăm rapid. În echipa inițială erau programatori Java (Android), .NET și Python. Am ales Python pentru aplicația web, iar programatorii pentru mobil au dezvoltat în Java pentru Android o aplicație prototip care a fost prezentată la sfârșitul evenimentului. Aplicația prezentată la Startup Weekend a avut nevoie de funcționalitate minimă pentru a demonstra ideea de bază a proiectului: două formulare, unul de înscriere în site și unul de adăugare a unui task, iar pentru mobil, un API simplu compus din două funcții: una pentru a obține lista de task-uri din jurul tău, respectiv pentru a putea licita pe un task.

Pentru partea de web am ales ca framework Django. Dar pentru că aveam nevoie să interogam baza de date în funcție de locația utilizatorului, am folosit o variantă a framework-ului - GeoDjango impreuna cu PostgreSQL cu extensia PostGIS ca și bază de date. Am cumpărat o bază de date de IP-uri de la MaxMind și împreună puteam să determinăm în primul rând locația utilizatorului în funcție de IP, iar apoi să căutăm în baza de date task-uri relevante pentru utilizator sortate după distanța fată de acesta.

Tot pe partea de back-end aveam nevoie de o modalitate de a executa funcții asincron, ca de exemplu, trimiterea de mailuri sau backup la baza de date. Pentru asta am folosit Celery configurat cu un broker bazat pe Redis. Redis va fi foarte foarte probabil folosit în viitor pentru diferite sarcini în aplicație, inclusiv pentru cache, de aceea am optat pentru el în defavoarea brokerului default RabbitMQ.

Pentru partea de front-end am integrat puternica librărie de la Twitter, Bootstrap, împreună cu un limbaj dinamic pentru prezentare, numit LESS. Interacțiunea cu utilizatorul este deocamdată statică, dar pe masură ce complexitatea va creste vom alege un framework pentru front-end de asemenea, cel mai probabil AngularJS.

Deployment-ul a fost făcut pe infrastructura de la Amazon. În prima fază folosim trei micro instanțe de EC2: una pentru webserver, una pentru baza de date, iar a treia pentru sarcini administrative si asincrone. Webserverele sunt în spatele unui load balancer ELB, deși nu a fost implementată funcționalitatea de scalare automată încă.

Tot de la Amazon se folosește Route 53 pentru serviciul de DNS, SES pentru trimitere de e-mailuri și S3 pentru fișiere statice. Dacă se va adăuga suport pentru PostgreSQL la serviciul RDS, probabil vom migra spre acesta pentru baza de date.

Deja avem o multitudine de tehnologii interesante pentru un proiect la început de drum!

Vă invit să folosiți platforma și să ne spuneți cum putem să o îmbunătățim.

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects