Pinflow - Web - Bihor - Lucrari 2024 Nationala

Informatii generale

Descriere

Pinflow este o platformă de crowdsourced delivery menită să simplifice procesul de livrare a coletelor pe distanțe scurte și medii. :package:

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! :rocket:
  • 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! :money_with_wings:
  • 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. :round_pushpin:
  • Comunică prin chat în timp real: Comunică eficient cu curierul folosind chat-ul disponibil la fiecare livrare. :speech_balloon:

Internaționalizare și accesibilitate

  • Mod Light/Dark
  • Interfață internaționalizată folosind next-intl. Limbi disponibile: Română :romania: și Engleză :us:/:uk:
  • Chat tradus automat folosind Cloud Translation API :globe_with_meridians:

Arhitectura platformei

Am adoptat o arhitectură bazată pe microservicii, asigurând astfel că fiecare componentă a platformei este scalabilă și independentă. :building_construction:

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 :credit_card:
  • Flagsmith: Utilizat pentru implementarea de “feature flags” printr-o instanță self-hosted, oferind control granular asupra funcționalităților platformei :black_flag:

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. :test_tube:

Procesul de testare este automatizat folosind un pipeline de Continuous Integration prin intermediul GitHub Actions :gear:

Pentru deployment, folosesc Railway atât pentru baza de date cât și pentru toate celelalte servicii utilizate în cadrul proiectului. :rocket:

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ș

Screenshots