HappyFlows is a dynamic, prompt-based project bootstrapping library designed to streamline the project initiation process. It uses NodeJS and the command-line interface (CLI) to intuitively guide you through the setup process for your new projects, saving you time and effort.
HappyFlows aims to simplify the project setup process by generating tailored project templates based on your responses to a series of prompts.
HappyFlows is a NodeJS based CLI tool. Make sure you have NodeJS installed in your environment.
To install HappyFlows globally on your machine, simply run:
npm install -g happyflows
After successful installation, you can start a new project using HappyFlows by entering the following command:
happyflow
This will start a prompt asking you to explain your project in a few words, for example:
? Explain your program in a few words:
Flask microservices: users, books and genres. They should be backed by PostgreSQL. Terraform and Kubernetes infra. Kafka as event broker.
Based on your input, HappyFlows will generate a relevant project structure to get you started! Resulting structure will be like
.
├── books
│ ├── Dockerfile
│ ├── __init__.py
│ ├── k8s-deployment.yaml
│ ├── k8s-service.yaml
│ ├── main.py
│ └── requirements.txt
├── genres
│ ├── Dockerfile
│ ├── __init__.py
│ ├── genre_updated.avsc
│ ├── k8s-deployment.yaml
│ ├── k8s-resources
│ ├── k8s-service.yaml
│ ├── kafka-configmap.yaml
│ ├── kafka-deployment.yaml
│ ├── kafka-schemas
│ ├── kafka-service.yaml
│ ├── main.py
│ ├── main.tf
│ ├── namespace.yaml
│ ├── postgresql-sts.yaml
│ ├── requirements.txt
│ ├── terraform
│ ├── user_created.avsc
│ └── variables.tf
└── users
├── Dockerfile
├── __init__.py
├── k8s-deployment.yaml
├── k8s-service.yaml
├── main.py
└── requirements.txt
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Please let me know if you want to add or change anything.