Git Product home page Git Product logo

scalest's Introduction

Result image Build Status

Description

Scalest is a set of helpful features for Akka. The main one of them is the admin panel which is an aggregator of all other features. In future there will be healthchecks, more CMS-like features, swagger, cors stuff and much more. The main thing Scalest makes easier is fast creation of any type of application. For example the admin panel can be very helpful for developing chatbots, as a tool for the support team or for the developers themselves.

To start using Scalest add this to build.sbt:

resolvers += Resolver.sonatypeRepo("snapshots")
lazy val scalestV: String = "0.0.2-SNAPSHOT"
libraryDependencies ++= {
  Seq(
    "io.github.0lejk4" %% "scalest-core" % scalestV, // core,
    "io.github.0lejk4" %% "scalest-admin" % scalestV, // generic admin panel
    "io.github.0lejk4" %% "scalest-admin-slick" % scalestV, // slick concrete admin panel
  )
}

Admin panel preview

You only need to provide CRUD repository, provide entity scheme to ModelAdmin(or it will be generated automatically) and mount adminExtension route in your Akka application, for example like this:

val routes = AdminExtension(ModelAdmin(crudRepository)).route

You can find full example in here if you run it you will see such admin panel: Models list

Contribution

You can easily create Backend implementation for your language. For more details contact me.

Modules

  • Core - general features that are helpful for creating applications with Scalest
  • Admin - admin panel module that creates UI for your entities
  • Admin-Slick - slick backend for Admin module
  • Examples - example applications using Scalest
  • Admin-Vue - Frontend implementation of Scalest Admin Panel

scalest's People

Contributors

0lejk4 avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

Forkers

hunter04d

scalest's Issues

Validation feature for Model Fields

Scalest should be able to handle validation that developer chooses for his model. On FE this should be Vuelidate and on BE some useful DSL should be created for doing this.

Auth feature

Some sort of auth component should be provided for AdminExtension. Auth should probably be using JWT and admin credentials should be provided via configuration.

Create ability to add custom actions

-FE should support such actions. It should be fetched with entity scheme
-BE should support handling such actions and provide convenient api for creating such actions per entity

Remove ProfileProviders

This looks like it can be easily removed because Slick already has same stuff out of the box. Should be investigated and replaced with Slick ones.

Add frontend on build

As for now frontend is placed in resources folder by the developer himself. This should be changed:, some sort of build phase that places compiled FE sources in BE resources folder.

Menu components feature

As Menu itself is already created, the idea was to give user ability to place some sort of components on main page. This can be healthcheck`s, metrics and other stuff. I was going to replace FE generation with use of some sort of protocol, so developers will be able to change FE for themselves, so this components are not just FE stuff - main goal is to give some useful interfaces out of the box.

Separate FE from BE

Make FE consume scheme from BE and give ability to use FE with any scheme provider. This could be the day generic language independent cms is first created

Pagination for entity feature

Entity list should be pageable, but this should also be configurable as some people may want to have all fetched because of difficulty to paginate their data for instance.

Improve Slick Admin

Create macros for automatic Lens creation if field is named id and add some sort of inner class for easier table creation.

Organise monorepo

Move scala modules to scala subdirectory and mbe do some renames and refactorings.
In future this will give ability to place backend implementations as fresh as possible.

Remove Distage from core module

As it was seen in reality, this behaviour is not so helpful but also gives some pain with dependency managment. Core module should be refactored to contain only core stuff needed for any type of application. Distage and other similar stuff should be moved to a separate module.

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.