Skip to content

Open source business application platform for fast development

License

Notifications You must be signed in to change notification settings

przemSzer/openkoda

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Openkoda Logo

Ready-to-use development platform that accelerates the process of building business applications and internal tools.

License: MIT Openkoda: 1.7.1 Java: 17.0.2 Spring Boot: 3.0.5

  • Reduce development time and effort. Use pre-built functionalities and out-of-the-box features.
  • Adopt a flexible and scalable approach. Build applications with dynamic entities. Choose from multiple multi-tenancy models.
  • Use technology you already know: Java, Spring Boot, JavaScript, HTML, Hibernate, PostgreSQL
  • Extend as you wish. Openkoda offers unlimited customization and integration options.

openkoda admin

πŸ“ŒContents

🧩 Integrations
πŸš€ How to start
βœ… Out-of-the-box features
πŸ‘¨β€πŸ’» Tech stack
πŸ’‘ Sample applications
πŸ’‘ Application screenshots
πŸ’™ Contribution
πŸ“œ Release notes
🀝 Partners

🧩 Integrations

Enhance your application by adding integrations.

Open Source

logo-slackΒ Β  logo-discordΒ Β  logo-basecampΒ Β  logo-githubΒ Β  logo-jiraΒ Β  logo-trelloΒ Β 

Enterprise

logo-googleΒ Β  logo-facebookΒ Β  logo-stripeΒ Β  logo-ms-teamsΒ Β  logo-ldapΒ Β 

πŸ‘¨β€πŸ’» Tech stack

  • Java (17+)
  • Spring Boot 3.x
  • Hibernate
  • PostgreSQL
  • GraalVM

πŸš€ Getting started

Installation

There are two installation options to start application development with Openkoda:

  • Building from sources
  • Running as a Docker container

Option #1: Build from Source

Prerequisites:

Git, Java 17+, Maven 3.8+, PostgreSQL 14+

  1. Create an empty database
  2. Clone or download this Git repository
  3. Build application with maven:
mvn -f openkoda/pom.xml clean install spring-boot:repackage -DskipTests
  1. Initialize the database in a first run:
java -Dloader.path=/BOOT-INF/classes -Dspring.profiles.active=openkoda,drop_and_init_database -jar openkoda.jar --server.port=<http port>
  1. Run Openkoda
java -Dloader.path=/BOOT-INF/classes -Dsecure.cookie=false -jar openkoda.jar --spring.profiles.active=openkoda --server.port=<http port>

Detailed instructions can be found in the Installation manual.

Option #2: Run as a Docker Container

Docker images are available at Docker Hub : https://hub.docker.com/r/openkoda/openkoda

It can be launched via simple:

docker pull openkoda/openkoda:latest

Please note that in that case Postgres needs to be already in place and SPRING_DATASOURCE_URL, SPRING_DATASOURCE_USERNAME, SPRING_DATASOURCE_PASSWORD env variables needs to be adjusted when running docker (see Docker Hub for detailed options)

Docker compose

A simpler option may be to use the Docker Compose scripts located in the: ./docker/docker-compose.yaml and ./docker/docker-compose-no-db.yaml - depending on your preference, with or without Postgres as a part of the docker service. Here is a useful one-liner :

curl https://raw.githubusercontent.com/openkoda/openkoda/main/docker/docker-compose.yaml | docker compose -f - up

βœ… Out-of-the-box features

To significantly reduce development time and effort, Openkoda offers pre-built functionality and out-of-the-box features.

πŸ”€ Dynamic entities:

Create database table, CRUD functionality, form, and overview with no need of re-compilation

πŸ› οΈ Application admin panel:

  • App Configurations: Manage email settings, roles, privileges, and HTML templates.
  • Audit Screen: Track changes to data for accountability.
  • System Logs: Review logs for activity insights and troubleshooting.
  • System Health: Get a quick overview of system performance and status.

πŸ‘€User Management

  • Invite users to the organization
  • Set roles globally and within the organization context
  • Access user profile settings
  • Spoof user (available in admin mode)

πŸ”‘ Roles and Privileges

  • Create global or organization-specific roles
  • Assign privileges from a list to each role

🏒 Organization management

  • Separate organization data
  • Implement security rules for data access
  • Customize your own dashboard
  • Assign organizational roles, such as member or admin, to users.

πŸ“ CMS

  • Modify HTML templates
  • Edit draft versions of resources
  • Introduce new public resources

πŸ—‚οΈ Resource Management

  • Manage file overview
  • Resize images
  • Set files to public access

