functional specification template

General guidelines: This document is a sample functional specification for personalised web application. You as the customer with the idea – fill it out. The fields are just suggestions. You can add/edit/remove any of the following fields. You don’t have to use specific technical terms. But it is important that the document is bound by logic and detail description. The company that is going to develop your software project has to understand your writing without the need for external expert from your field.

  1. Name and short description of the project


State the name and give a short description of the project

Example:

The project’s name is Evinat. It is a social network for young entrepreneurs, who gather to share their ideas for StartUps. These ideas are going to be shared in the form of publications, chats, discussions and pages.

  1. Type of users


Describe the type of users you would like to have.

Example:

  • Administrator
  • User
  • Partner

Describe the functions of each type of users.

Example:

  • The administrator is going to approve/block registrations.
  • The user is going to be able to fill in and edit his/her personal information.
  • The partner is going to have access just to the basic information of the users.
  1. Sign up, sign in and sign out


Describe how is the sign up going to be developed.

Example:

The user is going to be able to register in two ways:

  • Directly with his/her Facebook account
  • With an email
  • The user must agree to the terms and conditions of the platform

Due to security measures there is going to be a session time out. So if the user is inactive for a certain period of time, he/she will have to sign in again. 

Option for forgotten password, that ……………

After signing in, the user ……………………

  1. Core functionality (basic idea)


Describe the core functionality. Be very descriptive. Divide the functionalities into modules and describe how these modules interact with each other, what design do they have, how are they going to be related to the users and what type of automatisation does this application need. If you have a more complex idea you can even divide the modules to submodules.

Module 1: Main wall

Description Design Interactions with other modules
The application should have one main wall, which will display all user publication. These publications could be images, videos, texts or links.

 

 

The display will divide into 3 parts: left 20%, middle 60% right 20%.

The left part will be filled with partner advertisements. The middle part will display user publications. The right part will display news from external web sites.

 

Module 1 will take the data for the publications from Module 3 – User profile and the advertisements from Module 2 – Partner profile. The display criteria are described in detail in Module 2.

Module 1 will take RSS data from external media web sites described in Module 4.

Function of administrator Module automatisation Constant elements 
The administrator will remove publication from users if they violate the terms and conditions of the platform. He will monitor and approve partner advertisements. User publication will appear instantly without the need of administrative approval. The advertisements will show and hide according to the payment plan they choose.

The news from external media web sites will automatically generate without the need of administrative approval.

There will be a header and a footer, that will appear at all time. The header will have the logo, search engine and links. The footer will have contact information.


……………………………………………..……………………………………………

……………………………………………..……………………………………………

Module 20:……………………………………………..……………………………………………

  1. Design and logo


Describe who is going to do the design and the logo.

Example:  The logo is already created. The design will be done by the company that will develop the project. If this company does not offer designer services, we will contact an external company that will provide the design in the form of code and not images.

  1. Online payment integration


Describe the types of online payment integration that you want.

Example:

The platform will provide the following payment methods:

  • Bank transfer
  • PayPal
  • Credit/debit card
  • EPay

FYI! To implement online payment method you need to contact the specific provided and sign a contract on the company’s name. Only after you have signed the contract, will they give us access to start the integration. If you have short implementation period, it is good to contact the providers before you start asking for web development offers. This way both sides will avoid time delay.

  1. SEO


Describe the way you will conduct your SEO campaign.

Example:

The SEO campaign will be conducted by an external company, which will take case for the initial indexation, popularisation in social media and on-site SEO.

  1. Google analytics


Example:

The platform is going to be connected to the free marketing tool – Google Analytics to monitor the web platform traffic.

  1. Languages


Describe how many languages you want the platform to be translated to.

Example:

The platform will be translated to two main languages – English and Bulgarian. When a user signs up, he/she will choose the preferred language. But there will be an option to change the language at any time.

  1. Creating email accounts with the project’s domain name


Describe what type of accounts you want to be created with the domain name.

Example:

The project’s domain name is www.evinat.com. There are two email addresses that need to be created for contact with the administrators.

office@evinat.com

administrator@evinat.com

  1. Connection to social media


List all social media you want the platform to be in contact with and describe how will they communicate.

Example:

The platform is going to be connected with Facebook. The only connection is the possibility for a user to register with his/her Facebook account instead of creating a new username and password.

  1. Newsletter


Describe whether you want to gather email lists and how.

Example:

The platform will collect email lists with the help of a newsletter sign up form in the footer. This functionality should be integrated with MailChimp.

  1. Terms and conditions


Any site that collects personal data should be registered as a Personal data administrator. If you collect private data from the users on your platform you should register as one and include it in your terms and conditions page.

Example:

The terms and conditions page is going to be a simple text page with bullets and numbering. The administrator should be able to edit it at any time. 

  1. Help


Describe whether you wish to assist your users and how.

Example:

The platform is going to have a FAQ Module, where Q&As could be edited at any time from the administrator. There is going to be a contact form below for questions that are not amongst the answers. The contact form should have the fields “Name”, “Question” and button “Send”. After the user has submitted a question, the contact form has to automatically send an email to administrator@evinat.com. The screen of the user will refresh and will show the following message:

“Thank you for contacting us! Your question is being process. We will try to give you an answer as soon as possible.”

  1. Page 404


List whether you want to have an Error 404 page and what is should be.

Example:

The platform is going to have an Error 404 page. The content of the page will be text that explain that this page no longer exists and a button with the link to the main page.

  1. Domain


Describe the situation with the domain. Did you purchase any or are you in the process of finding a name.

Example:

The project already has a domain – www.evinat.com.

  1. Hosting


Describe the situation with the hosting/server.

Example:

The project doesn’t have a hosting or a server. The hosting is going to be provided and maintained by the web company that develops the project.

  1. Customer content due


You need to provide full and detailed information (including content such as logo, text, images) to the web development company. Only after that can the company fully finish the platform. Most of the information needs to be provided before the project starts, so that the developers know how exactly to structure the platform and their code.

Example:

  • The exact functional specification will be provided to the web development company 5 days before we sign the contract. The specification will be attached to the contract.
  • Images, videos, texts as well as *.pdf files will be provided on the day we sign the contract. They will be well structured to show where does each file belong.
  • The access to the PayPal account will be provided within 5 days of the contract signing. 
  • Translations for other languages will be provided within 7 days of the contract signing. 
  • The text for the “Terms and conditions” page will be provided after legal council, but no later than 10 days after the contract signing. 
  1. Date for official release


Write down then you want to be the official release of your platform. This date may NOT be the actual date you release it, but it will give the web development company a notion to how quick you wish things to proceed. And if needed the company may hire extra people to get the job done earlier.

Example:

Data for official application release: 23 March 2018

  1. Support


If you have a multifunctional platform and no programming skills, you will most likely need the company to provide support. Describe that do you want to be included as activities.

Exampla:

The support company will maintain the following processes:

  • Monthly file and database back-up.
  • Support of the domain and hosting.
  • Code changes – up to 6 hours per month.
  • Software updates.
  1. Budget


Even if you don’t have any real idea of how much this could cost, you could give the budget range you have set aside for this project. Give accurate numbers. If you say you have very little money, no one will take you seriously. If you say you have a lot, they will try to take them. Do your research.

Example:

The budget set aside for this project is $10 000 – $14 000 with taxes.