Skip to content

alexander-kiriliuk/k-platform-core

Repository files navigation

logo K-Platform is a framework for the rapid development of modern applications

Embedded platform's modules

  • Explorer: analyzes the database schema and dynamically updates the admin-panel UI for CRUD operations, paginated displaying of entity data with their relationships etc., providing flexibility and extensibility with TypeORM integration.
  • XML data-bridge: automates the data management process, simplifying the tasks of importing and exporting data. Uses specific XML-markup to transfer the state of the database or pinpoint transfer of certain records in tables between different servers.
  • Background processes: module for management of background tasks, providing features like automatic startup, dynamic control, and comprehensive logging. Enabling efficient and reliable handling of recurring tasks through advanced cron-job scheduling and inter-module communication.
  • Media: provides powerful capabilities for working with various types of media files. It supports uploading, thumbnail slicing, automatic creation of optimized copies, as well as storing copies in modern formats such as WEBP. It is able to work with vector images. Stores metadata of files, including extend metadata such as GPS, ICC, EXIF etc.
  • Files: provides easy integration and powerful file management, including uploading, storing in public and private directories. Support storing extended metadata for images, audio and video files.
  • Users: provide scalable functionality for managing system users. Supports password encrypting, user profile management with role-based access control.
  • Authorization: provides a OAuth 2.0 mechanism for authentication and authorization of users in the system, as well as protection against brute-force attacks.
  • CAPTCHA: represents two built-in CAPTCHA-types: Google reCAPTCHA and standard graphical CAPTCHA. You can also extend the module with your own CAPTCHA implementation.
  • Configuration: allows you to effectively manage the application settings using .properties files, supports real-time dynamic configuration change and type safety through automatic generation of TypeScript files. Also supports local and global overrides, which allow you to flexibly adapt the configuration for different environments.

Admin-panel of application is based on Angular, please read more details about here.

Documentation

Please navigate to guides folder for read detailed documentations of application and also visit codebase documentations website

Fast start

Before installing the platform, make sure that you have Node.js, Redis installed and one of the supported DBMS.

Now let's set up the configuration.

The connection settings to Redis are stored in the default.env, that file located in the root directory, use the properties REDIS_HOST, REDIS_PORT, REDIS_DB, REDIS_USER, REDIS_PASSWORD. You can change it or create a local.env file to override some properties on your local machine.

Next, go to the ./examples/web-server directory, here you will find the db.properties file. Inside that, you will find the DBMS connection settings, you can change it or create a local.properties file to override some properties on your local machine (the names of all properties in the file match the TypeORM data source options).

Now that all the preinstallation recommendations are done, you can install the platform.

  • Run npm i command for install all dependencies
  • Run npm run init:web-app for generate configuration files, build sources and fill cache DB, and import default state of DB from default XML-configuration
  • Run npm run start:web-app for start example web-application server

Now you can proceed to the installation of the client application, which is an admin panel for system management. To do this, visit the repository @k-platform/client.

Recommendation: use Postgres or MySQL as a DBMS, and in the future you can replace Radius with the desired to if necessary by writing your own custom interaction service.

Note: all modules has been tested only with Postgres and MySQL database systems.

Based on

               

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published