Develop a blog website from scratch — 1 (Requirements)

Mahalingam Sundararaj
3 min readOct 13, 2022

--

Photo by Glenn Carstens-Peters on Unsplash

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

--

--