
Cloud database content management system
“I take a stone and cut off everything superfluous”
Michelangelo Buonarroti Good afternoon, dear harazhiteli. Today I would like to share with you one, it seems to me, an interesting idea of a web service. In general terms, the basic idea can be understood from the headline. 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 beautiful and convenient panel for editing the contents of your database. I’ll immediately make a reservation that there is already a definite vision of this service and some developments, but before a huge amount of time is spent on its final implementation and launch, I would like to ask the habrasociety for advice.

So, why did I write this article:
1. Search for existing solutions (I honestly tried to find something similar - I will be grateful if you provide a link in the comments).
2. The study of demand among the IT community.
3. Search for those wishing to join the development.
Everyone knows what CMS is - Content management system . Speaking “CMS”, we usually 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 CMS is to provide a simple editor with the ability to add news to the site. Yes, you can always add new static pages there, yes, you can install sophisticated widgets, yes, you can change CSS in a beautiful editor. But, you do it, not the customer and not the editor. You do this once before you hand over a business card / catalog / online store to a customer. And it’s good if CMS allows you to hide everything superfluous from the editor so that he doesn’t 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 besides everything else, the more complex and “universal” CMS, the more rakes and crutches are hidden inside. And the higher the likelihood of colliding with them at the slightest deviation from the direction specified by the CMS developers.
I hope you already understood what I am urging you to do. If all the salt is in the admin panel, then why not build websites the way you like, but instead of building the admin panel for the customer / editor, just use some content management system? Let such a system not creep into the intricacies of the implementation of our website, but simply provide an opportunity to beautifully and conveniently add news to the website. Let's take a typical CMS, cut off all unnecessary and leave only the content control panel. But 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 capacities and third-party software installations from our side. We just allow one IP address to access one password only to a specific set of tables available for editing.
Consider a few special cases for the potential use of such a service.
Suppose you need to create a website. Of course, your customer wants to independently add news / products / photos to the site (underline what is necessary). In this case, you have two options:
a) use CMS
b) make an admin yourself
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 is not a question and you just do everything as usual (Deploy a new instance of CMS and create a site. Everything goes fine until the customer wants some “Functionality.” This “Functional” does not fit into the existing CMS architecture, you have to dodge and wade through the jungle of tables with saying names “CONTENT_127” and “TABLE_45.” In addition, there are CMS with dull and / or incomprehensible simpleMortal Editor Admin.
Many developers go the other way and do not use CMS. What they pay for with the need to write the same type of page with pagers, sorting and filtering.
I visited both sides of the barricades and I strongly dislike either one or the other.
Suppose you decide to write an unprecedented mobile application to search for the nearest fruit store on a map. Most likely, you will want to keep the list of apple stores in a centralized data warehouse with which your mobile application will interact through a web service. And, probably, you’ll write an admin panel on your knee to quickly add new apple stores to the base. It is possible that this will even be a Desktop application. But still, the bottom line is that you will draw another interface to a flat plate with a directory.
Suppose you have a seven-lock corporate database. Most likely you even have a Delphi application written to add new objects to the system by the chief accountant. The application has long been outdated, and you need to enter a new entity into the system. You install Borland Delphi 7 on a Windows XP virtual machine, open the sources and ... Form1, Button1, Button1_OnClick7, all the logic is concentrated in the button handlers. Rewrite everything from scratch? Try to screw a new table into this interface?
Now imagine that you open a magical website, register, tell him the connection string to your database (yes, you will have to allow access to the database from one IP address). You see all your tables right there. Choose the labels you need for the editor. Call them as you please (Table_75 - this is actually news). Indicate the columns available for viewing / editing and their names for displaying to the editor ... And you get a ready admin panel. The admin panel already knows how to display a table with a pager, sorting and filtering, can edit records. The selection is paginated, all the data is not pulled whole. You can restrict access for different types of users, up to different columns. If you use CMS - just indicate which CMS tables in the database store the data you need for editing, the service will display a more convenient admin panel than what came out of the box. If you built a website from scratch, then you do not need to write the same type of page with a pager. If you are creating a mobile application, then you do not need to delve into the intricacies of building web applications, just write the application, and the admin will do a miracle service. All the same with the corporate solution, but to ensure even greater security, I have some thoughts, which I may discuss later.
It is clear that there are certain limitations and this service is not suitable for everyone, but at this stage, I suggest that you ignore 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, I’m ready in the next article to express my thoughts on technical implementation, a potential set of features and other dirty details.
PS: Based on real events.
PPS: All matches with real projects and tables are random.
Michelangelo Buonarroti Good afternoon, dear harazhiteli. Today I would like to share with you one, it seems to me, an interesting idea of a web service. In general terms, the basic idea can be understood from the headline. 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 beautiful and convenient panel for editing the contents of your database. I’ll immediately make a reservation that there is already a definite vision of this service and some developments, but before a huge amount of time is spent on its final implementation and launch, I would like to ask the habrasociety for advice.

So, why did I write this article:
1. Search for existing solutions (I honestly tried to find something similar - I will be grateful if you provide a link in the comments).
2. The study of demand among the IT community.
3. Search for those wishing to join the development.
What do you want with me?
Everyone knows what CMS is - Content management system . Speaking “CMS”, we usually 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 CMS is to provide a simple editor with the ability to add news to the site. Yes, you can always add new static pages there, yes, you can install sophisticated widgets, yes, you can change CSS in a beautiful editor. But, you do it, not the customer and not the editor. You do this once before you hand over a business card / catalog / online store to a customer. And it’s good if CMS allows you to hide everything superfluous from the editor so that he doesn’t 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 besides everything else, the more complex and “universal” CMS, the more rakes and crutches are hidden inside. And the higher the likelihood of colliding with them at the slightest deviation from the direction specified by the CMS developers.
And what do you suggest?
I hope you already understood what I am urging you to do. If all the salt is in the admin panel, then why not build websites the way you like, but instead of building the admin panel for the customer / editor, just use some content management system? Let such a system not creep into the intricacies of the implementation of our website, but simply provide an opportunity to beautifully and conveniently add news to the website. Let's take a typical CMS, cut off all unnecessary and leave only the content control panel. But 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 capacities and third-party software installations from our side. We just allow one IP address to access one password only to a specific set of tables available for editing.
Does mana need this gambel?
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 / products / photos to the site (underline what is necessary). In this case, you have two options:
a) use CMS
b) make an admin yourself
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 is not a question and you just do everything as usual (Deploy a new instance of CMS and create a site. Everything goes fine until the customer wants some “Functionality.” This “Functional” does not fit into the existing CMS architecture, you have to dodge and wade through the jungle of tables with saying names “CONTENT_127” and “TABLE_45.” In addition, there are CMS with dull and / or incomprehensible simple
Many developers go the other way and do not use CMS. What they pay for with the need to write the same type of page with pagers, sorting and filtering.
I visited both sides of the barricades and I strongly dislike either one or the other.
Mobile app
Suppose you decide to write an unprecedented mobile application to search for the nearest fruit store on a map. Most likely, you will want to keep the list of apple stores in a centralized data warehouse with which your mobile application will interact through a web service. And, probably, you’ll write an admin panel on your knee to quickly add new apple stores to the base. It is possible that this will even be a Desktop application. But still, the bottom line is that you will draw another interface to a flat plate with a directory.
Database
Suppose you have a seven-lock corporate database. Most likely you even have a Delphi application written to add new objects to the system by the chief accountant. The application has long been outdated, and you need to enter a new entity into the system. You install Borland Delphi 7 on a Windows XP virtual machine, open the sources and ... Form1, Button1, Button1_OnClick7, all the logic is concentrated in the button handlers. Rewrite everything from scratch? Try to screw a new table into this interface?
I don’t understand
Now imagine that you open a magical website, register, tell him the connection string to your database (yes, you will have to allow access to the database from one IP address). You see all your tables right there. Choose the labels you need for the editor. Call them as you please (Table_75 - this is actually news). Indicate the columns available for viewing / editing and their names for displaying to the editor ... And you get a ready admin panel. The admin panel already knows how to display a table with a pager, sorting and filtering, can edit records. The selection is paginated, all the data is not pulled whole. You can restrict access for different types of users, up to different columns. If you use CMS - just indicate which CMS tables in the database store the data you need for editing, the service will display a more convenient admin panel than what came out of the box. If you built a website from scratch, then you do not need to write the same type of page with a pager. If you are creating a mobile application, then you do not need to delve into the intricacies of building web applications, just write the application, and the admin will do a miracle service. All the same with the corporate solution, but to ensure even greater security, I have some thoughts, which I may discuss later.
And what do you think?
It is clear that there are certain limitations and this service is not suitable for everyone, but at this stage, I suggest that you ignore 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, I’m ready in the next article to express my thoughts on technical implementation, a potential set of features and other dirty details.
PS: Based on real events.
PPS: All matches with real projects and tables are random.
Only registered users can participate in the survey. Please come in.
Does this idea make sense?
- 16.3% Yes, I would also pay extra! 10
- 24.5% Yes, I would use it for free. fifteen
- 18% Congratulations, you invented the bike! (there is a link in the comments) 11
- 1.6% No, I love CMS, and such nonsense does not interest me! 1
- 3.2% No, I love writing admin pages with pagers and no one will stop me! 2
- 24.5% No, I will not give access to my database to anyone. fifteen
- 11.4% No! And the reason is completely different (I will write in the comments) 7