Gå til indhold
BigTree108

Case: portalen til virksomhedsstyring

Et nyt firma i 2025 havde brug for rekruttering, onboarding, kontrakter, tidsregistrering, ferie, fakturering og regnskab fra første dag på et budget, der udelukkede at købe syv produkter. Vi byggede én platform til det hele, og vi driver firmaet på den.

Problemet

Standard-HR-værktøjer, tidsregistrering og fakturering ville hver for sig have kostet mere om måneden end hele budgettet, og ingen af dem forstod ukrainsk kontrahentlovgivning, digital signatur gennem en lokal bank eller den måde, timer løber fra en tidsregistrering ind i en kundefaktura. Alternativet var regneark, som holder op med at virke i den uge, nogen har ferie.

Beslutningen var at bygge platformen på den stack, vi sælger, behandle den som et rigtigt produkt med de samme udviklingsregler, som vi anvender i kundearbejde, og lade den være den reference, vores kunder kan spørge til.

Hvad den gør

  • Rekruttering

    Stillinger opslået på jobportaler, kandidatscreening gennem en Telegram-bot med et spørgsmålsbibliotek, tekniske og eksterne samtaler med booking og opfølgning på prøveperiode.

  • Onboarding

    Et guidet forløb, der indsamler identitetsdokumenter, verificerer dem med AI-tjenester i skyen, bekræfter stavningen af navnet, indsamler kontaktoplysninger og udstyr og opretter konti gennem identitetsudbyderen.

  • Kontrakter og dokumenter

    Servicekontrakter og NDA'er genereret ud fra skabeloner til PDF, sendt til digital underskrift og gemt som den underskrevne registrering. Kundeaftaler og statements of work følger den samme vej.

  • Tid og fravær

    Timer pr. projektopgave, synkroniseret fra eksterne tidsregistreringsværktøjer og redigerbare af specialisten; ferie og sygefravær med kvoter og godkendelser pr. kontrakt.

  • Aflønning og fakturering

    Månedlige specialistfakturaer og kundefakturaer dannet ud fra de samme registrerede timer, valutakurser fra centralbanken, viderefakturerede engangsbetalinger og et arkiv med underskrevne fakturaer.

  • Regnskab og compliance

    Påmindelser om skatteindberetning og betaling, import af kontoudtog, nødkontakter og en rettighedsmodel med row-level security og anmodninger om forhøjede rettigheder til finansielle data.

  • Notifikationer

    Chat- og messengerkort for hver hændelse, en person skal handle på, med en regel om, at ingen besked nogensinde indeholder finansielle tal; dem bliver bag login.

Sådan er den bygget

  • Backend

    .NET 10 på Azure Functions, vertical slices med CQRS gennem en source-genereret mediator, validering ved hver grænse, EF Core med versionerede migreringer.

  • Data

    Azure SQL med row-level security pr. kunde og Always Encrypted-kolonner til personlige og finansielle data, nøgler opbevaret i en managed vault.

  • Frontend

    Angular med standalone-komponenter, signals og zoneless change detection, et Tailwind-designsystem og en API-klient genereret fra OpenAPI-dokumentet.

  • Levering

    GitHub Actions med federerede legitimationsoplysninger, Terraform til hele miljøet, databaseændringer leveret som migreringer i pipelinen, CodeQL og scanning af afhængigheder.

Regler, der har formet den

  • Prioriteter i en fast rækkefølge: omkostninger, derefter sikkerhed, derefter modernitet, derefter performance, derefter compliance. Hver konflikt afgøres af den højere rang.
  • Identitetsudbyderen er kilden til sandhed for persondata; databasen er en cache for den og det eneste hjem for løn, rekrutteringsdata og rettigheder.
  • Følsomme data lander aldrig i en almindelig kolonne, ikke engang kortvarigt. Kryptering deklareres flere steder og valideres ved opstart.
  • Hver fejlrettelse udkommer med en test for sin fejltype, placeret i det bredeste håndhævelseslag, der kan se den, ofte en arkitekturtest og ikke en unit test.
  • Chat er en ikke-betroet visningsflade. Notifikationer nævner hændelsen og linker til siden bag autentificering; beløb og satser forlader aldrig produktet.

Hvorfor det har betydning for jer

Vi beskriver ikke en demo. Denne platform driver et rigtigt firma hver dag, hvilket betyder, at vi har levet med vores egne arkitekturbeslutninger, vores egne migreringer og vores egen alarmering længe nok til at vide, hvilke der var rigtige. Det er den samme dømmekraft, vi tager med ind i jeres produkt.

Vil I have noget lignende til jeres virksomhed?

Beskriv de processer, I kører på regneark i dag. I får en skriftlig plan, et arkitekturforslag og et estimat inden for én arbejdsdag.