If you are using elixir right now, chances are that this isn't your first programming language that you have used to build your apps. Probably you are coming from other programming languages such as Python, Java, C#, Golang, etc. Speaking of this, anyone coming from Python or at least has used Python as their main programming language to build your apps? I am one of these people.
As most people already know, the most used web framework in Python is Django. One of the Django's feature that I love the most or I think is unique is the Django admin interface. It provides you with a web interface where you could perform CRUD operations over you applications data out of the box. This is really useful especially if you or someone are trying to test your application and need to have a way of preparing a mock or test data quickly.
Unfortunately there isn't a similar feature in Phoenix nor a third party module that allows you to have this kind of admin interface, at least when I first use elixir. However, there is one now and I feel there are still not many people know about this tool in the elixir community. I thought this tool deserve more recognition so I decided to let people know about it through this post.
Kaffy is a tool that is inspired by Django admin that allows you to have a simple, flexible, and customizable admin interface in Phoenix application. With some minimal configurations, it ables to understand your application schemas and then make a CRUD page out of it.
I won't deep dive to much into how to use or set it up since it's pretty much documented in its GitHub repo but in summary not only it makes a CRUD page for your schema but it also enables you to:
- Create a custom dashboard page with widgets.
- Create a custom static page.
- Register your own scheduled tasks.
- And more.
Not only that it provides a similar functionality just like Django admin, but I personally think that the admin design looks much more pleasant in Kaffy :D.
First of all I didn't create this tool. I am just a guy who thought that this tool has a potential to be used by a lot of people in the future so I decided to share it. I originally found this tool around August 2020 from the following post in elixirforum. In that post you could find who is the original creator and some points that encouraged the creation of Kaffy in the first place. I encourage you to check it out since it contains a lot of information about the tool it self. Last but not least, Kaffy is pretty much new and it is still actively developed by people. If you are interested, maybe you could contribute to its GitHub repo and help make it a better tool for the elixir community to use :). Cheers ~