Skip to content

JJConsulting/JJMasterData


.NET 6 TS TS NuGet Discord

JJMasterData is an open-source .NET library to help you create dynamic CRUDs quickly from data dictionaries (database metadata), along with other boilerplate-intensive things like exporting and importing data.

Useful Links


Features

  • Components generated at runtime 🔥
  • Data exportation & importation ↔️
  • Database script generation ✍️
  • Plugins support by interfaces 🪄
  • Multiple forms using relationships⛓️

Getting Started

Setup-JJMasterData.mp4
  1. Create an ASP.NET Core project (it can be Blazor, MVC, Razor Pages, whetever you like...)
  2. Install JJMasterData.Web
dotnet add package JJMasterData.Web
  1. Configure your IConfiguration source with a connection string at JJMasterData:ConnectionString and a secret key at JJMasterData:SecretKey
{
  "JJMasterData": {
    "DataDictionaryTableName": "MasterData",
    "ConnectionString": "Server=localhost;Database=JJMasterData;Integrated Security=True;Trust Server Certificate=true",
    "ReadProcedurePattern": "{tablename}Get",
    "WriteProcedurePattern": "{tablename}Set",
    "SecretKey": "ExampleSecretKey"
  }
}
  1. At Program.cs add the following lines:
using JJMasterData.Web.Configuration;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddJJMasterDataWeb();

///...

var app = builder.Build();

///...

app.UseJJMasterDataWeb();
app.MapJJMasterData();

app.Run();
  1. Create a wwwroot folder if your project is empty
  2. Run the project and visit /en-US/DataDictionary/Element/Index
image

You can get the appsettings.json schema URL from here

See all steps in documentation.


Building from source 🧰

  1. Install .NET 8

  2. Install NodeJS

  3. Clone this git repository

  4. Open JJMasterData.sln file at your IDE

  5. Set the WebEntryPoint as startup project

  6. At src/Web run at your terminal

npm i
  1. Run the project

Special Thanks

Code contributors


Alt

Bugs and feature requests 🐛

Have a bug or a feature request? Please first search for existing and closed issues.
If your problem or idea is not addressed yet, please open a new issue.