New application - Channel database Lite

Channel database has always been an important part of my website and now, in 2024, I have rewritten it from scratch in Yii2 framework. I have several reasons for doing this, but one important reason is that the old channel database apps were written in 2020, back when I wasn't as experienced with making PHP applications.

The consequence of this is that the code of channel database is now very unreadable and over the years, there have been a lot of bugs, which I have found in the app. Architectually the problem was that about 90% of the code was on a single file and global variables were used everywhere. The situation was a little bit better on the very first versions, but there a lot of the code was duplicated, which created a situation in which changing something in the main view didn't apply to idea box and gallery.

The situation got worse, when I discovered serious vulnerabilities in legacy non-Bootstrap versions (which is why I made them inaccessible).

Channel database Lite solves these problems through version methods. First, the project now uses MVC (model-view-controller) patter. This makes it easier to find content in the code (e.g. database communications in models, views in views directory, controllers in controllers etc.).

Second, it uses Yii2 framework. This is a PHP framework, which uses more secure defaults, includes useful helper functions and a better debugger, automates various tasks, etc.

Third, it doesn't do anything unnecessary. You can't add or modify records directly within the application, even if you are logged in. Database is managed externally in admin view on markusmaal.ee site.

It still uses Bootstrap 5 styling framework, but now it also uses custom colors, which is something that the old applications didn't do.

Almost all functions are still available, including searching videos, various filters, gallery, idea box, report viewing and downloading, sorting, archived comments and more. The exceptions are CSV export for reports and legacy browser mode. The last one I didn't bother implementing since Bootstrap 5 already doesn't support older browsers, but CSV export was removed, because there are so many implementations of it and converting JSON to desired CSV format isn't that difficult.

Last, you may ask - what happens with the old channel database versions? The last version, which was available before Lite was published, will still be available until 1st April (apart from archived comments). After 1st April, I'll remove that application from my website. Older versions, which didn't use Bootstrap styling framework are already no longer available to the public.

Comments

Populaarsed postitused