Code Monkey home page Code Monkey logo

kodyfire's Introduction

lerna

The one tool that will rule them all. By developers for technical experts and non-technical experts.

Kody, a general-purpose terminal based, low-code no-code tool that helps you generate artifacts.

Getting Started

Getting started with Kodyfire is as easy as 1,2,3. Below is a quick summary of the command you need to run in order to get started.

npm install -g kodyfire-cli
# from your project root folder
npm i react-kodyfire
kody g react component

Install the CLI

Install the kody cli by running

npm install -g kodyfire-cli

or

yarn global add kodyfire-cli

You can check the documentation with

kody --help

Open your project

Note: If you are looking for more customization, we recommend you to create your own kody locally. Instructions below. Don't forget to share your kody with us if you have made it public.

Open the project you are willing to work on using vscode. If you are starting a project from scratch, you can start our experimental project installer kody install (not required). It will prompt you to choose the project type and the destination folder.

Install a kody

Based on your project, select the kody that works for you or customize your own. There are [14 kody packages](#Available kodies) available at the moment.

To list available kodies. (The search command simply displays available kodies and no keyword are required.

kody search

The command will list available kodies. Install your kody of choice. For example, if you want to install the react kody

npm install -s react-kodyfire

or

yarn add react-kodyfire

Please note you can install as many kodies in the same project as you wish.

Generate your artifact

There are 2 methods you can generate your artifacts with:

  • The generate command
  • The run command

Method 1: Generator mode kody generate

The recommended way of using kody is using the generate command. The command will assist you creating your artifact based on the chosen concept. For example, a react component is considered a concept. In order to generate your artifacts, run the generate command. The syntax is kody g|generate [kody] [concept]. If you ommit kody and/or concept the assistant will prompt you to select the missing. As an example, run the following command from your terminal:

kody generate react component

Method 2: Runner mode kody run

The run command is similar to the generate command. The run requires a definition file which is simply a json file containing all the concept definitions you have created using the ride command. The generate command on the other hand creates one or more concept definition on the run and process them on one run. Every command has its use cases.

Initialize kody

In order to start using kody, you need to initialize your project.

kody init

This will add the definition files required for kody runs. Important: Please run the command only once. The command will override existing definition files. We will disable overriding in a future version.

Ride your kody

In order to update your definition, use the kody ride command to assist you populate the required fields

kody ride

Launch a kody run

Once you are satisified with your definition file, execute the run command to generate your artifacts.

kody run -s laravel-kody.json

To run all kodies defined within your project, run the following command:

kody batch

Youtube Demo (in progress)

Available kodies

Name Description
basic-kodyfire A general purpose code generator that should handle most of the generation use cases
typescript-kodyfire Generate typescript related artifacts
tsconfig-kodyfire Generate tsconfig files for your typescript projects
nextjs-kodyfire Generate nextJs components and related artifacts
react-kodyfire Generate react components
laravel-kodyfire Laravel artifacts generation
vuexy-kodyfire Vuexy theme artifacts generation
uml-kodyfire Uml diagrams generation using plantuml
readme-kodyfire Readme file generation
word-kodyfire Generate ms word document based on a template
pdf-kodyfire Generate PDF document from HTML templates
social-image-kodyfire Generate dynamic images for social sharing based on HTML templates
social-gif-kodyfire Generate dynamic gif images for social sharing based on HTML templates
linkedin-quizzes-kodyfire Practice Linkedin skill assessement tests from your terminal

What is Kody

Kody is a general-purpose terminal based, low-code no-code tool that helps you generate artifacts.

Kody should integrate within your development cycle flawlessly

Kody is extensible and aims to be highly customizable

Kodyfire or kody, is embeddable into existing systems like vscode, Google Chrome and all extensible system offering a Javascript/Typescript api

Third-party systems like webapps can build on top of it to further accelerate the process of generating artifacts.

We are in experimental phase and the current project is a POC for demonstration purposes

Kody is technology agnostic and can be used to generate code into your programming language and framework of choice

Here are few examples of what kody can/will do

  • A REST API based on x framework (example: Laravel)
  • A frontend using x framework/library (example: Vue.js)
  • A fullstack web app
  • A mobile app using x framework (flutter)
  • A browser extension
  • An editor/ IDE extension
  • A Word extension
  • A UML diagram using x library
  • A Word document based on a model
  • A PDF invoice
  • Mailing
  • Third-party API interactions
  • Cron jobs
  • Deploy an application to a web server
  • Automate git commits by specifying when and what each commit includes
  • Migrate from one framework to another framework
  • Migrate from one database schema to another database schema
  • Upgrade an x framework from version y to version z
  • And much more…
  • Imagination is the limit

Objectives

  • Low code benefit
  • Code convention
  • Increased productivity
  • //TODO

Create a kody

In most cases you might need a custom kody to suit your needs

Scaffold a new kody

Create a basic kody using the scaffold command. Follow the prompts to setup your kody

kody scaffold

This will create a folder containing the basic structure for a kody. You can start using right away within your project.

Setup your kody

Install npm dependencies

npm i

Build your kody

npm run build

Override defaults

//TODO

Add concepts

//TODO This will build your kody and export the basic templates files.

Add as an NPM dependency

In order to be able to use it within your project run the following command

npm i -s ./yourkody-kodyfire

Publish your kody

Please remember that Kody is still in exploration phase and things will change frequently. Contribution is always highly requested.

Prepare your kody

Add the required kodyfire metadata to your package.json

{
  // A command for handling this part will be added in a future version
  "kodyfire": {
    "id": "your-id", // must be unique.
    "type": "kodyfire", // Example of valid technology names: laravel, express, react, angular, flutter, html, css. Default: kodyfire
    "version": "0.0.1"
  }
}

Publish to Github

Intialize your project as a git repository and push to a public Github repo

Publish to npm

Once you are satisfied with your kody and you would to like to share it with the community. Run the following command.

npm Publish

Note: You'll need an NPM account

Share with community

Congratulation publishing your first kody. Don't forget to share your kody repo link by opening an issue on Kody's github repository.

Philosophy

Single source of truth model SSOT: shared data between 2 kodies should be moved to the ssot.

Use any available third-party library that will help us achieve our goal

Continuously reduce human intervention

Gradually eliminate human introduced errors when automation is possible

Adopt a build, evaluate, and restart mindset in developing the project. Kody does not depend on the language it’s made of or the environment it lives in. Kody should adapt and mutate.

Experimental phase

Concepts and technologies used / to be used

AST

Transducer

Transformer

Plugin & Play architecture

Architecture

Plugin & Play architecture

Comparison

//TODO

  • Schematics
  • Yoaman
  • Bubble
  • n8n
  • appsmith
  • Tooljet
  • Others

Milestones

Low-code

//TODO

No-code

Provide a web app for building kodies

Future Objectives

  • Intelligent Kody using AI
  • Use AST to update an existing artifact
  • Reverse engineering: From code to Kody definition. Possible use cases: Migrate from one technology to another
  • Use as a benchmark tool
  • Kodies as a node within a network
  • Aggressive automation: Pushing the boundaries of what automation can do for us
  • Kody endless run

Packages

Kodyfire: The main repo. Hold the documentation and all kody related packages. Uses lerna to handle npm package management.

Kodyfire-core: Contains the things that are common to all other kody package.

Laravel-kodyfire: A kody package to generate Laravel related artifact. This a ported package from an existing and requires refactoring to make simpler. Documentation to be added.

Vuexy-kodyfire: A kody package to generate vuexy theme related artifact. A valid license and your own copy of vuexy theme is required. Documentation to be added.

Kodyfire-cli: The command line tool to run kody runs

Credits

  • Typescript
  • Angular schematics
  • Commander
  • Prompts
  • Handlebars
  • xz
  • Ajv
  • php-parser
  • Boxen
  • //TODO: List all third-party libraries

Glossary/Terminology

//TODO

  • SSOT: // TODO
  • Artifact: // TODO
  • Template: // TODO
  • Definition file: // TODO
  • Definition source: // TODO
  • Resolver: // TODO
  • Transformer: // TODO
  • Recipe: // TODO
  • Domino: // TODO
  • Ride: // TODO
  • Schema: // TODO
  • Technology: // TODO
  • Kody: // TODO
  • Concept: // TODO
  • Command: // TODO
  • Kodyfire: // TODO
  • Run: // TODO
  • Root source: // TODO

kodyfire's People

Contributors

anis-marrouchi avatar akremsalhi avatar selmi5 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.