Quite a few of my friends want to have their own personal website to showcase th
ID: 650662 • Letter: Q
Question
Quite a few of my friends want to have their own personal website to showcase their talents. However, they don't want to deal with such technical things as writing html and managing web server. Neither do I.
It would be nice that we go to our URL and view our pages and we edit and update our information when logging in. So basically the content displayed will be what we provide and at the same time we can choose from some provided templates for page layout and style.
It seems a typical content management system to me. If it is, I'd like to build a simple one myself because I'd like to have the experience of building a simple CMS. Since I have no previous experience for this, I need some help figuring out what is all I need for it. And, what are the most appropriate tools and technologies?
So far, I have html, css, JSP, Tomcat, SQLite in my mind. Is that enough? Are they the best combination?
Also, I have no idea how to approach the authorization and security aspects of building the system.
(PS: I'm not sure what tags are proper for my question. Feel free to edit them for me)
Explanation / Answer
As a fervent Rubyist, I'm biased, but I would suggest Ruby on Rails for learning to build a CMS. The barriers to entry are pretty low, there are great tutorials to get you bootstrapped, adherence to standards such as REST, HTML5, CSS3, etc. is a top priority, the list goes on and on.
One really nice thing about getting started with Rails is Ryan Bates' series Railscasts. You can watch an expert code similar exercises and adapt it to what you're trying t accomplish. In addition, Github is chock full of both build-a-blog-or-cms code-along tutorials, as well as full-fledged, open source Rails-based CMS applications you can go to as examples. One of the best CMSes I've ever played with is Alchemy, which is built on Rails 3.
I'm not insisting that you MUST become a Ruby programmer, or that other languages/frameworks are wrong. But once you try it... this is the framework that skyrocketed to popularity when DHH built a blog engine in 15 minutes, on stage. So even just for rapid prototyping, it's a great tool.
Give it a try... there are excellent gems (OmniAuth, Devise) for handling security and authentication, and many of the hairy issues like CSRF are handled by the framework itself. You can concentrate on the project, rather than the incidental issues. And as it's database-agnostic, you can start with SQLite if you like, and move to PostgreSQL or even Mongo or Couch later if you fancy.
So... yeah. Enjoy. Programming should be fun.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.