πŸ”Š Event Listeners:

Respond to application events (e.g., user creation, login, application start) with built-in Openkoda handlers (e.g., messaging, push notifications).

πŸ’Ύ Backups:

Embedded database backup routines

πŸ“₯ Import and export:

Export components from current app and easily import them into another Openkoda Core instance

πŸ—„οΈ Multiple Multi-tenancy models:

Openkoda supports the following multi-tenancy setups:

  • Single Database / Single Schema
  • Single Database / Many Schemas
  • Multiple Databases / Many Schemas

See multitenancy setup for more details

πŸ”„ Job Requests

Schedule jobs to be performed in time intervals Process jobs with event listeners

πŸ”” Notifications

Synchronize your application with notifications channels: Email Slack Jira GitHub Trello Basecamp

βœ‰οΈ Email Sender

Customize email templates via CMS Schedule emails

πŸ’‘ Sample applications

Openkoda Application Templates are sample applications built with Openkoda.

They represent a standard set of functions for a traditional web application provided by Openkoda Core, as well as business functionalities created specifically for these examples.

Application Templates can be easily extended, taking into account both the data storage schema and any custom functionality.

Learn more in our 5-minute guide.

Timelog

Timelog is a time tracking solution for companies of all sizes. It allows employees to record hours spent on specific tasks, while managers generate monthly performance reports. Learn more.

timelog user timelog admin

Insurance Policy Management

Insurance Policy Management is a dynamic policy data storage tool with a variety of embeddable widgets for personalized customer and policy dashboards. Widgets include: message senders, email schedulers, attachment and task lists, notes, and detailed customer/policy information to improve operational efficiency and customer engagement. Learn more.

insurance user insurance admin

Weather App

A sample application that provides weather forecast for selected vacation spots.

Watch the short video to see the building process: How to build a weather app in less than 20 minutes?

πŸ’‘ Application screenshots

CMS

openkoda-frontendresource-all

Organization Settings

openkoda-organization-settings

Job Request

openkoda-job-request

Event Listener

openkoda-event-listener

Forgot Password

openkoda-forgot-password

πŸ’™ Contribution

Openkoda is an open source project under MIT license. It’s built by developers for developers.

If you have ideas for improvement, contribute and let's innovate together.

How to contribute:

  1. Create a fork
  2. Create a feature branch from main branch
  3. Push
  4. Create a Pull Request to an upstream main branch

Detailed contribution rules

πŸ“’ Follow, learn, and spread the word

Openkoda Community: Become a part of Openkoda
YouTube: Learn how to use Openkoda
LinkedIn: Stay up to date
About us: Let us introduce ourselves

πŸ—ƒοΈ Release notes

Openkoda is constantly evolving. Check out the changelog:

Openkoda 1.7.1. πŸš€

  • Support for dynamic privileges management
  • Optimize custom dashboard view
  • Manually create data reports with sql queries
  • Improve dashboard UI
  • Filter dynamic entities by their attributes
  • Refactor components .zip export
  • Update Insurance App components .zip
  • Fix issues and bugs

Openkoda 1.5.

  • Dynamic Entities: Now create database tables, perform full CRUD operations and generate forms.
  • New Dashboard UI: Enhanced for better readability and smoother navigation flow.
  • Files Assignment: Support for dynamically registered entities.
  • Organization-Level Email Configuration: Customize email settings at the organization level.
  • Bug Fixes: Various fixes for improved app stability and performance.

Openkoda 1.4.3.

  • Page Builder: Introducing a tool for creating custom dashboards.
  • Web Forms Assistance: Streamlined web form creation based on your data model definitions.
  • YAML Components Import/Export: Easily manage components such as web forms, endpoints, server code, event listeners, schedulers, and frontend resources.
  • Dashboard UI: Upgrades for an improved dashboard interface.
  • Updates & Security: Minor adjustments and security fixes.

🀝 Partners

Openkoda source code is completely free and is available under the MIT license.​

Join us as a partner in transforming the software development market by delivering maximum value to your clients using Openkoda. The goal is to simplify the process of building enterprise applications, allowing developers to focus on core business logic.

Learn more about Openkoda Partner Program.

☁️ Managed Cloud

Our enterprise managed cloud allows for easy deployment and scaling of your Openkoda applications. Contact us for more information.

Openkoda Facebook Openkoda Facebook

About

Open source business application platform for fast development

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 85.8%
  • HTML 12.9%
  • Gherkin 1.1%
  • PLpgSQL 0.1%
  • Shell 0.1%
  • Dockerfile 0.0%