01 hour setup project working environment

01 hour setup project working environment

Continue to explain more detail about 30-days-launching-product, we will share more detail about how we can fasten the "Initialize the environment: from 24 hours (3 days) to 01 hour"

Context

Setup project working environment is first step of IT engineer to start there 1st line of code to setup the full source code structure including:

1. Select the main development languages:  need to confirm for each components as backend, frontend (web), mobile, ...
2. Select tech-stacks, frameworks
3. Select on libraries
4. Select coding style, coding convention
5. Define / setup deployment process

No alt text provided for this image
CI/CD flow which support fasten project setup and deployment

After working in more than 100+ different products, different technologies, we had started to standard the generation steps so we can using friendly command-line to generate new source code as well as keeping the good coding practices across all projects at Investidea. With this purpose, the tool "charizard-generator" was born.

What is Charizard ?

Our project templating engine, to have a Swiss Army knife which can help boostraping process and initial setup time to be no longer a pain. It is expected to be able to generate a skeleton for various technical stacks in our company, along with our customized libraries, design patterns, frameworks and so on.

Charizard pokemon

Refer more at On-the-way-to-an-universal-platform about more tool supporting our software development process.

How Charizard works ?


Step 1: Running Charizard

Prerequisites: NodeJS v14.17.6 (latest LTS at current version of Charizard)

npm start

Step 2: Select project template based on your project need

Select project template from the supported list

Step 3: Select / provide other information depending on your selected template

Other informations / options for java-spring-boot template project

Step 4: Run the project

mvn clean install
docker build -t java demo project:local-latest .
docker compose -f ./docker-compose.yaml up

Step 5: Open the new generated project and push code to Source code control (Git)

From now on, all members of the project team can checkout the project source code and start building their first deliverable, focusing more on the business requirements.

Current support on Charizard alpha version ?

Current Charizard alpha version already supports 05 templates:

1. java-spring-boot
 - Component: Backend-API
 - Template includes: Backend Java based on Spring boot
2. java-spring-webflux
 - Component: Backend-API
 - Template includes: Backend Java based on Spring and Webflux
3. nodejs-fastify
 - Component: Backend-API
 - Template includes: Backend based on Fastify
4. nextjs
 - Component: Frontend
 - Template includes: Frontend React based on NextJS with common library, suitable for Consumer Web application
5. reactjs-boilerplate
 - Component: Frontend
 - Template includes: Frontend React based on create-react-app, Redux toolkit, MUI, suitable for Admin dashboard

And more templates will come soon.

Continuous improvement ?

Following the idea of generating project template, the more experiences we learn from projects, the more templates will be added into Charizard so help us to kick-start really fast into project and keep the best practices across Investidea.

By continuous improvement, we continue to optimize not only the initialization step but also other steps which help reduce the project development effort and increase the code quality.

Above practices may or may not existed in your company, your team when you start a new project from scratch, leave us a message here for explore Charizard more detail or request for a new template.