sprout-core

The core of the Sprout Platform

License

License

Categories

Categories

Ant Build Tools Net
GroupId

GroupId

net.savantly.sprout
ArtifactId

ArtifactId

sprout-core
Last Version

Last Version

2.0.0-RC2
Release Date

Release Date

Type

Type

jar
Description

Description

sprout-core
The core of the Sprout Platform
Project URL

Project URL

https://github.com/savantly-net/sprout-platform
Source Code Management

Source Code Management

https://github.com/savantly-net/sprout-platform/tree/master

Download sprout-core

How to add to project

<!-- https://jarcasting.com/artifacts/net.savantly.sprout/sprout-core/ -->
<dependency>
    <groupId>net.savantly.sprout</groupId>
    <artifactId>sprout-core</artifactId>
    <version>2.0.0-RC2</version>
</dependency>
// https://jarcasting.com/artifacts/net.savantly.sprout/sprout-core/
implementation 'net.savantly.sprout:sprout-core:2.0.0-RC2'
// https://jarcasting.com/artifacts/net.savantly.sprout/sprout-core/
implementation ("net.savantly.sprout:sprout-core:2.0.0-RC2")
'net.savantly.sprout:sprout-core:jar:2.0.0-RC2'
<dependency org="net.savantly.sprout" name="sprout-core" rev="2.0.0-RC2">
  <artifact name="sprout-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.savantly.sprout', module='sprout-core', version='2.0.0-RC2')
)
libraryDependencies += "net.savantly.sprout" % "sprout-core" % "2.0.0-RC2"
[net.savantly.sprout/sprout-core "2.0.0-RC2"]

Dependencies

compile (6)

Group / Artifact Type Version
org.springframework.boot : spring-boot-starter-data-jpa jar
org.springframework.boot : spring-boot-starter-security jar
org.springframework.boot : spring-boot-starter-data-rest jar
org.springframework.boot : spring-boot-starter-hateoas jar
org.springframework.data : spring-data-rest-hal-explorer jar
net.savantly : spring-fixtures jar 1.0.0-RELEASE

test (3)

Group / Artifact Type Version
org.springframework.boot : spring-boot-starter-test jar
org.springframework.security : spring-security-test jar
com.h2database : h2 jar

Project Modules

There are no modules declared in this project.

sprout-platform

CI

Sprout Web App

This software uses an Open Source Initiative approved license.
Open Source Initiative

What is Sprout?

Sprout is a web application framework, different than the dozens that already exist.
Similar to Ruby on Rails, Laravel, Django, and others - it facilitates rapid development of a web application.

  • Provides default configurations
  • Uses conventions and standards to develop and debug faster

Similar to WordPress.

  • You can use the Sprout Server Docker image as a "no code" solution
  • Custom css or third party plugins/modules can be added without recompiling the server.

Similar to other headless CMS.

  • It's 'head optional'.
    The provided UI is a stand-alone ReactJS application, but there's no requirement to use it.

Sprout is different than other frameworks -

  • You can use it as an application dependency
    Adding Sprout Starter to your Spring project allows customization, replacing default components, extend provided functionality, or turn off capabilities.
  • Non-Intrusive
    Sprout can be replaced or removed with less effort than other frameworks due to abstractions.
    You can use Sprout to standup a project, then replace implementations until it is no longer required.

Why not code generation?

Code generation has applicable use cases, but applications built on generated code can be difficult to update especially with customizations.
With Sprout as a dependency, customizations and modules are abstracted from the core application code, so you can update it like any other application dependency.

Use Cases

The Sprout Platform provides an extensible and modular application platform, so it's suitable for custom CMS, line-of-business, application portals, or other types of apps.
The modular design allows closed-source customizations to be applied for each unique case.

The development is currently sponsored by a rapidly growing restaurant franchise, using it as a "Enterprise Portal", where they can bring together disparate systems.
It's also being used as a line-of-business application to manage entities and data attributes, such as franchise location information, QA, and BI administration.

Please contact [email protected] if you are interested more in this use case.

Documentation

Go here for full documentation

The front-end UI uses a plugin system to add or modify functionality.
Read more about the front-end

The back-end server uses a module system to add or modify functionality. A module may also provide plugins to the UI.
Read more about the back-end

You may notice, inspiration [and some code] for the user-interface came from Grafana - an excellent dashboard application.

If there is a specific feature you'd like, or if you experience a bug, please open an issue here

If you're a develper, PRs are welcome!
If not, you can support this project by becoming a GitHub Project Sponsor, or through Patreon, or PayPal paypal

Quick Start

Use the docker images to start an example server + web app.
docker-compose up

The example server creates a user -
username: admin
password: changeme!

Examples

Live Server Demo

  • username: admin
  • password: changeme!

https://sprout-server.herokuapp.com/

Live Client Demo

  • username: admin
  • password: changeme!

https://sprout-web.herokuapp.com/

Screenshots

Default Website Landing Page

Sprout Web App

Editing a Panel

Editing a Panel

Panel Editor

Sprout Web App

File/Document Management

Editing a Panel

net.savantly.sprout

Savantly

Savantly custom software solutions for your business

Versions

Version
2.0.0-RC2
2.0.0-RC1