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:
- 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
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.
Next the use cases:
Data stored for each entity:
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.