Informatii generale
- Categorie: Web
- Judetul: Bihor
- Homepage: https://pinflow.app
Descriere
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. Limbi disponibile: Română și Engleză /
- Chat tradus automat folosind Cloud Translation API
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 și Testcontainers împreună cu Docker. De asemenea, am realizat teste end-to-end folosind Cypress.
Procesul de testare este automatizat folosind un pipeline de Continuous Integration prin intermediul GitHub Actions
Pentru deployment, folosesc Railway atât pentru baza de date cât și pentru toate celelalte servicii utilizate în cadrul proiectului.
Cerinte 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.)
Realizatori
Paul Tal
- Scoala: Colegiul Național “Samuil Vulcan”
- Clasa: 11
- Judet: Bihor
- Oras: Beiuș