📜 ⬆️ ⬇️

Cloud content management system database

"I take a stone and cut off all unnecessary"
Michelangelo Buonarroti

Good afternoon, dear habrazhiteli. Today I would like to share with you one, it seems to me, an interesting idea of ​​a web service.

In general terms, the main idea can be understood from the title. I want to build a cloud database content management system (CDBCMS). Simply put, this is a web service for providing access to the database, generating a nice and convenient panel for editing the contents of your database.

Immediately, I’ll make a reservation that there is already a well-defined vision of this service and some developments, but before a huge amount of time is killed for its final implementation and launch, I would like to ask the habrasocommunity for advice.
')
So, for what I wrote this article:
1. Search for existing solutions (I honestly tried to find something like this - I will be grateful if you provide a link in the comments).
2. Study of demand among the IT community.
3. Search for those who wish to join the development.

Shaw you want me?


Everyone knows what a CMS is - Content management system . Saying “CMS”, we, as a rule, mean the Web Content Management System and completely forget the essence of this definition. We are talking about website building systems, instead of content management systems.

In my personal experience, the main purpose of a CMS is to provide a simple editor with the ability to add news to the site . Yes, there you can always add new static pages, yes, you can install clever widgets, yes, you can change the CSS in a beautiful editor. But, you do it, and not the customer and not the editor. You do this once before handing over a business card / catalog / online store to the customer. And well, if the CMS allows you to hide from the editor all the excess, so that he did not shoot himself in the foot. Usually, it would be much more convenient for you to implement the same functionality using the basic tools of your favorite language / framework. And among other things, the more complex and "universal" the CMS, the more rakes and crutches lies inside. And the higher the probability of encountering them with the slightest deviation from the direction set by the CMS developers.

And sho you still offer?


I hope you already understand what I incline to you. If all the salt in the admin panel, then why not build websites as you like, and instead of building an admin panel for a customer / editor, just use some content management system? Let such a system not climb into the subtleties of the implementation of our website, but simply provide an opportunity to beautifully and conveniently add news to the site. Let's take a typical CMS, cut off all unnecessary and leave only the content control panel. And by the way, let's go ahead and call it a cloud service that connects to our database and draws the admin panel itself, without requiring any additional server capacity or third-party software from us. Simply allow one IP address to access one password only for a specific set of tables available for editing.

Does manet need this gembel?


Consider a few special cases for the potential use of such a service.

Web site

Suppose you need to create a website. Of course, your customer wants to independently add news / product / photos to the site (underline as necessary). In this case, you have two options:
a) use CMS
b) independently admin

Of course, if your office or you personally are a specialist in the field of a specific CMS and the customer is satisfied, then this question is not worth it and you just do everything as usual (deploy a new instance of CMS and create a website. Everything goes fine until the customer I didn’t want some “Functional.” This “Functional” doesn’t fit into the existing CMS architecture, you have to dodge and wade through the jungle of tables with the talking names "CONTENT_127" and "TABLE_45". In addition, there are CMS with sad and / or incomprehensible to mere death nomu editor admin.

Many developers go the other way and do not use CMS. For which they pay with the need to write the same type of pages with pagers, sorting and filtering.

I have been on both sides of the barricades and I absolutely do not like one or the other.

Mobile app

Suppose you decide to write an unprecedented mobile application to search for the nearest fruit shop on the map. Most likely, you will want to keep a list of apple stores in a centralized data repository, with which your mobile application will interact via a web service. And, probably, on your knee, write an admin panel to quickly add new apple stores to the database. It is possible that this will even be a desktop application. But all the same, the essence will be reduced to the fact that you will draw another interface to the flat name plate with the reference book.

Database

Suppose you have a corporate database with seven locks. Most likely you even have a Delphi application written to add new objects to the system with a chief accountant. The application has long been morally obsolete, and you need to introduce a new entity into the system. You install Borland Delphi 7 on a Windows XP virtual machine, open the source code and ... Form1, Button1, Button1_OnClick7, all the logic is concentrated in button handlers. Rewrite everything from scratch? Trying to fasten a new table to this interface?

I did not understand


Now imagine that you open a magical website, register, tell it the connection string to your database (yes, you will have to allow access to the database from a single IP address). Immediately see all your tables. Choose the labels you need for the editor. Call them as you please (Table_75 - this is actually news). Specify the available for viewing / editing columns and their names for display to the editor ... And you get a ready admin panel. Admin already knows how to display a table with a pager, sorting and filtering, can edit records. The sample is paginated, do not drag all the data entirely. You can restrict access for different types of users, up to different columns. If you use CMS - just specify which CMS tables in the database store the data you need to edit, the service will display a more convenient admin panel than what went out of the box. If you built a website from scratch, then you do not need to write pages of the same type with a pager. If you are creating a mobile application, then you do not need to delve into the subtleties of building web applications, just write the application, and the admin panel will make a miracle service. All the same with the corporate solution, but to ensure even more security, I have some thoughts, which I may tell you later.

And sho do you think?


It is clear that there are certain limitations and this service is not for everyone, but at this stage, I suggest you abstract away from the technical implementation and evaluate the very idea of ​​such a service. If there are no suitable analogues and the idea seems interesting to someone, then in the next article I’m ready to state my thoughts about the technical implementation, the potential feature set and other dirty details.

PS: Based on real events.
PPS: All matches with real projects and tables are random.

Source: https://habr.com/ru/post/198704/


All Articles