About
Pinflow este o platformă de crowdsourced delivery menită să simplifice procesul de livrare a coletelor pe distanțe scurte și medii. 📦
Feature-uri ale platformei:
- Plasare de comenzi: Dorești să trimiți un colet din punctul A în punctul B? Plasează o comandă și așteaptă ca un alt utilizator să accepte livrarea! 🚀
- Livrează comenzi și încasează bani: Pe Pinflow poți vedea comenzile ce așteaptă să fie livrate în zona ta. Acceptă și livrează comanda pentru a fi recompensat! 💸
- Urmărire în timp real a curierului: Ai un colet în curs de livrare? Urmărește locația curierului în timp real pentru a ști exact când va ajunge la destinație. 📍
- Comunică prin chat în timp real: Comunică eficient cu curierul folosind chat-ul disponibil la fiecare livrare. 💬
Internaționalizare și accesibilitate
- Mod Light/Dark
- Interfață internaționalizată folosind next-intl (opens in a new tab). Limbi disponibile: Română 🇷🇴 și Engleză 🇺🇸/🇬🇧
- Chat tradus automat folosind Cloud Translation API (opens in a new tab) 🌐
Arhitectura platformei
Am adoptat o arhitectură bazată pe microservicii, asigurând astfel că fiecare componentă a platformei este scalabilă și independentă. 🏗️
Tehnologii
Detaliile tehnice ale platformei Pinflow:
Frontend:
- Next.js: Framework-ul principal utilizat pentru dezvoltarea aplicației frontend, oferind performanță și flexibilitate.
- shadcn/ui: O colecție de componente UI care ajută la construirea unei interfețe moderne și coerente.
- TailwindCSS: Un framework CSS utilitar ce permite stilizarea rapidă și eficientă a interfeței.
Backend:
- tRPC: Soluția folosită pentru a conecta frontend-ul cu backend-ul într-un mod eficient și tipat.
- Next.js App Router: Utilizat pentru a gestiona routing-ul aplicației web principale.
- Go: Limbajul folosit pentru microserviciul de urmărire a locației curierului în timp real, datorită performanței sale ridicate și fiabilității.
Servicii third-party:
- Stripe: Integrat pentru procesarea plăților, asigurând tranzacții sigure și rapide 💳
- Flagsmith: Utilizat pentru implementarea de "feature flags" printr-o instanță self-hosted, oferind control granular asupra funcționalităților platformei 🏴
Develop, Test, Deploy!
În realizarea proiectului, am pus un accent deosebit pe testarea eficientă. Am scris teste de integrare folosind Jest (opens in a new tab) și Testcontainers (opens in a new tab) împreună cu Docker (opens in a new tab). De asemenea, am realizat teste end-to-end folosind Cypress (opens in a new tab). 🧪
Procesul de testare este automatizat folosind un pipeline de Continuous Integration prin intermediul GitHub Actions (opens in a new tab) ⚙️
Pentru deployment, folosesc Railway (opens in a new tab) atât pentru baza de date cât și pentru toate celelalte servicii utilizate în cadrul proiectului. 🚀
Cerințe de sistem
Pentru utilizarea platformei:
- Browser modern (Google Chrome, Mozilla Firefox, Safari, etc.)
- Conexiune la internet
Pentru dezvoltare:
- MacOS, Linux sau Windows, cu cel puțin 8GB RAM, recomandat 16GB
- Node.js 22.x
- Go 1.22.x
- Docker
- Orice editor de text (VS Code, IntelliJ IDEA, etc.)