Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dynamiatools/framework

Fullstack Java framework for enterprise web application
https://github.com/dynamiatools/framework

framework hibernate java java-11 spring spring-boot zk

Last synced: about 1 month ago
JSON representation

Fullstack Java framework for enterprise web application

Awesome Lists containing this project

README

        

[![Maven Central](https://img.shields.io/maven-central/v/tools.dynamia/tools.dynamia.app)](https://search.maven.org/search?q=tools.dynamia)
![Java Version Required](https://img.shields.io/badge/java-17-blue)
[![Java CI with Maven](https://github.com/dynamiatools/framework/actions/workflows/maven.yml/badge.svg)](https://github.com/dynamiatools/framework/actions/workflows/maven.yml)

# Overview

DynamiaTools is a framework for building Java 17+ web applications fast and easy using standard design patterns, views
descriptors for automatic UI generation, actions, services and modules. Powered by **Spring Boot** v3.2 (https://spring.io), ZK
10 Jakarta (https://www.zkoss.org) for frontend and JPA 3+ with Hibernate 6.

## With DynamiaTools you can

- Create fully functional web applications without too much knowledge about Web Development.
- Write modular applications. Yes, you could create a module (jar file) and reuse it.
- It helps you to keep your project DRY.
- Automatic CRUD.
- Automatic REST endpoints.
- Extends the framework with new modules, actions and services.
- Use HTML5 in your application thanks to ZK framework, this means you can use bootstrap, css3, and many HTML5
technologies
- Customize your application with themes or templates.
- Use MVC or MVVM
- Integrate with other Java framework
- Much more.

## Installation

- Create a new SpringBoot project using https://start.spring.io
- Select Web, JPA and programing language for your spring app
- Optional select another framework or jdbc driver your need
- Download and import it in your IDE
- Add DynamiaTools dependencies
- Enable DynamiaTools in you application

```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tools.dynamia.app.EnableDynamiaTools;

@SpringBootApplication
@EnableDynamiaTools // <- this is all you need
class MyApplication {

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}

}
```

- Run
- Done!

**Maven**

```xml


tools.dynamia
tools.dynamia.app
5.1.3


tools.dynamia
tools.dynamia.zk
5.1.3


tools.dynamia
tools.dynamia.domain.jpa
5.1.3

```

**Gradle**

```groovy
compile 'tools.dynamia:tools.dynamia.app:5.1.3'
compile 'tools.dynamia:tools.dynamia.zk:5.1.3'
compile 'tools.dynamia:tools.dynamia.domain.jpa:5.1.3'
```

Artifacts are available in **Maven Central** repositories

## Documentation

Please visit (https://dynamia.tools) for full documentation and tutorials

## Building

- Install OpenJDK 17
- Install Maven 3.x
- Install Git
- Clone this repository
- Execute `mvn clean install` ;-)
- Done

## License

DynamiaTools is available under Apache 2 License

## History

We start developing DynamiaTools 13 years ago as an internal utility library for our projects at Dynamia Soluciones
IT (https://www.dynamiasoluciones.com). We needed that our developers could create web applications fast without too
much knowledge about specific frameworks or APIs like Spring or JPA.

### v1.x

First version was focus in many utility classes for hiding spring complexity, ZK apis, database connection, project
configuration, page navigation, services and domain code integration and reusable simple modules. We did same stuff over
and over again when we need create consistency user interfaces and actions across modules.

### v2.x

Then version 2.x focus on simplify and automatize user interface creation without the need to generate code
(that we think is easy to use but very hard to maintain). We created something called view descriptors, instead of write
UI code and layout components you just describe it using a simple YML plain file and, the framework do its best to
create the UI for you. On the other hand there are the most common thing you do when create any application that use
some data storage, the infamous CRUDs. We ended writing the same kind of code for every simple entity. DynamiaTools
create beautiful CRUDs for you.
You just need create an entity and your done.

### v3.x

Finally, version 3.x come to life, we reorganize, repackage and optimize everything. This version has better code,
better design, better performance, new and great features, it's not backwards compatible and, most important is the
first version open source. Yes, we want to share our work with you.

### v4.x

Now, version 4.x goal is Java 11+ and beyond, better performance, integrate new frameworks and new website with much better
documentations and demos.

Please use it, extend it and help us to build a great community around it. We will continue support this project always.
Currently, we have 10 projects and more than 40 modules powered by DynamiaTools 4. As you can see this is not
a new framework but is new in the open source world. This is not the only project we are going to open, we have more
products to share.

### v5.x

The main goal of 5.x version is to upgrade to latest version of Java 17, spring and hibernate.

## Want contribute?

Please read [Contributing Guidelines](https://github.com/dynamiatools/framework/blob/master/CONTRIBUTING.md)