amin norollah.
Loading portfolio
En B2B-marknadsplats för grossistinköp till nordiska livsmedelsbutiker, byggd kring en motor som föreslår vad varje butik behöver beställa

FullstackWebbFocalPay

FocalPay Marketplace

En B2B-marknadsplats för grossistinköp till nordiska livsmedelsbutiker, byggd kring en motor som föreslår vad varje butik behöver beställa

År
apr. 2026
Typ
Fullstack
Tekniker
17
Spår
Webb

Detaljer

På FocalPay Marketplace köper butiker från grossister och producenter på de nordiska marknaderna, på svenska, danska, norska, isländska och engelska. Det viktigaste är beställningsförslagen: systemet tittar på aktuellt lager och hur fort varorna säljer, visar vad som håller på att ta slut, föreslår en mängd som klarar minsta orderkvantitet och väljer den billigaste leverantören. Butiken lägger förslagen i varukorgen med ett klick. Runt det finns katalog, varukorg och order, meddelanden, logistik, hantering av handelspartner och en adminpanel för hela plattformen.

FocalPay fungerar som förmedlare och hanterar aldrig själva betalningarna mellan parterna. Varje order sparas som en komplett post som inte kan ändras i efterhand, och FocalPay tar betalt genom en provision som faktureras en gång i månaden.

Jag är huvudutvecklare och står för ungefär 110 av de första 155 commitsen, i både frontend och backend. Frontend är skriven i Angular 22 på det moderna sättet: utan zone.js, med signals, fristående komponenter och OnPush. Tabellerna bygger på TanStack Table med virtuell scroll och utseendet på Tailwind v4 med designtokens. Backend är en modulär monolit i Java 25 och Spring Boot 4.1, uppdelad i sju avgränsade kontexter med hexagonal struktur, där ArchUnit ser till att modulgränserna hålls. Databasen är PostgreSQL med 39 Flyway-migreringar, API:et har runt 150 endpoints och orderflödet är modellerat som en tillståndsmaskin. Inloggningen bygger på Spring Authorization Server, och varje användare ser bara sin egen organisations data.

Pengar och språk fick mycket omsorg. Belopp lagras i minsta valutaenhet och varje valuta har sina egna regler (isländska kronor har till exempel inga decimaler), momsen räknas per land, sortering och sökning följer varje språks alfabet och översättningarna klarar även isländskans pluralformer. Jag har skrivit över 30 ADR:er och lagt in egna kontroller i bygget som stoppar saknade översättningar, felaktig pengahantering och tillfälliga lösningar som har blivit kvar för länge. Plattformen byggs ut steg för steg inför den första pilotbutiken.

Tekniker

  • Angular
  • TypeScript
  • Signals
  • Tailwind CSS
  • TanStack Table
  • Java
  • Spring Boot
  • PostgreSQL
  • Flyway
  • MongoDB
  • Hexagonal Architecture
  • DDD
  • OAuth 2.1
  • ArchUnit
  • Testcontainers
  • Playwright
  • i18n

Erfarenhet

Projekt

Ingen offentlig länk - kommersiellt eller internt projekt