Alle innlegg
|Også tilgjengelig på:DEENFRESITPL

Nylig ankommet - MaraDocs-demo-modus og programvarearkitektur

Vi har publisert en prøvemodus for MaraDocs som ikke krever registrering med e-postadresse. Bare klikk og prøv det ut.

Martin Kurtz
ProgramvareReduxMaraDocs
Nylig ankommet - MaraDocs-demo-modus og programvarearkitektur

Vi har brukt påskehelgen til å skrive og publisere en demo-modus for MaraDocs.

MaraDocs-bloggen er en blanding av kunngjøringsplattform for MaraDocs-relaterte hendelser, men også et sted for å dele juridiske og teknologiske tanker.

Vi er utrolig stolte...

Raui og jeg har jobbet intensivt med MaraDocs det siste året. Etter noen måneders forberedende arbeid fra min side, har vi sikkert drevet med ren produktutvikling i 8 måneder. Alltid med målet for øye: Å skape den dokumentbehandlingen for advokatfirmaer som skal befri oss alle fra smerten ved stadig dårligere kvalitet på innkommende post.

Vi har samarbeidet med noen partnerfirmaer (takk til RA Bafteh fra BSvH !) for å sikre at vi ikke utvikler forbi sluttbrukeren. Og vi har fått mange svært nyttige tips: For eksempel ble dokumentforhåndsvisningen i stor grad til basert på tilbakemelding fra en tidlig bruker (advokat i familierett fra Freiburg, tusen takk :)) og tilbakemeldinger fra sekretariatansatte ved Kanzlei Kurtz & Lynen (https://kanzlei-kurtz.net).

Vi er virkelig fornøyde med MaraDocs

Prøv MaraDocs nå uten registrering

Test demo-appen vår og oppdag alle funksjonene

Start MaraDocs-demo

...og likevel er det fortsatt en del å gjøre

Et godt produkt alene gir ikke et vellykket produkt. MaraDocs er toppklasse og brukes daglig og elskes av de som bruker det i sitt daglige arbeid. Men de som ennå ikke bruker det, kjenner det oftest ikke til ennå.

I en oppmerksomhetsoverbelastet verden er det ikke lett å få oppmerksomheten til potensielle kunder.

Veien for den potensielle kunden er lang:

  • Det finnes noe der ute...

  • Det prøver jeg ut...

  • Jeg går faktisk inn på nettsiden...

  • Jeg registrerer meg med e-postadressen min...

  • Jeg klikker på innloggingslenken jeg fikk på e-post...

  • Jeg åpner appen og legger til e-postvedlegg for optimalisering og innser at produktet er genielt.

Et godt produkt alene gir ikke et vellykket produkt.

Snarveier inn i appen

Med demo-modusen kan vi redusere veien drastisk og tilby potensielle kunder en ukomplisert, tidlig og ekte opplevelse med å prøve MaraDocs. MaraDocs er gøy: Den rene grensesnittet og flyttingen og kombinasjonen av sider til nye PDF-er har noe lekent over seg.

Samtidig koster demo-modusen oss ingenting. Som bakgrunn må man vite at opplasting av ekte filer og e-postvedlegg forårsaker kostnader i vår infrastruktur. Vi må holde visse ressurser tilgjengelige for å kunne behandle brukerforespørsler raskt og responsivt. En demo-modus som ville sende ekte filer til våre servere og ikke engang kreve registrering, kunne lett føre til at serverne våre blir overbelastet av en mengde forespørsler og at våre faktiske kunder ville lide under det.

Intelligent dokumentbehandling med MaraDocs

Med MaraDocs gjør du e-postvedlegg fra klientene dine til perfekte skanninger etterpå. Beskjær, retten opp, slå sammen, tekstgjenkjenning og mye mer.

Start gratis nå

Teknisk implementering

Vi bruker React / NextJs i frontend. React-appen som kjører i nettleseren kommuniserer i normal modus med våre servere for filbehandling via WebSocket (WebSocket er en toveis forbindelse der også serveren selvstendig, altså uten forespørsler fra nettleseren, kan sende resultater til nettleseren).

Det var viktig for meg å utvikle demo-modusen slik at den alltid reflekterer den nåværende utviklingsstatusen til MaraDocs og ikke representerer et nytt, ytterligere system som måtte utvikles separat.

Redux Middleware

En stor del av app-intern prosesslogikk styres av Redux-middlewares. Til syvende og sist kan man forestille seg appen som en enorm tilstandsmaskin, der ulike hendelser utløser forhåndsdefinerte prosesser og endrer den interne datarepresentasjonen.

En hendelse er for eksempel å klikke på en knapp (f.eks. roter denne PDF-siden) eller også å sette inn en fil i appen eller også en WebSocket-melding fra serveren med resultatene av en optimalisert PDF.

Jeg hadde bestemt meg for å implementere de asynkrone delene av handlingene som følger disse hendelsene, altså noe som å sende data via WebSocket til serveren, men også noen av de omfattende PDF-behandlingene vi foretar i nettleseren, i middleware-logikk. Disse middleware(ene) lytter og reagerer på bestemte hendelser og utfører deretter logikk.

MaraDocs-arkitektur
Hot-Swapping Redux Middleware | MaraDocs-arkitektur

Hot-Swapping Middlewares

I demo-modus startes altså vår normale app. Ved registreringen av de forskjellige middlewarene byttes imidlertid den som normalt utfører WebSocket-kommunikasjonen ut med en demo-middleware som ved tilsvarende hendelser viser simulerte (forhåndslagde) resultater med liten ventetid.

Disse filene trenger altså ikke å analyseres og optimaliseres av serverne våre hver gang, men bare én enkelt gang. Deretter kan de alltid lastes inn på nytt fra vår statiske cache og forårsaker på denne måten praktisk talt ingen kostnader.

Abonner på nyhetsbrevet nå

Hold deg oppdatert og motta de siste nyhetene, artikler og ressurser via e-post.

Generelle tanker om Redux

Redux er en bestemt måte å administrere state i Javascript-apper på. Dette er basert på tanken om at bare såkalte actions, som må utføres på en bestemt måte, kan endre tilstandsdataene som finnes i appen. React kan for eksempel på denne måten sikre at synlige deler av appen reagerer på tilstandsendringer.

Redux-biblioteket, som har gjort denne programvaremodellen kjent i hvert fall i frontend-verdenen (Redux), regnes delvis som overkompleks og blir i mange nyere prosjekter fortrengt av lettere alternativer. Vi har imidlertid nøye vurdert bruken for oss. Særlig den kraftige middleware-strukturen har gjort det mulig for oss å bringe en så kompleks app som MaraDocs inn i nettleseren.

Demo-modusen og den enkle håndteringen av å slå denne av og på ved å bytte ut en enkelt "modul" (middleware), bekrefter for meg at vi har satset på riktig hest her.

Konklusjon

Jeg gleder meg spesielt over kolleger fra advokatbransjen som deler lidenskap for digitalisering og programvareutvikling med meg.

Artikkelen i dag var litt mer teknisk. Men sånn er det noen ganger: Man starter ufarlig og dykker så likevel litt dypere inn i temaene.

Tilbakemeldinger / feedback / spørsmål gjerne via LinkedIn eller per e-post til info@maradocs.io.