- Read Tutorial
In this section of the requirements document we're going to start outlining what our plan is for the application.
Purpose
The first section is the Purpose, which outlines a high level overview of what the application will do. You can think of this as the mission for the app. Below is what we're going to use for the purpose content for DailySmarty:
The DailySmarty application will be a knowledge logging engine that provides users the ability to post and track the topics that they want to increase their skill in, along with providing a community of users to share with.
As you can see, it's very high level, however it clearly describes what the application will do. For the purpose I always try to make it so easy to read and understand so that anyone, even someone not familiar with the app, can read it and know what we're going to build.
Application Overview
The Application Overview drills down into the high level features. Whereas the Purpose's goal is to state what the goal of the application is, the Application Overview describes how we're going to do it by listing some of the key features. This is important to have since once you start getting into the details of development it can be easy to get off track of the main goals of the application. This list describes the key elements that need to be completed in order for the app to be built. Below is what we're going to use for the DailySmarty application overview:
DailySmarty aims to achieve the following feature set:
- Give users the ability to create posts discussing what they learned about specific topics
- Track the amount of time spent learning a topic
- Let other community members help refine each other’s knowledge on topics
- Reward users who consistently post on the knowledge that they’ve learned
Important Terminology
This section describes some key terminology that are specific to the application of the planned development, in the case of DailySmart we'll explain the following terms:
- Framework: The tool used to building the features, in this case the Ruby on Rails web application framework
- Programming language: Ruby
- Deployment engine: where the application will be deployed on the web, in this case it will be Digitalocean
This section would be more critical if you were building an application in a highly specialized field, such as developing an app for doctors with medical terminology. You can think of this section as the dictionary for key terms that you can reference in the future.