aesmail

aesmail

Kaffy - a quick and flexible admin interface for phoenix applications

Hello guys,

I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the current global pandemic, I kind of had the mindset and time to work on a few things on that list.

The package is in its very early stages, but I started using it for my own projects.
The following is part of the README file.

Kaffy

Extremely simple yet powerful admin interface for phoenix applications

Why another admin interface

Kaffy was created out of a need to have a minimum, flexible, and customizable admin interface
without the need to touch the current codebase. It should work out of the box just by adding some
configs in your config.exs file (with the exception of adding a one liner to your router.ex file).

A few points that encouraged the creation of Kaffy:

  • Taking contexts into account.
    • Supporting contexts makes the admin interface better organized.
  • Can handle as many schemas as necessary.
    • Whether we have 1 schema or 1000 schemas, the admin interface should adapt well.
  • Have a visually pleasant user interface.
    • This might be subjective.
  • No generators or generated templates.
    • I believe the less files there are the better. This also means it’s easier to upgrade for users when releasing new versions. This might mean some flexibility and customizations will be lost, but it’s a trade-off.
  • Existing schemas/contexts shouldn’t have to be modified.
    • I shouldn’t have to change my code in order to adapt to the package, the package should adapt to my code.
  • Should be easy to use whether with a new project or with existing projects with a lot of schemas.
    • Adding kaffy should be as easy for existing projects as it is for new ones.
  • Highly flexible and customizable.
    • Provide as many configurable options as possible.
  • As few dependencies as possible.
    • Currently kaffy only depends on phoenix and ecto.
  • Simple authorization.
    • I need to limit access for some admins to some schemas.
  • Minimum assumptions.
    • Need to modify a schema’s primary key? Need to hide a certain field? No problem.

GitHub link
Hex package

All critique, criticism, PRs, and feedback are welcome.

Most Liked

aesmail

aesmail

v0.2.0 was just released

Changes

  • Kaffy now supports phoenix 1.4 and higher.
  • The :otp_app config is now required (breaking change).
  • Removed some deprecation warnings when compiling kaffy (apparently introduced some new warnings).
  • Massively simplified configurations. The only required configs now are otp_app , ecto_repo , and router .
  • Added a CHANGELOG file to communicate and track changes easily.
  • Kaffy will now auto-detect your schemas and admin modules if they’re not set explicitly. See the README file for more. This should get me closer to my original post’s points:

Can handle as many schemas as necessary

and

Should be easy to use whether with a new project or with existing projects with a lot of schemas

Thank you for your interest. I’m getting extremely motivated to work on this project with the current response/feedback.

14
Post #2
aesmail

aesmail

Hello everyone,

I’d like to thank everyone who’s used, provided feedback, submitted features and PRs, or just showed interest in Kaffy.

Open source software needs a community to grow. I think Kaffy has enough interest and potential.

<rant>
I have been extremely busy during this pandemic working full time on other software projects. I’m trying my best to avoid (or maybe deal with) the “burnout”.
</rant>

If you are interested in becoming a maintainer for Kaffy, please message me either here or privately with your GitHub account. A few members have already showed interest which I’m grateful for (and I’ll be in touch with you guys again). If you think you can actively (or semi-actively) maintain Kaffy, drop me a line.

Having said that, I have no intention of abandoning the project. Once I’m out of this busy phase, working on Kaffy again would be a pleasure. For the time being, the project needs to show that it’s not dead and it’s still being actively used.

Thank you all for your understanding and support.

aesmail

aesmail

Kaffy v0.8.0 has been released with a better UI, custom pages, and more.

New Features

  • ability to add custom links to the side menu.
  • ability to add add custom pages.
  • ability to order records per column in the index page.

Enhancements

  • a placeholder value for :map textarea fields to indicate that JSON content is expected.
  • enhanced “humanization” of field names in index page.
  • improved checkbox form control UI (thanks @areski).
  • new and improved design (thanks @areski).
  • include checkboxes in index page to clearly indicate records are selectable.
  • pagination, filtration, and searching are now bookmarkable with querystring parameters.
  • count query result is now cached if the table has more than 100,000 records (thanks @areski).
  • add option to hide the dashboard menu item.
  • add option to change the root url to be something other than the dashboard.
  • removed render warnings when running under phoenix 1.5.
  • add a much improved date/time picker (thanks @areski).
aesmail

aesmail

I’m extremely pleased to announce Kaffy v0.9.0. This has been the biggest release yet with so many contributions from the community.

The main features in this release:

  • Introducing extension modules to add custom css and javascript.
  • Custom form fields for specialized form functionality.
  • List actions now can have an intermediary step for more input from the user.
  • Improved layout for mobile screens.
  • Ability to override Kaffy’s insert, update, and delete functions to customize how Kaffy talks to the repo.
  • Moved scheduled tasks to their own modules and they have their own option in config.
  • Ability to customize the query Kaffy uses for the index and show pages.
  • A more flexible and customizable way to define resources and admin modules.

For a complete list of changes, you can check the repo’s README and CHANGELOG files.
Please note that this is a backwards-incompatible release, but modifications should be quick and minimal.

Many thanks to everyone who contributed in this release.

aesmail

aesmail

I’m very pleased to announce kaffy v0.5.0 with dashboard widgets.

This was the biggest missing thing on my todo list. I’m not 100% done with it. This is hopefully the tip of the iceberg.

Thanks to everyone who provided comments, suggestions, and/or PRs.

As always, your feedback is highly appreciated.

Check the dashboard page section.

Where Next?

Popular in Announcing Top

zachdaniel
Hey folks! AshEvents Release We’ve just released the first version of AshEvents, an Event Sourcing tool for Ash Framework apps. Check o...
New
zachdaniel
Ash Framework 3.0: Official Release! I’m here with the fine folks at Gig City Elixir, pushing the button live on stage :sunglasses: T...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
hauleth
PhoenixBakery is library for Phoenix 1.6 (and later) that provides modules implementing Phoenix.Digester.Compressor. There are currently ...
New
Antrater
Hi there! At Moon Design System, we have been working hard for the past six months on the next generation of our LiveView component libra...
New
bentanweihao
Here’s a preview: Here’s the link to download: GenServer cheatsheet Tell me what you think!
New
tugayac
Hey Elixir Community! A few months back, I open sourced a link management system we had built into an app. It’s now got enough features ...
New
kraleppa
I’m happy to announce LiveDebugger v0.1.0! :mega: LiveDebugger is a browser-based tool for debugging LiveView applications, designed to ...
New
fhunleth
Elixir Circuits is a set of libraries for interacting with hardware. We previously announced Circuits.UART, and now we’re ready to announ...
New
Asd
Hi, I am happy to release the Repatch library for mocking and patching implementation in tests and anywhere else. It brings new possibili...
New

Other popular topics Top

JDanielMartinez
Hi! May someone helps me, please! I have two apps into an umbrella project: the first one is Database, which manages queries, and the se...
New
peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
977 41022 311
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 49522 488
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New

We're in Beta

About us Mission Statement