Adminator is an open-source admin panel generation tool that enables developers to effortlessly create admin panels by providing a schema in a specific .adt format. It parses the schema and generates a fully functional admin panel tailored to your needs.
- Schema Parsing: Define your data schema in
.adtformat, and Adminator will handle the rest. - Admin Panel Generation: Automatically generate a customizable admin panel based on your schema.
- User-Friendly Interface: A clean and intuitive admin panel for managing your data.
- Extensibility: Easily adapt or extend the generated admin panel for advanced use cases.
-
Clone the repository:
git clone https://github.com/vlhsmylv/adminator.git cd adminator -
Install dependencies:
npm install
-
Run the development server:
npm start
Create a .adt file in the schema directory with your schema definition. Example schema format:
-- User --
== Creates user ==
id string true true * 255
name string * * * 255
email string * * * 255
- Run
npm run parse-schemato get parsed schema - Run
npm run generate-modelsto generate models and DTO
Run npm run start:server to start server
Go to http://localhost:20002/api-docs to see Swagger Docs
npm run parse-schema takes your schema from schema/index.adt and parses into schema/schema.parsed.json meaning you can add your schema via json also.
npm run generate-models takes your parsed schema from schema/schema.parsed.json, generates Mongoose model and DTOs (interface) under dto & models folders respectively.
npm run start:server runs ts file under web/index.ts on port 20002. You can access Swagger docs on /api-docs.
The .adt format supports the following syntax:
-- {Schema Name} --
== {Optional Description} ==
{name} {type} {isPrimary} {isAutogenerated} {minLength} {maxLength}
- name: Name of the field (e.g.,
id,name). - type: Data type (e.g.,
string,int). - isPrimary:
trueif this is a primary key; otherwise,falseor*. - isAutogenerated:
trueif this field is autogenerated; otherwise,falseor*. - minLength: Minimum character length (use
*if not applicable). - maxLength: Maximum character length.
We welcome contributions from the community! Here's how you can help:
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Submit a pull request.
Please follow our contribution guidelines when submitting a PR.
- Support for multiple
.adtfiles. - Enhanced UI customization for generated admin panels.
- Export generated panels as standalone projects.
- Integration with SQL databases (e.g. PostgreSQL).
- API flow creation
This project is licensed under the MIT License. See the LICENSE file for details.
Special thanks to the open-source community for their inspiration and support in building this tool.