Developing an UnrealIRCd webpanel

News about the UnrealIRCd project, including release announcements
Post Reply
Syzop
UnrealIRCd head coder
Posts: 2025
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Developing an UnrealIRCd webpanel

Post by Syzop »

We are envisioning an "admin panel" where IRCOps would be able to do a number of server tasks, starting with:
  • Status overview / dashboard
  • Spamfilter and *LINE management: that would be a lot easier via the web than on IRC
These two things would already be a great start. Naturally more can be added, i'm sure there are lots of ideas.

The admin panel would be installed on a (web)server and would connect to UnrealIRCd using the new JSON-RPC API that is currently being developed. It does not have to run on the same machine as UnrealIRCd.

We are looking for webdevs who would like to help out on the HTML/CSS and the coding-side. Do you have experience with web development and do you have time this summer to work on this? If you do, what would you prefer/suggest?

UPDATE: We have found someone now, see the other posts below. You can still join in to help, of course. In July 2022 the groundwork will be done along with the first few items of the admin panel, but later on more help may be needed to expand things.

Original questions:
  • Which language/environment to use? PHP? NodeJS? Python?
  • Which coding framework should be used? Eg in case of PHP: Laravel, Symfony, ..? In case of JS/python... what?
  • Which CSS/front end framework to use? Eg Bootstrap?
Most of the UnrealIRCd devs are backend coders with less experience on webdev/frontend. For us it would be relatively easy to make a quick-and-dirty PHP-without-famework non-AJAX "proof of concept" that is ugly and hard to extend. That is not what we are after. The idea is to have clean code that stays maintainable on the long run. We would like to hear who would like to work on this and what choices should be made.
On our side we can help with getting people together, hosting it as an official (sub)project and exchanging ideas. On the technical side we can provide the right API calls and options in UnrealIRCd.

We have created a new channel #unreal-webpanel on irc.unrealircd.org (IRC TLS on port 6697) that we can use for the discussion. Or you can reply here on the forums.
Syzop
UnrealIRCd head coder
Posts: 2025
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Re: Looking for webdevs to make UnrealIRCd webpanel

Post by Syzop »

Small update after 48hrs:
Most of the people who joined the channel have shown interest in the concept but nobody has actually come forward to work on the admin panel yet. There's also a sizable group which has shown interest in the JSON-RPC UnrealIRCd API for use cases other than the webpanel, which is intended and of course totally fine. Things like killing/glining a user when banned on a forum.

Back to the admin panel:
So far it seems people suggest to use PHP since most people have experience with that (some unrealircd devs and contributors as well).
As for the framework, Laravel seems the more popular choice so would make sense. Although, even if that would be the best choice, it would mean you limit yourself to one choice, while other people may use WordPress or some other CMS/site and would like to integrate things there.

Therefore we are now thinking of splitting things up into two parts:
  1. An UnrealIRCd PHP library for submitting JSON-RPC requests and dealing with responses.
  2. The actual webpanel written in X/Y/Z
This way one group could work on #1: these people would not have to deal with GUI and web stuff.
And then another group can work on #2: these people would be experienced in web development and can make it in Laravel (for example)
This also makes it easier for non-webpanel applications to access UnrealIRCd, by simply using #1.

For #1, I have created a very simple proof-of-concept library in PHP (under 50 lines) to expose the raw UnrealIRCd JSON-RPC interface: https://packagist.org/packages/unrealir ... alircd-rpc
As you can read there, to turn it into a real / serious library, we need some experienced PHP/webdevs (#2) to give guidance on what would be the best way to design the library, to interact with it from other frameworks (or no framework at all), what functions to create, what coding style to use, and so on.

If you have any concrete ideas or want to help out, feel free to tell us in the channel (or on this forum). Also if you think all of the above is a bad idea or things should be different. It's all still in conceptual/idea stages at this point.
Syzop
UnrealIRCd head coder
Posts: 2025
Joined: Sat Mar 06, 2004 8:57 pm
Location: .nl
Contact:

Re: Looking for webdevs to make UnrealIRCd webpanel

Post by Syzop »

Today we have found someone who offered to create the webpanel: SketchNI.

The following components were chosen:
  • PHP - because lots of people know PHP, including some unrealircd devs/contributors, it seems like the safest choice
  • Laravel - because it's one of the most popular frameworks
  • VueJS - for the client-side (popular choice)
  • BootstrapVue - since bootstrap is very popular, allows quick development and we don't need too fancy design
As you can see we mostly picked the more popular choices. This ensures a larger group of people can help out or takeover maintainership of the project when older devs retire.. possibly years from now.

We also go ahead with the plan to create an UnrealIRCd RPC library in PHP (with separate function calls for every operation). And for the mid-/long-term we also have an RPC library for Python and NodeJS planned, but those will be done /after/ the PHP UnrealIRCd RPC library is done. The reason for that is so we don't have to redo/adjust the RPC library in 3 languages on every change in the underlying API in these early (alpha) stages...

Work should start on the project soon. An update will be posted here when things are progressing a bit. Right now not a single line of code has been written of the webpanel, so give it some time.
moses
Posts: 3
Joined: Tue Aug 11, 2020 6:02 pm

Re: Developing an UnrealIRCd webpanel

Post by moses »

Hello,

I am wondering what the role of the Laravel framework is here? I would recommend such a framework should be avoided if it's intended to be used in the library aspect as it would not only bloat the library but also create a potentially unnecessary dependency.

I would understand it's role more if it's part of the front-end, though if you are using VueJS you should also be able to create an SPA that could authenticate directly with the JSON RPC and fetch it's data from there.
Post Reply