Mät direkt på PDF:en
Ställ in skalan, rita av ytan, och varje mätning hamnar i en journal som för med sig sitt blad och sin revidering in i mängdförteckningen.
Mängdförteckning
Börja med över 190 inbyggda moduler och bygg eller installera sedan egna. Från kalkylering till BIM till arbetsplatsen, med ett öppet API, webhooks och en modulbyggare, så att plattformen blir precis den programvara ditt företag körs på.
Kör igång med en enda kommando
pip install openconstructionerp
docker compose up -d
+
fler moduler
Se modulsystemet
Hela kedjan i en tagning: från ritning via mängdavtagning och mängdförteckning med påslag till besiktning på plats, på en datamodell.
Mät, kalkylera, planera, köp in, bygg och avräkna i en applikation, utan att skriva in något igen. Öppen källkod (AGPL-3.0), egen drift, öppen export.
Ställ in skalan, rita av ytan, och varje mätning hamnar i en journal som för med sig sitt blad och sin revidering in i mängdförteckningen.
Mängdförteckning
Lager hålls åtskilda, så en sekantpålevägg mäts som sig själv i stället för som en del av bladet den ritades på.
Mängdavtagning
Varje element är räknebart, filtrerbart efter våning och disciplin, och länkar direkt till en post i mängdförteckningen.
Mängdavtagning
En post i mängdförteckningen öppnas till resurserna den prissattes utifrån, var och en med sin egen klass och sin egen valuta. Den turkiska leveransen stannar i lira, tillsatsmedlet i euro, totalen i dollar.
4D-tidplan · 5D-kostnad
Varje pris bär ett minimum, ett medelvärde och ett maximum, och visar hur många kalkylrader som hänvisar till det.
Mängdförteckning
Bläddra bland enhets- och sammansatta priser efter region och katalog, eller behåll dina egna, och dra ett pris med arbete, material och utrustning bakom sig direkt in i mängdförteckningen.
Mängdförteckning
03
Budget, bundet, utfall och prognos på en skärm, med intjänat värde läst direkt från samma data i stället för inskrivet i ett separat blad. Den talar om vilket prestationsindex du behöver härifrån för att landa inom budget.
Avstämning av kostnad och värde
Tidplanen genereras från posterna i förteckningen och förblir länkad till dem, så en mängd som ändras tar med sig datumen.
4D-modell · Intjänat värde
Varje risk prissätts och bedöms på samma projekt, så reserven du bär är en summa av namngivna exponeringar i stället för en procentandel längst ned på raden.
Ändringsorder
04
Varje förfrågan bär sin disciplin, sitt förfallodatum och vems tur det är, och ett svar som kommer med en kostnad blir direkt en ändring.
Variationer · Inlämningar · BIM-visare
Varje besiktning bär sin checklista, sitt resultat och sitt datum, så ett fel blir en uppgift med en ägare i stället för en anteckning på någons telefon.
Punchlista · NCR · Överlämning
Kostnad mot värde per kostnadsslag, med prognos och marginal på varje rad, över en kassaflödeskurva som löper till färdigställande. Ett kostnadsslag visar en negativ marginal, vilket är själva poängen med att göra avstämningen.
Kassaflöde · Á conto-fakturor
Tillbaka till 01. En ny revidering kommer och samma fyra steg körs igen, på samma data.
Fyra roller driver cykeln ovan. 19 till driver sin egen del av den, och var och en får en annan uppsättning moduler.
Kalkylering, upphandling, BIM, mängder, tidplan, kvalitet, säkerhet, kassaflöde, arbetsplats. Slå på det du behöver eller skriv eget.
Ladda ner
En inbyggd skrivbordsversion för Windows, macOS och Linux. En installationsfil ger hela plattformen med egen inbyggd databas, det finns inget mer att ställa in. Gratis, öppen källkod, och din data lämnar aldrig din disk.
Windows 10/11 - 64-bitars installationsprogram
macOS 10.15+ - Apple Silicon
AppImage, deb och rpm
curl -fsSL https://openconstructionerp.com/install.sh | shEtt kommando och du är igång
Installera, kör sedan
pip install openconstructionerpEn rad, app plus databas
docker compose upGränssnitt, priskataloger och rapporter byter språk tillsammans: en projektör i Warszawa och en platschef i Lyon läser samma projekt på sitt eget språk. Prova här.
Kalkyl, takeoff, tidplanering, dokument, kvalitet och CAD/BIM-import, allt finns i nedladdningen. Kostnadsdata för över 40 marknader och 44 gränssnittsspråk ingår. Ingen betald nivå, ingen begränsning av antalet användare.
Inget konto och inget moln emellan. Projekt stannar i en mapp på din egen disk, och allt fortsätter fungera med nätverket avstängt.
Databas, server och gränssnitt levereras som ett program. Att uppdatera är att köra nästa installationsprogram, och tar du bort det finns bara din datamapp kvar.
Installationshjälp Visa alla byggen och kontrollsummor på GitHub
I love how OpenConstructionERP goes beyond my expectations and is as complete as it gets for open-source apps. [...] The most valuable aspect for me is the cost data feature, which is typically hard to find. Additionally, the initial setup was very easy.
Open-source, customizable software, built by professionals in the field
“Free, local, and has PDF measurement with a large cost-item database. [...] For small contractors and freelance estimators, it's a solid free option for simple jobs.”
“Not just another BIM tool. It is an attempt to build an open-source ERP for construction. [...] It is open source and can be self-hosted.”
“This isn't AI replacing estimators or planners. It's AI handing them better-structured data, faster reviews, and fewer soul-crushing manual steps.”
Ett starkt IT-team och en budget för utveckling.
En laptop du redan har, och ungefär tio minuter.
Samma bygge körs på en laptop, en hyrd server eller ditt eget rack. Börja smått, väx senare, skriv inte om något.
pip install openconstructionerp3 GB minne är minimikravet. Kontoret och bygget öppnar samma projekt i en webbläsare.
Hela laget, varifrån som helstdocker compose up -dKörs inom ditt eget nätverk. Ritningar, kostnader och avtal stannar på hårdvara du styr över.
Företaget, inget lämnar husetterraform applyStängda ERP-system dikterar arbetssättet och fakturerar varje ändring. Med öppen kod anpassar du programvaran efter företaget, och det du bygger förblir ditt.
Ändra själva programvaran
Arbeta som ert företag arbetar
Koppla till verktygen ni redan använder
Korta genomgångar på ett riktigt projekt i appen, från installation till överlämning.
4:41
How to Install OpenConstructionERP | Windows Setup & First Project
Installera på Windows, öppna exempelprojektet, välj språk och region, välj moduler, bjud in ditt team.
12:00
Mängder, BOQ och AI-baserad kalkylering. På din egen laptop.
En kort genomgång av hela flödet: ritning in, anbud ut.
4:48
Build a Construction Estimate Step by Step
Builder's Playbook: Getting Started
5:55
Mengen aus PDF und DWG ermitteln
Lernprojekt Landshut
5:34
GAEB-Dateien kontrolliert austauschen
Lernprojekt Landshut
4:23
Tender Work to Subcontractors
Builder's Playbook Canada: Ontario
4:45
Manage Construction Change Orders
Builder's Playbook Canada: Ontario
5:23
Chantier : suivre les heures et le matériel
Builder's Playbook : gestion de chantier
3:44
Réception des travaux et déficiences
Builder's Playbook Québec
OpenConstruction Academy
Hela serier på engelska, tyska och franska
Alla videor på YouTube
Ett projekt per land, på landets språk, från första kalkylen till överlämning.
10videor
USAENBuilder's Playbook USA: Construction Management with OpenConstructionERP
6videor
6videor
CanadaENBuilder's Playbook: Canada
12videor
8videor
4videor
5videor
QuébecFRBuilder's Playbook: Québec
8videor
7videor
9videor
5videor
8videor
Varje playbook går igenom en verklig byggprocess steg för steg, med vad som ska göras och varför i varje skede.
293 playbooks fördelade på 8 discipliner
Skriven för en marknadGermany13Australia10Brazil10Canada10China10Spain10United Kingdom10Hungary10India10Mexico10New Zealand10Russia10Saudi Arabia10United States10South Africa10
Siffror från aktuell version. En del kommer vara inaktuella när du läser detta - repot rör sig snabbt.
färdiga kostnadsposter över yrken och sammansättningar.
IFC, DWG/DGN, Excel/CSV, PDF och 20+ fler importformat - och 40+ exportformat ut ur en kanonisk modell.
insticksmoduler som täcker hela platsarbetsflödet - projekt, mängdförteckning, mängdavtagning, anbud med mera.
öppen källkod-kärna under AGPL-3.0. Ingen leverantörsinlåsning. Din data förblir din.
Bakom varje á-pris ligger dess recept: timmarna, materialet och maskintiden som arbetet verkligen kräver, redo att omprissättas för din marknad.
Genomräknade exempel från baserna ovan
Varje bas har sina egna poster och artikelkoder. Prissatta baser visas i euro för en jämförbar överblick; koefficientbaserna visar resursmängder från den nationella normen. Varje beskrivning stannar på det språk du valde.
Välj vilken typ av företag du driver, så aktiverar plattformen den rollens moduler, sammankopplade i en databas. För muspekaren över en profil för att tända dess modulbikupa.
Varje profil behåller plattformens alltid aktiva kärna: projekt, kostnadsdatabasen, resurskatalogen, sammansättningar, dashboards och administration. Profiler låser aldrig in något, de lyfter helt enkelt fram de moduler som betyder mest för arbetet, och du kan alltid lägga till eller ta bort moduler senare.
Tekhne
ATMIID
Optimum Technology
Elevait
MAD Engineers
Construccions 360 Plus
Tekhne
ATMIID
Optimum Technology
Elevait
MAD Engineers
Construccions 360 Plus
LMH
Niven Builders
Colas
Basil Read
C&C Consulting
LMH
Niven Builders
Colas
Basil Read
C&C Consulting
Tegrity Contractors
PW Pole Barns
Digitarh
Overzicht
CSTB
Forida
Yutopias
Virtuza
Tegrity Contractors
PW Pole Barns
Digitarh
Overzicht
CSTB
Forida
Yutopias
Virtuza
IC İçtaş
L&QL&Q
Rhomberg Sersa Rail Group
The Beck Group
Woolpert
Stecol
Tucrail
IC İçtaş
L&QL&Q
Rhomberg Sersa Rail Group
The Beck Group
Woolpert
Stecol
Tucrail
AGPL-3.0 på GitHub. Ärenden och färdplan finns där, vad som kommer härnäst och vad som gick sönder förra veckan står i commit-loggen.
Varje ärende och färdplanspost är offentlig på GitHub. Skapa ett ärende med exakt beskrivning, vi genomför det och anger dig som upphovsperson.
Enkla fakta du själv kan kontrollera: en öppen licens, öppna format och dina data på din egen server.
En ärlig jämförelse. Kommersiella sviter leder på några länge betalda integrationer, i övrigt matchar eller slår OpenConstructionERP dem, utan licenskostnad.
| Funktion | OpenConstructionERP | Företagskalkylsvit | Anbudsverktyg för anläggning | Äldre bygg-ERP |
|---|---|---|---|---|
| Öppen källkod-kärna (AGPL-3.0) | ✓ | ✕ | ✕ | ✕ |
| Egenhosta på din infrastruktur | ✓ | ~ | ✕ | ~ |
| AI-mängdavtagning från PDF / foto | ✓ | ~ | ✕ | ✕ |
| Multi-CAD-inläsning (DWG / RVT / IFC / DGN) | ✓ | ✓ | ✕ | ✕ |
| 120,000+ kostnadsposter direkt ur lådan | ✓ | ~ | ✓ | ~ |
| Flera samtidigt i realtid (CRDT) | ✓ | ✕ | ✕ | ✕ |
| 44 språk i kärn-i18n | ✓ | ~ | ✕ | ~ |
| Modulär plugin-arkitektur | ✓ | ✕ | ✕ | ✕ |
| Typisk kostnad / plats / år | € 0 · egenhostad | Licens per användare | Licens per användare | Licens per användare |
| Implementation / introduktion | € 0 · dokumentation + community | Betalt införandeprojekt | Betalt införandeprojekt | Betalt införandeprojekt |
| Avtalsperiod | Ingen · säg upp när som helst | 1-3 års inlåsning | 1-3 års inlåsning | 3-5 års inlåsning |
Varje funktion är ett fristående paket. Släpp in det, dra ut det - den körande installationen plockar upp det på sekunder, noll driftstopp.
Varje funktion är ett Python-paket med manifest, tillagt utan ombyggnad. Typade API:er, genererad OpenAPI-specifikation.
make module-new# Sign in and keep the access token $ TOKEN=$(curl -s -X POST http://localhost:8080/api/v1/users/auth/login \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com", "password": "..."}' \ | jq -r .access_token) # Create a project $ curl -X POST http://localhost:8080/api/v1/projects/ \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"name": "Logistics Hub", "region": "DACH", "classification_standard": "din276", "currency": "EUR"}' # → HTTP 201 Created, the new project as JSON # Every route: http://localhost:8080/api/docs
# backend/app/modules/punchlist/manifest.py from app.core.module_loader import ModuleManifest manifest = ModuleManifest( name="oe_punchlist", version="0.1.0", display_name="Punch List", description="Track deficiencies and snag items with photo evidence", category="core", depends=["oe_projects"], auto_install=True, enabled=True, ) # The loader finds the package and mounts its router # at /api/v1/punchlist.
Medvetet tråkiga val. Allt är öppen källkod.
Plattformen sitter i den öppna mitten av din mjukvara. Öppna format, ett dokumenterat API och webhooks håller kalkyl, modell och ekonomi i takt, och inget sitter fast.
AI-redo data och API
No Revit. No AutoCAD.
RVT, DWG and IFC as data, fully standalone
Our converters read Revit 2019 to 2027, AutoCAD DWG and IFC files on your own Windows computer, offline, nothing uploaded. Professional-grade readers, and the Community version is free for everyone.
Fakturor, kostnadsuppdelningar och krav går direkt till ekonomin, utan ny inmatning.
Modeller och ritningar kommer från dina designverktyg, granskningsanmärkningar går tillbaka.
Ritningar, avtal och rapporter hålls synkade med ditt dokumentarkiv.
Aktuella projektsiffror matar dina dashboards i stället för att klistras in.
Aktiviteter och beroenden flyttas åt båda håll mellan tidplan och kalkyl.
Projekthändelser startar dina arbetsflöden, och arbetsflödena anropar API:t tillbaka.
Varumärken tillhör sina ägare; de visas för att ange kompatibilitet.
Ingen inlåsning, med flit.
Varje siffra går att exportera, formaten är öppna, och samma dokumenterade API som driver appen är öppet för dig. Din data förblir din - du kan alltid ta den med dig.
Läs dokumentationen för integrationer och APIOpenConstructionERP växer fram ur tio år av öppen forskning inom byggteknik.
Under det senaste decenniet har vårt team arbetat med resurshantering i byggprojekt. På vägen blev vi nyfikna på hur branschens verktyg uppstod, från de första försöken med designautomation till dagens ERP-plattformar, och det blev ett par längre texter (”The Lobbyists’ Wars and the Development of BIM” och ”The History of the BIM Map”). Det är svårt att se vart det är på väg utan att veta hur vi hamnade här.
Vi har skrivit en hel del om de här ämnena genom åren, och en del har fått många läsare. Vid sidan av skrivandet har vi rådgivit byggföretag, konsultföretag, utvecklare och mjukvaruleverantörer om hur de hanterar projektdata: som underlag för beslut och inte som en biprodukt. Det gav oss en bild av branschen från båda håll: de som bygger verktygen och de som använder dem varje dag. Många av de iakttagelserna hamnade i boken Data-Driven Construction, som nu finns på 16 språk (datadrivenconstruction.io/books).
Två andra problem höll oss sysselsatta. Det ena var att hjälpa icke-utvecklare in i slutna filformat som aldrig var tänkta att öppnas. Det andra var att hitta ett renare sätt att beskriva byggarbete med en resursmodell. Båda gav gratis verktyg: DDC:s CAD/BIM-konverterare (IFC, DWG, DGN → strukturerad data) på GitHub och CWICR, en flerspråkig databas över byggarbeten och resurser med över 120 000 poster på 11 språk, publicerad som OpenConstructionEstimate-DDC-CWICR.
Allt detta var grundarbete för något vi länge ville bygga: ett öppet, modulärt ERP för byggbranschen. Den senaste generationen verktyg gjorde det äntligen praktiskt att samla metodiken, datamodellerna och tidigare implementeringar i en plattform. Nu är den offentlig och öppen källkod.
Framsteg föds ur dialog - ur perspektivens möte och öppenhet för nya angreppssätt. Jag skulle vara tacksam om du ville delta i den här konversationen om byggbranschens oundvikliga Uberisering och transparensen i kostnads- och tidsuppskattningsprocesser för byggprojekt.
DataDrivenConstruction Team
grundare, datadrivenconstruction.io
AECOM
VINCI Energies
Artelia
Merck
RBS wave
AECOM
VINCI Energies
Artelia
Merck
RBS wave
Shapemaker
Scholze-Thost
VRAME
AXIA Energia
AFRY
Hofschröer
TDF
Renaissance Construction
Shapemaker
Scholze-Thost
VRAME
AXIA Energia
AFRY
Hofschröer
TDF
Renaissance Construction
Sintagma
Trafikverket
TMM Group
Dar Al Riyadh
pbs Ingenieure
SCON GmbH
Sintagma
Trafikverket
TMM Group
Dar Al Riyadh
pbs Ingenieure
SCON GmbH
De flesta filer från anläggningsprojektering är i praktiken datafängelser. Massor av användbar information, linjer, ytor, mängder, ligger bara där, inlåsta i format som aldrig var tänkta att samarbeta fint med något utanför sin ursprungliga mjukvara. Jag har slösat alldeles för mycket tid på att försöka svara på enkla frågor som 'hur många brunnar finns det i det här jobbet?' eller 'vad är volymen per fas?', bara för att upptäcka att datan ligger begravd fem lager djupt i en DWG eller DGN. Data Driven Construction löser det. Deras konverterare öppnar upp dessa slutna format och ger dig strukturerad data som du faktiskt kan använda, i Power BI, i Excel, eller till och med i en LLM-prompt om du gör något mer avancerat. Det är inte flashigt, men det är sjukt användbart. Om du försöker röra dig bortom skärmdumpar och PDF-filer och faktiskt använda din projekteringsdata, är det här den typen av verktyg som gör det möjligt. Det är skillnaden mellan att gissa och att veta. Och ärligt talat har det sparat mig mer än en lugn lördagsmorgon.
Var med i rörelsen med DataDrivenConstruction! Låt oss göra verklig frihet i dataformat till verklighet och katalysera en ny era av produktivitet och innovation inom byggbranschen. Den verkliga och nödvändiga resan från slutna till 'öppna' format har inte ens börjat: verklig frihet i dataformat, fri från proprietära band och tillgänglig för alla, är vad vi behöver för att låsa upp innovation och samarbete inom hela byggbranschen, till särskild nytta för de 99 % av byggbranschen, det vill säga små och medelstora företag, och frigöra sektorn för accelererad tillväxt.
Hela plattformen är gratis och inget i den är dolt.
Ta plattformen till företag du redan känner och ta betalt för det du tillför.
Inga avgifter, ingen exklusivitet, inga förpliktelser för någondera sidan.
Kör det själv gratis under AGPL-3.0, välj en kommersiell plan när du behöver support eller en konverterlicens, eller bli partner.
Hela öppen källkod-plattformen. Kör den på din infrastruktur, utan förbehåll.
Förstudie → workshop → moduler valda → byggt → utrullat på din hårdvara. Källkod levererad.
Praktiska pass: kalkylering, BIM-till-BOQ, AI-mängdavtagning, GAEB-pipelines. Inspelat för ditt teambibliotek.
Standardmappning, prisdatabasstrategi, pipeline-arkitektur, kodgranskning.
Endast utvalda publika workshops. Många större företagsuppdrag förblir under NDA.










