Develop a blog website from scratch — 1 (Requirements)
Be clear on the why part, in the previous article — Develop a Blog Website From Scratch — 0, I have mentioned my purpose for developing a blogging website
In this article, we are going to be looking into the requirements
Why you need to understand the requirements?
- Obviously, without it, it’s like you’re sitting with a bunch of people talking, but you don’t know what they are talking about 😂
- For me, understanding the whole picture is very much important, it gives me motivation
- I can make my own decisions, if I understood the requirements clearly. And you need to be able to make decisions for little things, customer may or may not available for your clarifications
- Product will come out as what customer expected it to be
Lists out the requirements from user’s perspective, and assign priorities to them, you need not have to elaborate the requirements, just list out the requirements, it will help you to focus on most important features
What features will I need for a blog website?🤔
High priority features:
- User should able to create an article using the text editor integrated into the website (like what Medium has)
- User should able to view the list of recently published articles
- User should able to view an article
Medium priority features:
- User should able to sign up and login, so that we can capture user interests based on their histories
- User should able to comment on a particular article
- User should able to choose their favorite categories
- User should able to tag an article, like this Medium article is tagged with web development, so that users who are interested in web development will be suggested my article by Medium
Low priority features:
- Track how much time user is spending time on an article
Now, we have defined the features needed for this website, then we need to elaborate each of these features into small pieces
Text editor:
I am taking Medium text editor as a reference, because I think Medium has a great text editor, and it is SEO friendly
- User should able to make text bold and italicize
- User should able to create headings, subheadings, bullet points
- User should able to add images, links, undo, redo
- User should able to save the article(draft) and publish the same
Recently published articles:
- User should able to see 10 recently published articles, if user wants to see the old ones, then user can browse to the next page and view the old ones (pagination)
- User should able to view the title, short description, author details and last updated information
Article page:
- User should able to view the content of an article
- User should able to share their emotions using emoji’s
Login and Signup:
- User should able to sign up using their google account, or GitHub account, or using their email
- User should able to verify their email, if they are signing up using their email, instead of google or GitHub account
Comment:
- User should able to comment on an article, reply to other comments, upvote, and downvote
Categorizing and Tagging:
- User should able to choose their favorite categories, so that articles will be suggested based on their likings. We can capture these information after the signup process by asking them to choose their favorite categories. In the first phase, only one category/tag ‘Web development‘ will be there, later we can bring more categories
- User should able to change their favorite categories in their account setting page
Tracking:
- We can capture lots of information about user actions like most viewed categories, average time spend on an article, where user spend most of their time in an article etc.,
Now, we are clear on what are all the features needed for our website, for the first phase, we will be concentrating on high priority features
Hope you like this article, next is design, see you there ❤
References: https://www.atlassian.com/agile/project-management/estimation