Documentation
BUUL: Smart Coding Platform (beta version)
Thank you so much for using our platform.
- Version: 0.6.0.beta
- Author: Bitify Corporation
- Created: 7 September, 2022
- Update: 4 December, 2023
If you have any questions that are beyond the scope of this help file, Please feel free to email via Support Page.
Request Account
Follow the steps below to request your account:
- Go to buul.bitify.it page to find the request account form. You will need to fill all field and select the account plan.
Name:
Eg. MarkSurname:
Eg. WilliamsEmail:
example@bitify.itPlan:
Free Plan- Click on Confirm button and if all goes well then you will see a succesfull message.
- You will recive your personal account credentials.
- Insert your credentials in the login page and you are done.
Create project
To create your first project you will have to follow simple steps:
- Go to projects page by clicking the button
in the left side menu.
- Click on New button
- Select project type.
- Monolithic
- Microservices
- Insert all needed information.
- Name: The project name.
- Description: A project description to describe the project.
- Group Id: will identify your project uniquely across all projects, so we need to enforce a naming schema.
It has to follow the package name rules, what means that has to be at least as a domain name you control,
and you can create as many subgroups as you want.
eg. org.apache.maven, org.apache.commons - Artifact: You can choose whatever name you want with lowercase letters and no strange symbols.
- Click on Save button to create project.
Create microservice
To create a microservice with Buul is very simple:
- Go to project details page by clicking the button with eye
icon.
- Click on Add button under Custom Microservices
- Insert microservice name.
- Click on Save button to create microservice.
- Go to microservice details page by clicking on microservice card.
- Click on Project Info to open microservice configuration. Here you could edit microservice parameters.
- Name: By default is the same of parent project.
- Description: By default is the same of parent project.
- Group Id: By default is the same of parent project.
- Artifact: By default is the same of parent project.
- Port: By default is 8081 (8082, 8083 and so on for other microservices).
- Company Name: By default is empty. This field will be used in the comments of code.
- Author: By default is empty. This field will be used in the comments of code.
- Click on Edit button to enable edit mode.
- Click on Save button to persist your changes.
Create workitem
You can create microservice workitems and monolithic workitems in the same way.
- Go to project details page by clicking the button with eye
icon.
- If your project is a monolithic architecture click on edit button and the workitem ADD button will appear.
If your project is a microservices architecture, otherwise click on microservice card to go in details page, then click on edit button and the workitem ADD button will appear. - Click on Add button under Workitems.
- Insert workitem name. You can also add an optional description.
- Click on Save button to create workitem.
If everything went well, you can now start to characterize the workitem by adding properties and relations.
Add Property
By clicking on three dots icon in the right corner of workitem you could activate a workitem menu.
- Click on + Property.
- Insert the requested details:
- Key: Enable it if the property is a unique identificator.
- Required: Enable it if the property is required. If it is Key, then it's also Required by default.
- Type: Select the type of the property. (See Table 1)
- Name: The property name.
- Comment: The comment describe what is the aim of the property.
Type | Description |
---|---|
Int | Integer number until 32 bit. |
Long | Integer number until 64 bit. |
String | A Text. |
Boolean | Value that can be true or false. |
Date | Property that represents a date. |
Big Decimal | If you are dealing with money, or precision is a must, use BigDecimal. |
This is a sample of workitem:
Add Relation
In order to create a relation you will need at least two workitems. By clicking on three dots icon in the right corner of workitem you could activate a workitem menu.
- Click on + Relation.
- Insert the requested details:
- Master: Enable it if the selected workitem is the owner of the relationship.
- Type: Select the type of the relation. (See Table 2)
- Workitem: Select the workitem to relate.
- Comment: The comment describe what is the aim of the relation.
Type | Description |
---|---|
@OneToMany | Each workitem A istance can be related to one ore more workitem B istance. |
@ManyToOne | More workitem A istance can be related to one workitem B istance. |
@ManyToMany | More workitem A istance can be related to one or more workitem B istance. |
@OneToOne | Each workitem A istance can be related to only one workitem B istance. |
@Self | This is a self relation. |
This is a sample of workitem with relation:
Select technologies
You can easily select your favourites technologies:
- Go to project details page by clicking the button with the eye
icon.
- If your project is a monolithic architecture, click on edit button and you can choose what technologies and modules will be used by the generator.
If your project is a microservices architecture, otherwise you can choose the SPA (Single Page Application) technologie, then click on microservice card to go in details page, now click on edit button and you are able to select module and technologies like in monolithic case.
If you select a frontend technologie for a specific microservice, Buul will create a plus dedicated SPA for the single microservice in addition to the global SPA. - For Spring Boot and Angular you can also choose their respective versions.
- Finally click on Save button.
Note: React and Node.js technologies are coming soon.
Generate
If you have correctly created project, microservices and workitems, now you can start the magic.
Just click on Generate button and the magic begins.
After a couple of seconds you can click on Download button to get the entire project.
If you have configured correctly your git repository (See Here) you can push project by clicking on the dedicated button.
Note: Not all checks are yet implemented, please pay attention to project definition.Run
After you have downloaded or pulled your project, everything is ready for run.
You can run the project with docker in one click. Buul prepare for you all necessary docker files and docker compose. The only thing you need is execute the following command, in the root folder (you can see docker-compose.yml file):
docker-compose up -d
Otherwise you can run the project with your usual tools.
- Java: 17
- Spring Boot: 3.0.3
- Angular: 16
- PrimeNG: 16
By default, with microservices architecture the Gateway comes with Spring Boot 3.0.3.
In addition we recommend the following versions for develop machine:
- Node: 16
- Npm: 8.5
You can refer more information about how to get docker here: Get Docker
After the building and starting process is completed, open your browser and go to localhost
and enjoy your new Web App.
This is an example of main Dashboard
Example of an item details:
Example of an item details with relationed items:
- Username: admin
- Password: 123456
Project Settings
Documentation and examples for project settings.
Team Configuration
If you are the owner of the project, you are able tu add/invite a new team member and share project.
- Go to project details page by clicking the button with eye
icon.
- Click on Team accordion.
- If you are the owner of the project you can see the Add New Member button.
- Insert the new member team email and click on Save button.
- If the new member email is already present in Buul, user will be added instantly to project, otherwise it will send an invitation email.
Git Integration
Buul offers to you a way to integrate easy generated code into your external git repository.
- Go to project details page by clicking the button with eye
icon.
- Click on Git Configuration accordion.
- Insert the following information and click on Save button.
- Git Url: Url of your git repository.
- Git Username: Username that Buul will use to authenticate.
- Git Token Token that Buul will use to authenticate.
- If the provided informations are correct you will have a fully integrated git project.
- After your first generation you will see the Git Push button.
Modules
Here we explore the main modules provided by Buul.
Name | Description |
---|---|
Spring Boot | If you select Spring Boot module, with its desired version, a Maven-based backend server will be generated that exposes REST-API to interact with your workitems. A three-tier architecture is adopded, with Persistence Layer, Service Layer and Controller Layer. About persistence you'll find JPA-based repositories. By default you have a H2 database for development environment and a MySQL database for the other environments. Swagger UI is provided to document and test the available endpoints (see Readme file for more information). |
Node Js | Coming Soon. |
Angular | If you select Angular module, with tis desired version, a mobile first Single Page Application (SPA) based on Angular framework will be generated. In addition it comes with PrimeNG, the Most Complete Angular UI Component Library. |
React Native iOS | Android | If you select React Native module, will be generated iOS App and Android App based on React Native framework. |
React | Coming Soon. |
Report | This module will add Pdf, Excel and CSV reports for your workitems lists. This feature is base on Jasper Reports, the world's most popular open source reporting engine. |
Security | Security module will add a security subsystem to manage authentication and authorizatione of your project. The security module version will inherit the one chosen for the Spring Boot framework back-end. You can learn more about here. |
Ready To Use Microservices
Here we explore the main Ready To Use microservices provided by Buul.
Name | Description |
---|---|
Gateway | Microservice based on Spring Gateway that comes with Spring Boot 3.0.3. It is already configured to serve correctly your microserivces project, you just need to enable it. |
Security Ms | Microservice based on Spring Security, already configured to manage authentication and authorization of your project. Being an independent service, you can also choose between Spring Boot version 2.5.6 and 3.0.3. You can learn more about it here. |
Security
Documentation and examples for Security features.
Authentication
Authentication is a process that verifies that someone or something is who they say they are. Technology systems typically use some form of authentication to secure access to an application or its data. For example, when you need to access an online site or service, you usually have to enter your username and password. Then, on backend part, security subsystem compares the username and password you entered with a record it has on its database. If the information you submitted matches, the system assumes you are a valid user and grants you access. System authentication in this example presumes that only you would know the correct username and password. It, therefore, authenticates you by using the principle of something only you would know.
Monolithic Security
Now let see how enable and configure security system in a monolithic project.
- Create or open a monolithic project.
- Enable edit mode by clicking on edit button.
- Enable Security module
Click here to understand how to configure roles and permissions.
Microservices Security
Now let see how enable and configure security system in a microservices project.
- Create or open a microserivces project.
- Enable edit mode by clicking on edit button.
- Enable Security-ms Ready To Use microservices. In this way Buul add a dedicated Security microservice to your architecture.
- Choose the version of Spring Boot you wish to use for the service.
- Enable Security module in each microservice that needs to be protected. So open microservices details by clicking on it and click on Security module.
Click here to understand how to configure roles and permissions.
Configuration
By default, just generated applications provides two basic roles: ADMIN and USER.
ADMIN has all permissions otherwise USER has no permissions, so we need to configure it. Now we discover how manage roles and permissions.
- Run your project.
- Go to security page by clicking the button
in the left side menu.
- Click on ROLES menu item. Here you can add, remove or update each roles.
- Click on the eye icon of USER roles to access user role details.
- Click on edit to enable edit mode.
- Click on + to add permissions.
Permissions
By default, each endpoint has a dedicated permissions so we are able to create a best fit roles.
A permission name is made basically from two parts:
workitem name + feature name
Name | Description |
---|---|
Create | _create Eg. workitem_create |
Update | _update Eg. workitem_update |
Delete | _delete Eg. workitem_delete |
Delete All | _delete_all Eg. workitem_delete_all |
List Paged | _list_paged Eg. workitem_list_paged |
List All | _list_all Eg. workitem_list_all |
Get by id | _by_id Eg. workitem_by_id |
Report PDF | _report_pdf Eg. workitem_report_pdf |
Report CSV | _report_csv Eg. workitem_report_csv |
Report XLS | _report_xls Eg. workitem_report_xls |
Click here to understand how to add permissions to a role.
iOS & Android
Documentation and examples for mobile app features.
Run
We recommend to consult the official documentation to understand how to run the application.
Running On Device
VIDEO DEMO
How to model and generate Spring Boot / Angular / Docker Web Apllication in less then 10 minutes.
FAQ
A FAQ is a list of frequently asked questions (FAQs) and answers on a particular topic.
- Each workitem has an id property
- Each workitem has a unique name
- Each microservice has a unique name
- Each property has a unique name
- Self relation must be type @Self
- If you have removed Gateway you should configure your own. (Only microservices architecture)
Source & Credits
- Spring Boot - https://spring.io/projects/spring-boot
- JPA - https://spring.io/guides/gs/accessing-data-jpa/
- Spring Cloud - https://spring.io/projects/spring-cloud
- Spring Gateway - https://spring.io/projects/spring-cloud-gateway
- Maven - https://maven.apache.org/
- Swagger - https://swagger.io/
- Jasper report - https://www.jaspersoft.com/it
- Node js - https://nodejs.org/it/
- Angular - https://angular.io/
- Prime Ng - https://www.primefaces.org/primeng/
- React Native - https://reactnative.dev
- Font Awesome - https://fontawesome.com/icons
Support
If this documentation doesn't answer your questions, So, Please send us Email via Support Page
We are located in GMT +1 time zone and we answer all questions within 12-24 hours in weekdays. In some rare cases the waiting time can be to 48 hours. (except holiday seasons which might take longer).
Thank You.
Changelog
See what's new added, changed, fixed, improved or updated in the latest versions.
For Future Updates Follow Us @linkedin
Version 0.6.0 (4 December, 2023)
- Added Option to change Spring Boot and Angular versions.
- Fixed Some minor bugs for Frontend.
- Updated Documentation updated with new features and screenshots.
Version 0.5.0 (14 April, 2023)
- Added Mobile App iOS & Android with React Native Framework
- Fixed Some minor bugs for Backend
- Fixed Some minor bugs for Frontend
- Updated New default color in Dashboard
Version 0.4.0 (7 September, 2022)
- start First beta release