Git Product home page Git Product logo

clownfish's Introduction

Clownfish clownfish

Smart Content Management System (CMS) using Spring Boot

GitHub tag (latest by date)

Documentation

Work in progress

Features:

  • Embedded Tomcat
  • Spring Boot
  • Templating (Freemarker/Velocity)
  • External datasources
  • SAP remote function calls
  • Asset management
  • Keywords
  • Cronjob scheduler
  • Markdown content
  • Lucene search engine
  • Static site generation
  • WebDAV server
  • JasperReports JRXML template creation and PDF export
  • Java class runtime compilation with Maven support
  • Supports business logic coded in Java, Kotlin, Groovy and Scala
  • Dynamic GraphQL support
  • Websocket server
  • Dynamic OData support

clownfish's People

Contributors

dependabot[bot] avatar hat-kid avatar marslug avatar rawdog71 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

clownfish's Issues

JVM Class generator for content classes

An automatic class generator should generate class files of the internal content classes. This should be available for all supported JVM languages (Java, Kotlin, Groovy and Scala).

Keyword lists

Add keyword lists to group keywords into lists. They can be used for filtering the associated contents/assets in the frontend.

Preview of content in the siteoverview

It would be nice to have a preview overlay for the editors in the siteoverview. When hovering over an entry in the content selection there should appear an overlay of the content.
This should be available for all content types:

  • content
  • datalists
  • assets
  • assetlibraries
  • keywordlibraries

Hibernate dynamic table creation

After recognizing performance issues while fetching data from the content storage, I decided to create dynamic tables in the database with hibernate library.

Add scrapyard tab

Add the scrapyard tab for showing the content that has been scrapped.

It should be nearly the same like the content tab. Difference is that content should be deleted completly or moved back into the visible content tab.

Add asset libraries to site

In the backend let content manager add asset libraries (1 or more) to a site. Then it is possible to easily render assets in a site.

Add a public flag to assets

Assets should be marked as public/nonpublic to prevent the usage of assets that are not intended to be available for the public.

Automated form generator

Automated form generator
Generates form templates out of Clownfish classes or database tables

Layout layer for flexible content/template generation

A layout tier between site and template should be integrated.
Right now templates have hardcoded content parts in it. To use templates in a more flexible way, content parts should be defined as variable sections in the templates.

Templates should be flagged as layout template. In those templates there could be several

sections that correspond to templates with variable content parts. Right now a content part looks like this:
${sitecontent.User.name} where User is the identified hardcoded content from the backend.
In the future it should look like this:
{sitecontent.#User#.name} where #User# is the class name of the corresponding content type.
The content itself must be assigned in the siteoverview to this template. The content editor can change this assignment in a flexible way.

This should be implemented for following content types:

  • Simple content
  • Datalists
  • Assets
  • Assetlibraries
  • Keywordlibraries

Web service: GetContentData

Implement a web service that returns all specific data to a content.
Parameter id

Return: Class info, Content data, keywords

Web service authentification

Web services should be called with authentification only.
Services that retrieve content or store content must be secured with an authentification mechanism.

Importing reefs does not commit automatically

After importing reefs into another Clownfish instance does not commit the versions of templates (stylesheets and javascripts) automatically. The versions remain at version 0, so sites can not render properly after assigning those imported reefs.

Extend SAP RFC function group and RFC functions

Right now only SAP function groups starting with z* are available in the dropdown list of the RFC function chooser. With an input field it should be possible to use other RFC functions groups.
RFC functions are also limited to those that begin with z*. This limitation should be eliminated.

Flag a site as job

Extend the cf_site table with a job flag, so that it only can be triggered by a quartz job trigger and not being called as a site.

AssetLibrary

Add asset libraries to define groups of assets in the backend to display those libraries later in the frontend.

Intergration of search engine

Evaluate search engines that could be integrated into the system.
The engine must cover the content database and documents uploaded to the system.

Add sitemap generator

Add a flag to the CfSite table that indicates the use for the sitemap generator. If set, the generator lists this site in its XML file.
The sitemap.xml should be generated dynamically when calling by the crawlers.

Include JVM languages

Include JVM languages in backend to code business logic for the templates.
Right now, the business logic can be implemented directly in the Freemarker/Velocity templates. To split this up and encourage devs to code business logic in JVM languages, it should be integrated in the backend aswell.

First language support should be JAVA for a proof of concept.

Asset Keyword relationship

When upload of assets (1 or multiple) is finished, a dialog for connecting with 1 or more keywords should be shown.

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.