We open-sourced our Node.js API Generator
Tags: node, javascript, showdev, opensource
Published: 2021-12-03 09:06:31

Last week we open-sourced our entire Node.js API generator along with the front-end React app that helps to build it. Check our [Repository here.](https://github.com/dhiwise/dhiwise-nodejs/)

![](https://cdn-images-1.medium.com/max/2560/1*Joazw5NqPtHRCbr4Nif7fA.jpeg)

This post is going to tell you about who we are, what is Node.js API Generator & its features, why we open-sourced it, and how we have made this project open for external contributions.

## Who are we?

At [DhiWise](https://hubs.la/H0_-wmC0), our mission is to build the most intelligent programming platform in the world. We **automate the developer’s repetitive tasks** so that they can focus on what matters the most.

With [DhiWise](https://hubs.la/H0_-wmC0), developers can fully go on to an autopilot mode, where one can take a nap or walk while [DhiWise ](https://hubs.la/H0_-wmC0)generates production-ready code for you. Yeah, just like Tesla.

![](https://cdn-images-1.medium.com/max/2000/1*dvX7PFawX1jyGmeWEK-zxw.gif)

## So what basically is the Node.js API Generator?

Imagine you want to bake a cake and you have all the raw materials you need such as flour, baking powder, eggs. Now, you give us those materials and we will bake you the ready-to-serve cake of your choice.

With this builder’s context, with just minimal inputs like models, attributes, ORM type, platforms, routes, role access, authentication, this builder is going to build backend CRUD APIs along with other essential features to boost developers’ productivity time by twofold.

Most importantly, the Node.js API generator gives developers clean, scalable, human-readable code with complete ownership. The code it generates is bug-free and easily customizable, not to forget in one of the two different architectures of your choice. (Clean code & MVC)

## Features:

 1. **User Authentication** and Authorization (using Passport)

 2. **Social Login** APIs

 3. CRUD APIs with middleware and attributes’ selection

 4. List API with **pagination, populate, and queries**

 5. **Upload attachment API** with validation and **storage options** like (Local server or S3 public/private bucket)

 6. Role-Permission

 7. Hooks and Indexes

 8. Policy/middleware

 9. API **request body validation** (Using joi)

 10. API response with standard **error and message pattern**

 11. Test cases

 12. Postman collection and API documentation

 13. Constants

 14. Environment Variables for development, QA, and production

 15. Custom API setup

 16. **Multiple Platform selection** and User type configuration

 17. MVC and Clean-code architecture

 18. Supported Databases
a. MongoDB
b. SQL Server
c. MYSQL
d. PostgreSQL

## Why did we open-source it?

Our main focus is to empower the developer community to be more productive and try to automate their repetitive tasks so that in their remaining time they can add any new features or fix any bugs in this repository to make it available to their entire community.

It may sound cheesy but by open-sourcing the platform we intend to have open communication with DhiWise community in order to build something epic.

Also, we wouldn’t want to stop users who are trying to self-host the API builder and want to check how easy & productive it is to generate project and production-ready source code at their demand. Don’t forget to tag us on Twitter (@[dhiwise](https://twitter.com/dhiwise)) when you get the AHA moment after checking the end result.

## This is just the beginning!

It took a long time and a lot of work to get here, though this is just ONE OF THE FEW builders we have offered to the community for now.
Figuring out how to open-source this project has been a fun challenge, but I think the best is yet to come. Working in the open is the most fun way to build software, and I can’t wait to see how this project evolves as we invite contributors from around the world to help shape its future.

## Now, we’re calling on you to take what we’ve created and build on it!

Please let us know what you are creating with what we have started. We can’t wait to push the developer’s community to be more productive together to become the best it can be!

- By Ravi Sojitra 
(Tech Lead | DhiWise)