Skip to content

Open source business application platform for fast development

License

Notifications You must be signed in to change notification settings

openkoda/openkoda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Openkoda Logo

Platform that speeds up building enterprise systems, SaaS applications, and internal tools.

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

  • Open-source, MIT license
  • Build new applications & replace legacy systems.
  • Deliver enterprise and SaaS applications 60% faster thanks to ready-to-use features.
  • Unlimited users. No proprietary technologies. No vendor lock-in.
  • Pre-built application templates:
    • Embedded Insurance
    • Claim Management
    • Policy Management
    • Property Management
    • Time Tracking

When to choose Openkoda

  • Enterprise foundation. Start with authentication, role-based security, advanced user management, multitenancy, multiple organizations support, SQL reporting, REST API, file & resource management, full audit trail, application & data automated backup, and admin dashboard already in place.
  • Reduce development time and effort. Use industry-specific application templates, pre-built functionalities and ready to use 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

πŸš€ Quick start
πŸ’Ύ Installation
βœ… Features
🧩 Integrations
πŸ‘¨β€πŸ’» Tech stack
πŸ’‘ Sample applications
πŸ’‘ Application screenshots
πŸ’™ Contribution
πŸ“œ Release notes
🀝 Partners

πŸš€ Quick start

The fastest way to start using Openkoda is to run the system with Docker Compose scripts and a Docker image that contains all the necessary prerequisites: Java, PostgreSQL, and Openkoda.

Make sure Docker Compose is installed on your system.

To download and start the complete system image, simply run this command in your terminal:

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

Once the startup is complete, you can access the Openkoda web application at the following local URL:

https://localhost:8080

Log in as an Administrator using the default credentials: login: admin and password: admin123.

Importing Openkoda application template

You may find some existing sample application templates in the examples directory in this repository.

Download the selected application package (as a .zip archive), then import the application within the Openkoda web interface by selecting: Configuration > Import/Export from the menu.

Note: If the only message you see after starting the import process is "IMPORT FILE," it may indicate that no components were found in the uploaded package, or the .zip file is corrupted or empty. Double-check that the file is not empty on your local filesystem before uploading.

πŸ’Ύ Installation

Installation options

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

  • Running as a Docker container
  • Building from sources

Option #1: Run as a Docker Container

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

Download the latest version of the Openkoda Docker image from Docker Hub:

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 need 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

Option #2: Build from Sources

Prerequisites:

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

  1. Create an empty PostgreSQL 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.

Running dev/test instance without https

Openkoda uses strict secure cookies setting to increase security.

If you want to run a development/test instance of Openkoda without https and not using localhost then you need to disable secure cookies setting by:

Resolving installation issues

If you encounter any issues during the installation or when running Openkoda for the first time, please:

  • Review the existing GitHub tickets, as a similar problem may have been reported before.
  • If not, raise a new ticket, including steps to reproduce the issue and relevant logsβ€”our development team regularly reviews reported issues.

βœ… Features

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

(*enterprise options)

πŸ§‘β€πŸ’» Enterprise Application Foundation

Build your application without losing time on functionality every application always needs. Start with authentication, user management, multitenancy, and admin dashboard already in place.

Openkoda Industry-Specific Application Templates

Start with our pre-built domain-specific Openkoda application templates giving you a solid base to build your custom applications. Get an enterprise foundation with a predefined data model, useful dashboards, and ready-to-use business features.

Customize and Extend Using Open-Source Java, JavaScript, and PostgreSQL

Extend your application with open-source, scalable, and high-performance Java and JavaScript (back-end), HTML/CSS (front-end), and PostgreSQL (database).

*Data Model Builder: Customize Your Data Model and Views with Development Kit UI

Easily update, rename, and create new tables and attributes in your custom data model using our Development Kit UI. Use our intelligent editor with an autocomplete feature to choose from a variety of data types, create dropdowns, multiselect, or conditional types of fields. All inputs are validated, and your changes are applied immediately to both UI and the database.

Dynamically configure your data screens – decide which attributes should be presented on the entity’s UI screen and which ones should be used as filters.

Dashboard Builder: Create Your Own Data Dashboards with Drag & Drop

Create useful dashboards for different user types and different organizations using pre-built widgets. Design custom views by combining widgets, images, and data tables in our drag & drop visual editor.

Modify Look & Feel of Your Application with Custom HTML/CSS

Craft a unique user experience by customizing HTML/CSS of your Openkoda application.

*Custom Business Logic

Define custom business logic from the UI using server-side JavaScript.

πŸ“Š Smart Reporting

SQL Reporting

Build reports and query your data using SQL. Define your periodic reports directly within Openkoda. Save and share useful reports and summaries across your coworkers.

*Reporting AI

