Create Content Management System (CMS) in grails - grails

I'm an intermediate user in grails and I want to create a Content Management System and an end user application in grails. It mainly involves video uploading and downloading in cloud servers.
I seen the Most Important features for cms
Can any one suggest about architecture and how it can be easily implement in grails?
Thanks in advance.

I agree with #elias that a CMS needs tons of work.
As to your question, I suggest you use an existing one, just like #mostkiteau has mentioned, or go to http://grails.org/plugins/search?q=cms for more CMS plugins for Grails.

Related

Allowing others to copy and tweak my Rails app online

I have developed a relatively simple Rails web application that others (non-programmers) may find useful. I would like to provide a web interface for anyone who wants to create their own copy of my app and change some minor settings, like the appearance, the name of the app and some of its resources, that type of thing. What kind of technology would allow me to do this? Thank you in advance!
GitHub is probably one of the most popular tools to support this, but there are many others such as SourceForge. I'd start from there and do some research to decide the best one for your purposes.
The best way to collaborate code online is through git. The most popular sites for git management include GitHub and BitBucket. Here's a good article suggesting nine alternatives.
However, you stated it would be used by "non-programmers". I can't tell if they will find it useful through the function of the application or the simplicity of the code, so it seems reasonable to also suggest non-git options.
You could use something like Amazon Web Services or Google Cloud to host the static files. See the AWS S3 docs regarding creating a bucket and adding an object.
If you would like to host the entire application online and allow users to easily edit and view the application in-browser, check out cloud9.

How do I design a Ruby on Rails plugin based application with user based privileges for each action?

I'm having a hard time deciding the architecture for my new Ruby on Rails application. I don't have much advanced knowledge about Rails since I've only used it for 2 small projects before.
I need help finding the best design for an application with the following complex requirements:
1) Must be plugin based. Plugins will be enabled/disabled through the user interface. All plugin related material should disappear from the system when it's disabled (links, everything) and it shouldn't be accessible.
2) The system must be able to have a user (not group) based privileges system for every defined action. Defined actions can be very different. All from making plugins visible to users to making a single action (accessing single pages, etc.).
I should be able to use the plugin system in the Rails framework for plugins. I'm reading up on this. I'm just not sure what's the best way to control from the user interface what plugins are enabled/disabled.
All help is GREATLY appreciated.
Thanks a lot.

Good CMS (preferable java-based) to integrate with grails app

We have grails application that is damn good. Grails application will be run under tomcat/jetty. I'm looking for a good (preferable java-based) CMS which could be deployed to same webserver and integrated with our application. Our app provides some data (xml/json) and we need that CMS display this data on some static pages (I'm thinking of java-script gadgets that just connects to our grails same-host-same-port-different-context app).
If someone know some other techniques how to easily embed data into CMS static pages - would be nice to hear.
You can use Weceem CMS
Depending on what features you need for your CMS, Weceem could fit to your requirements. It is a grails plugin itself (with advantages like being unobtrusive).
Be aware that currently it is not compatible with Nimble and Commentable plugins (will be in version 0.9).
I haven't had a chance to play with it, but Alfresco Plugin allows you to connect to Alfresco. I imagine it's more of a document management integration at this point, but Alfresco can handle WCM as well.
You ought to find the answer at http://www.cmsmatrix.org/
It's the first I would recommend to anyone looking for a CMS. Use the wizard, select the features you want, get details of matching CMS and make your comparison then choice.

How do I have plugin architecture in Ruby on Rails?

I have to built a social networking site on Ruby on Rails. The features in the site may change from time to time; so we will need to add/remove features with ease. Moreover, we may be building another social networking site. Due to these reasons, we are thinking to build a basic framework for social networking sites in RoR with the feature to install or uninstall extensions to the framework.
I worked previously in Joomla! CMS and its architecture for adding/removing extensions is kind of what I am looking at. In a Joomla! installation there is usually an admin side from which you can add/remove/customize extensions.
I am new to RoR and finding it little difficult to decide how to do this. Any help will be appreciated.
UPDATE 2015: this was answered in 2009 a lot has changed
Plug-ins have been superseded by Gems and Engines
For all the information you need on Engines:
http://guides.rubyonrails.org/engines.html
Engines are a fantastic way of building encapsulated and reusable code for your rails apps.
Original Answer for Reference
On the development side Rails Engines and/or plugins is probably what you are looking for.
Rails Engines are small subsets of an
application that can be dropped into
any of your Rails applications and
handle common parts of the application
from scratch.
Say for example your social networking application has a wiki, blog, chatroom etc. You would more than likely want to create a wiki engine, blog engine and chatroom engine.
Engines allows you to re-use such functionality within different applications so you do not have to repeat yourself.
Take a look at: http://rails-engines.org/
Some support for ‘engine’ plugins has
been merged into the Rails core
codebase in Rails 2.3.
I would also recommend taking a look at some public projects say on github and see how people have used engines.
Take a look at some engines:
Wiki-Engine
Skinny-Blog-Engine
Other useful links for reading
Tips for writing Engines
Rails Engines, Railscast by Ryan Bates
The Russian Doll Pattern (PDF)
In functionality terms you could still have an admin area that could activate certain features ie. your blog or wiki by allowing users access to such areas with a permissions/roles system.
ACL9
role_requirement
restful-authentication
If you want to build a CMS which supports some kind of extensions like in Wordpress or Joomla then you will have to either build it and provide guidlines or at least look into how you would upload/install Engines/Plugins from a user perspective.
Not sure on the security implications of this
Redmine has put this kind of functionality into their awesome application. You may want to dig around the source code for tips and clues
Finally Adva_CMS has basically adopted this approach and have created a number of Engines for their CMS application
HTH
Engines are still a pretty solid way to go, the new location to get info on those is located here: http://guides.rubyonrails.org/engines.html
But what you need is really more application specific. A lot of applications develop these things organically over time. They start out by hand crafting a few of these and then they re-factor them periodically until they find patterns that align with software design patterns and then they develop a plugin framework.
Are you going to expose your interface to end users? To third party developers? What parts of the application are controlled by these plugins? Is it just the presentation tier? Does it affect the data model? Consider the fact that when you publish any kind of external interface, you're developing contracts that you need to honor.
You might check out these design patterns: http://en.wikipedia.org/wiki/Software_design_pattern. They will help you figure out how to manage your development process. If you're just working on plugins for internal use, then what's the real purpose of them? What makes them different than modules?

Tools for Website Content Cleanup?

I am working with a client to migrate a web site from the existing production hardware into a new hardware environment. Now seems like an excellent time to perform an audit and remove any old or obsolete content rather than just blindly copy it again.
Are there any good free tools or scripts I can use to compare the web accessible content on a server to the actual files on a server to see what content is actually being linked to and used?
Thanks in advance for any help!
Well, for starters you can use a tool like Xenu's Link Sleuth to spider all of your pages to find broken links and the like. We used this tool on our intranet to find and fix our broken links. It's free and gets the job done.
Another tool that we have used for migrations between systems is a search engine. A good search engine will spider all of your pages and show the two-way relationship between links. This can help you find what content is being linked to the most and what is possibly orphaned. Unfortunately, these kinds of tools are not free.
I'm sure there is but I'm sure there isn't one that could do a better job than you could yourself, ya know? How big is this site and did you code it yourself?

Resources