CMS for Enumerable Content
What it is
CMS for Enumerables is an ASP.NET MVC based website content management system base for all types of enumerable content. It can be used for websites that publish news, reports, announcements, books, journals, articles and much more. This CMS provides a base for building a custom website for enumerable content or can be used out of the box with just a bit of design tweaking.
The MVC pattern was strictly adhered to, so that all design modifications need to be made only on the Views, while the code behind is left to the programmers.
Many different features are implemented including automatic RSS feed generation, sitemap generation, Web API and the accompanying Android client. There is also a chat interface implemented using a persistent connection (SignalR hub). All chat messages are recorded to an object database (db4o in the implementation). This functionality may be modified from the source code.
Full source code for both the CMS and the Android client is provided within this package.
This content management system contains multiple features that are often requested by clients who need websites implemented. Since it is based on MVC, it can be easily customized to fit any specific need. The features that are already built in and functioning include:
- Adding enumerable content types
- Adding specific entries for created content types (using a WYSIWYG editor)
- Creating a specific menu structure
- Bootstrap for adaptable design
- Basic multilingual support
- Automatic RSS feed for each of the content types
- Automatic Sitemap generation
- Persistent connection chat support
- Chat recorded to object database
- Object database interactions
- Image and file upload module
- User registration and handling
- Facebook, Google+ and other social network login possible without registration
- Registered users can comment on instances of content types
- Varying privilege level for users
- Design customization layer for design changes without CSS
- Geolocation and very basic widget demonstration
- Web API for interactions with outside applications
- An Android application client consuming a part of the Web API
- Full database scheme
- Full source code for all of the CMS and the Android client
There are six distinct user roles with specific privileges.
- Administrator – can assign roles
- SuperModerator – can change the website structure (add content types and arrange menu items)
- Moderator – can add new entries within the defined content types
- SuperDesigner – can add new CSS mappings
- Designer – can edit defined CSS mapping values
- Support – can provide support over persistent chat interface
- Registered user – can leave comments and receive support
- Anonymous – can view non-administrative parts of the website without leaving comments
This CMS base is useful for quickly building any website that demands enumerable content management. This is the functionality that is mostly sought out. Overly complicated content management systems tend to become difficult to maintain. The most used features are implemented within this CMS, so that maintenance and customizability are maximized.
Apart from its main purpose, this CMS base provides elaborate examples for implementations of many features that are very useful in other projects. Portions of the source code provided with this project can be used in almost all C# based web applications. Source code portions can be compiled into libraries for various purposes, including the following.
- Object database access (db4o)
- Persistent connection chat interface
- ASP.NET MVC file upload control
- Automatic RSS generation
- Android asynchronous file download
- Android asynchronous image download and rendering
- Android Web API access functions and classes
- SQL Server database purging