Use natural language to create reports or query your application data ad-hoc. Iterate and update your prompt to adjust the results. Run AI-generated SQL queries without sharing your data outside the system. Save the report to run periodically or download it to Excel to share with your coworkers.

*Data Visualization

Visualize report data with a custom chart. Use ChartJs to visualize reports and embed it in dashboards and custom application screens.

βš™οΈAutomations

Email Sender

Send emails to users, administrators or co-workers. Set up an email address for sending notifications, updates, and other communications.

In-App Notifications

Programmatically send in-app notifications to a specific user, to users in a specific organization, or globally within the application.

*Data-driven PDF, Word and Excel Document Generation

Generate PDF, Word and Excel documents and attachments based on data-driven dynamic placeholders, calculated fields (including multi-row and multi-column tables), and conditional selection of your visual document templates.

*Business Processes Automations

Use Custom Events and Event Listeners and automate your business processes and trigger specific actions, like: send a reminder to your client about overdue payment or alert your sales team about specific opportunities. Use Job Scheduler to define how often the system should trigger the event.

*Custom Automation Logic

Define custom business rules from the UI using server-side Javascript.

Automate your business processes and trigger specific actions, for example: "find contracts about to expire and send notification to the relevant parties, or send reminders for overdue payments", or "generate and send attachments for a new contract".

πŸ”„ Custom Integrations

Automatically Updated REST API

Connect other applications to an automatically generated secure REST API for standard data model operations and endpoints implemented in your Openkoda application.

Custom Integrations

Use open-source Java or other standard programming languages to extend your system with custom integrations.

Integrations with External Applications

Enhance your application by integrating your application with the systems you already use, like: Slack, Discord, Basecamp, GitHub, Jira, Trello.

*Custom Integrations from the UI

Seamlessly connect with other systems and extend functionality with custom integration using intelligent server-side Javascript code editor.

πŸ‘₯ Advanced Security and User Management

Advanced User Management

Manage users across multiple organizations: invite new users, define user settings, apply roles globally and within organization context, manage passwords.

Role-Based Security Model

Define and manage user roles based on access privileges defined on the application, organization, table, individual object attribute, application view or at any other level. Create a precisely secured environment for your coworkers, customers and partners.

Custom Privileges

Define your custom access privileges types from UI to configure even more adjusted and secured environment.

🏒Scalable Multitenancy

Multiple Organizations Support

Create as many organizations, co-existing within a single Openkoda instance, as you want (organizations in a single database). Personalize the organizations with different logos and color palette.

*Advanced Multitenancy for Multiple Organizations Support

Introduce physical data separation and increase application scalability with advanced multi-tenancy models: organizations in separate schemas and organizations in separate databases.

Clustering

High-availability, high-reliability clustering deployment options.

See multitenancy setup for more details

πŸ—‚οΈ Flexible File Management

File & Resource Management

Centralize and efficiently manage all your files and resources stored in a database or local filesystem. Simplify access for your users to your digital assets. Store and manage your documents, images and files within your Openkoda application. Select database or local filesystem for physical storage. Simplify access to your digital assets.

*Advanced File & Resource Management

Store and manage your documents, images and files within your Openkoda application. Select database, local filesystem or Amazon S3 for physical storage. Simplify access to your digital assets. Centralize and efficiently manage all your files and resources in one location. Simplify access for your users to your digital assets.

πŸ“₯Import/Export your Data and Customizations

Export Data to CSV/Excel

Easily download your filtered data directly to Excel/CSV for further analysis.

*Import Data from CSV/Excel

Upload your CSV/Excel file to create new and update existing records. Ensure data quality with built-in import validation.

Components Import & Export

Simplify application management process. Upgrade your system easily by importing new application components (including: dashboards, forms, views, web endpoints, event listeners, schedulers, server side code) from a single ZIP file. Export and move your customizations across Openkoda instances.

*Maven Project Package

The exported ZIP archive with your Openkoda application contains a ready to use Maven project, so that you easily set up your local Java development environment and start extending your application with your favourite IDE.

πŸ› οΈControl and Maintenance

Full Audit Trail

Automatically track all changes made to any data within the application. Audit trail logs detailed records of modifications, ensuring transparency and accountability for all user actions.

Application & Data Backup System

Automatically backup your application and data to ensure security and recovery. Easily schedule and manage the backup process to protect your system against data loss and system failures.

System Health & System Logs

Monitor the actual health and performance of your system with real-time insights. Access detailed system logs to track events, diagnose issues, and ensure optimal operation.

🧩 Integrations

The following integrations are already implemented to enhance your application:

Openkoda Open Source

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

Openkoda Enterprise

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

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

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

πŸ’‘ 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 - Time Tracking / Timesheets Application

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 Appllication

A simple 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.