This article is part of a comparison of web frameworks which tries to measure the ease of learning and development for several web frameworks with a practical test. In this article, it is defined the website to be developed in order to test each framework.
Due to the limits of the project time, a deep research has not been able to be carried out in this section. Therefore, the expert, Carlos Hernández, founder of Endeve and expertise in agile development, has helped in the website definition.
A multiblog-only-one-author application has been decided. It requests the developer to know implementing CRUD operations with related data, validations, user session management and searching in a database.
Next, a small index of the article:
Requisites
- A visitor can read blog posts
- A visitor can read comments in blogs
- A visitor can search for posts
- A visitor can comment posts
- A visitor can register
- A user can login
- A user must have a blog and no more blogs
- A user can create posts in his/her blog
- A user can comment in his/her posts and other posts
- A user can search for posts
- A user can read blog posts and comments
Actors
There are two actors in the website. Visitor and registered user.
- Visitor: It is a person who has not registered yet or has not logged in.
- User: It is a registered person, a user. He/she has a blog.
Use cases
Next the use cases:


Data Model
Data stored for each entity:

Visual design
Aesthetic and complex interaction using AJAX are not considered in this comparison. The views will be just HTML divs with titles to show interaction and options.
Next, there is a mockup of the front page for a signed user. In case you would like to see all the mockups, you can download them by clicking here .

Steps in development
These are the tasks in the order in which they will be carried out in the development process:
- User authentication system
- Create a user
- Show a user
- Update a user
- Delete a user
- Secure authentication: Login, logout, remember session. Allow to update a user only to signed users and to their accounts.
- Image attached to the user: Add the image for the users. Upload system and display the image in the profile.
- Change password
- Blog system
- Create a blog
- Show a blog
- Update a blog
- Delete a blog
- Update delete user: Remove blog if user is removed
- Authentication functionalities: Only a signed user can create a blog. Only the owner of a blog can update it and delete it.
- Post system
- Create a post
- Show a post
- Update a post
- Delete a post
- Show the list of posts in the blog view
- Update delete user: Remove posts if user is removed.
- Authentication functionalities: Only allow owner of the blog to create, update and delete posts
- Search posts with any words in the title or in the body
- Comment system
- Create a comment
- Show a comment
- Delete a comment
- Authentication functionalities: Only allow owner of the post to delete comments
- Update delete user: Leave comments if the user is removed with its last data.
- Fixing everything together
- Friendly urls: myblog.com/timy must show Timy’s blog and the url of the posts must be friendly too.
- View as described in design: The interactive design must be as described. For example, the front page must be an index of all the posts ordered by date.
- Page counter: When there are too many posts to be listed in a page, it must be divided by pages with links to choose between them.
It is an easy website to be developed but it could not be too complex due to the 45 hours limit to do the task. Would you change anything in the design? Would you proposed a different one?
Thanks for reading. Comments, criticism and sharing will be appreciated.
Warning: Declaration of Social_Walker_Comment::start_lvl(&$output, $depth, $args) should be compatible with Walker_Comment::start_lvl(&$output, $depth = 0, $args = Array) in /homepages/17/d418276000/htdocs/websitesframeworks/blog/wp-content/plugins/social/lib/social/walker/comment.php on line 60
Warning: Declaration of Social_Walker_Comment::end_lvl(&$output, $depth, $args) should be compatible with Walker_Comment::end_lvl(&$output, $depth = 0, $args = Array) in /homepages/17/d418276000/htdocs/websitesframeworks/blog/wp-content/plugins/social/lib/social/walker/comment.php on line 60
The website designed in order to test each framework: A multiblog-only-one-author application. http://t.co/7wDlfXjdjA
I’ve been following this blog for a while now, I love web framework comparison done right, and this seems promising!
I’d make a suggestion. Since you state this comparison to be ‘agile’, development workflow should be value-based: when you develop a blog system you certainly need user management, but it’s not what your users/customers will value the most, it’s probably the last thing you should implement. You can blog and read without a user management system. Logging into an empty system is not that valuable.
This is certainly not too important, but you’ll probably get a more decoupled system, easier to test, and your users will be able to read blog posts even before they can log in. And your comparison might be improved, showing framework testability and “agility”.
*forgot checking notify :_)
Thanks for the suggestion. I think you are right.
When the comparison is finished, timings for each task will be exposed. Consequently, the number of hours I spent developing authentication will be shown 🙂
Diaz,
Did you finish this comparison? If you did can you post a link of where to find the results? I couldn’t find anything in the blog.
@Ray I did. Now I am on vacations. I am reporting all the work I have done, so it will take a time before I publish results.
I will try to be as accurate as possible.
Thanks for attention.