Fantastisk workshop, Artem! Förberedelserna är i full gång! Jag ser redan fram emot hackathonet i det nya året! 💪🏻
Vad händer när man inte bara organiserar byggprocesser, utan också analyserar dem intelligent? Det var temat för vår workshop med Artem Boiko om ”Data-Driven Construction”. I centrum stod frågan: hur kan vi använda befintliga data bättre - för att göra byggprojekt mer effektiva, mer transparenta och mindre felbenägna. Med konkreta exempel visade Artem hur strukturerade byggdata hjälper oss att behålla överblicken, upptäcka tillägg tidigt och förbättra kommunikationen mellan projektering och utförande. Extra spännande: hur digitala verktyg och modeller redan idag kan automatisera processer. Datadriven byggande är inte längre en framtidsfråga - vi är mitt uppe i det. Workshoppen visade hur stor potentialen är när vi samarbetar och verkligen låter data arbeta för oss.
Artem Boiko höll en framstående presentation för hela Shapemaker-teamet och gav djupa insikter i datamigrering från teknikprogramvara och relaterade ämnen. Hans expertis och tydliga kommunikation gjorde komplexa koncept lätta att förstå och utrustade vårt team med praktisk kunskap att tillämpa direkt. Rekommenderar verkligen hans tjänster till alla som söker klarhet och konkreta strategier inom området!
Jag tyckte DataDrivenConstruction-workshoppen var mycket intressant. Enligt min mening kunde alla hänga med. Man ser på dina bilder hur mycket tid, uthållighet och möda du lagt ner. Även live-presentationerna var fantastiska. Det enda jag skulle kritisera är antalet bilder - det blev helt enkelt för många. Men det är att gnälla på allra högsta nivå. Sammantaget var det den bästa workshopen jag varit på. Dessutom är du en mycket trevlig person.
Ich fande DataDrivenConstruction Workshop sehr interessant. Meiner Meinung nach konnten alle folgen. Man merkt auch anhand deiner Folien wieviel Zeit, Ausdauer und Mühe du hineingesteckt hast. Auch die Live Präsentationen waren super. Das einzige was ich bemängeln würde, wäre die Anzahl der Folien, dadurch kamen zu viele slides zustande. Aber das ist meckern auf dem höchsten Niveau. Rundum war es der beste Workshop bei dem ich war. Außerdem bist du auch eine sehr angenehme Person.
Sammantaget tyckte jag att DataDrivenConstruction-utbildningen var verkligen spännande och mycket berikande. Det jag särskilt gillade: den ”historiska” bakgrunden till de olika CAD-programmen (det var fascinerande och hade en touch av undersökande journalistik); det intressanta sättet att automatisera via DataFrames; dina egna praktiska exempel på processautomatisering inom bygg; och inblicken i aktuella trender som Claude Code och OpenClaw - du gav ämnet liv. Enda nackdelen: det var verkligen mycket input på bara två dagar. Samtidigt visade du mycket bra hur vi kan orientera oss vidare själva - till exempel genom strukturerad dokumentation av våra processer på Miro-tavlan. Tack ån en gång för utbildningen och utbytet.
Die DataDrivenConstruction Schulung fand ich insgesamt wirklich spannend und sehr bereichernd. Besonders gut gefallen haben mir: der „historische“ Hintergrund zu den verschiedenen CAD-Softwares (das war spannend zu hören und hatte etwas von Investigativjournalismus); der interessante Ansatz zur Automatisierung über DataFrames; deine eigenen praxisnahen Beispiele zur Prozessautomatisierung im Bauwesen; und der Einblick in aktuelle Trends wie Claude Code und OpenClaw, du hast das Thema mit Leben gefüllt. Einziger Nachteil: Es war wirklich viel Input in nur zwei Tagen. Gleichzeitig hast du sehr gut aufgezeigt, wie wir uns selbst weiter orientieren können, zum Beispiel über das strukturierte Aufzeichnen unserer Prozesse im Miro-Board. Vielen Dank nochmal für die Schulung und den Austausch.
Det var en fantastisk workshop med spännande innehåll som vi - och jag personligen - lärde oss massor av. Tack för att du tog dig så mycket tid för oss. Vi ser fram emot att få pröva det vi lärt oss så snart som möjligt och integrera det i våra projekt! #bleedingedge
Skicka oss en kort brief med din budget och tidplan så återkommer vi.
make module-new, eller beskriv modulen i den inbyggda modulbyggaren och granska varje fil innan du installerar den. En modul är en mapp, så du kan kopiera den till en annan installation och den fungerar där också. Bra kandidater: regionala kostnadsdatabaser, ERP-kopplingar, egna valideringsregeluppsättningar.Den kostnadsfria skrivbordsappen för Windows, macOS och Linux, eller ett kommando på din egen server. Öppen källkod under AGPL-3.0.
Varje funktion är en modul: en mapp med ett manifest, en latladdad sidkomponent och en post i registret. Lägg in en, ladda om, och den dyker upp på sidan Moduler redo att slås på.
frontend/src/modules/
├── _registry.ts ← lägg till din import här
├── your-module/
│ ├── manifest.ts ← metadata, rutter, navigation, i18n
│ ├── YourModule.tsx ← huvudsida (latladdas via React.lazy)
│ └── index.ts ← samlad export (barrel export)
Skapa frontend/src/modules/your-module/.
manifest.ts
Unikt id, name, ikon från lucide-react, kategori, valfria beroenden, rutter och navigationsobjekt. Paketera översättningar om du behöver modulspecifika texter.
export default function YourModule() { ... }. Håll ren datalogik i data/ och enhetstesta den med vitest.
Lägg till importen + manifestet i _registry.ts, och en nav.*-nyckel i i18n.ts för varje språk (sidopanelen renderas innan asynkrona översättningar kommer fram).
Kör npm run dev. Slå på på sidan Moduler → dyker upp i sidopanelen → navigerar via React.lazy. Sök (/) fångar upp dina searchEntries.
import { lazy } from 'react';
import { Sparkles } from 'lucide-react';
import type { ModuleManifest } from '../_types';
const MyModule = lazy(() => import('./MyModule'));
export const manifest: ModuleManifest = {
id: 'my-feature',
name: 'My Feature',
version: '1.0.0',
icon: Sparkles,
category: 'tools',
defaultEnabled: false,
routes: [{ path: '/my-feature', title: 'My Feature', component: MyModule }],
navItems: [{ labelKey: 'nav.my_feature', to: '/my-feature', icon: Sparkles, group: 'tools' }],
};
id i kebab-caseexport default (krävs för React.lazy)_registry.tsnav.*-nyckel i alla 4 språkblock i i18n.tsdefaultEnabled: false (valbar aktivering)