Software Requirements Specification - nsu-loop/nsu-loop-application GitHub Wiki

THE NSU LOOP

This document is prepared by:

Ahnaf Ismat Tasin 1731 754 042

Anik Raihan Apurba 1813 424 042

Fatema Kishwar Jahan 1731 925 642

Shahnila 1610 450 042

Simon Bin Akter 1811 772 642


Chapter 1

Introduction

We aim to create a social media platform for connecting potential employers to connect with job-seekers online. We aim to connect people on the basis of trust through their mutual affiliation with North South University. The name of this social media platform will be THE_NSU_LOOP. The idea of the project is to promote a platform for NSU seniors & alumni to connect with each on a personal level for job placement opportunities.

1.1 Purpose

Social media platforms have become very influential over the last decade & the popularities of various such platforms have exponentially increased. Acknowledging their ability to connect people, we decided to create a social media platform to specifically connect potential employers with job-seeking NSU seniors. This platform will enable only individuals with an NSU ID to register for their account & this will result in better confidence in users of the platform

1.2 Intended Audience

  • Developers
  • Project Testers
  • Marketing Department

1.3 Intended Use

Developers: Developers can use this SRS to easily understand what’s the project about, which part they should focus more, which part to improve, find if there is any scope to add new features or function for any upgrade. Project Testers: Testers can use this SRS to test the software as per requirements. This will make the testing more organized as from SRS testers can easily get the idea where to look and what error or bug they should be looking for. Marketing Department: Marketing department can use this SRS to get an idea about what they are going to promote and what are the features of this project and how this features will help the clients or users.

1.4 Product Scope

The aim of the project is to create from scratch, an ad-supported web-based social media platform where users can share data in the form of text, photo, or video but in a limited capacity, with additional features of personal interaction & a more streamlined ad-free experience which can be unlocked & experiences behind a paywall. Benefits of this web application:

  • NSU students can directly connect with NSU alumni
  • Their mutual affiliation with NSU will build trust
  • Academic documents & recommendation letters will be verified by our platform Objective of this web application:
  • Make the hiring process focused & easier around NSU students & graduates

Chapter 2

Overall Description

2.1 User Classes and Characteristics

Our priority is to develop a web platform which would be dynamic in nature, meaning we should be able to add, remove or update any feature at any given time. To achieve this goal, we plan to implement a maintenance platform for the project so that we can tackle any problem at any time without it going out-of-service. There will be three types of users in the system. Admins, Employers and Job-Seekers. First of all, the Admin will have control and knowledge over the entire system. They can directly monitor the Employers’ and Job-Seekers’ tasks and also approve connection requests. They can add and remove connections as well. The Admin will have access to the each user’s personal information and has ability to update it as well.

2.2 User Needs

Our target users will be fresh & recent university graduates seeking internships or part-time, full-time jobs. The necessary details of the credentials of the job-seeking candidates will be verified by our team so that potential employers can expedite the process of hiring candidates. The NID & Student ID of each user will be recorder upon registration & all this information will be stored in our database to give the university officials data regarding the employment rate of the graduates.

2.3 Operating Environment

  • Operating System: Windows/ Linux/ Mac
  • Distributed Database: SQL Lite
  • Front-End: HTML, CSS, JavaScript
  • Back-End: Python
  • Framework: Django

2.4 Constraints

  • This web-application will require primarily the learning of Python programming language
  • The project must be completed in 8 weeks

2.5 Assumptions

It will be assumed that the users will possess good internet connectivity. Users will have to register using their NSU email address. The user interface will be in Basic English.

Chapter 3

Requirements

3.1 Functional Requirements

As a user, I want to register & login to the THE_NSU_LOOP platform:

There will be two different options in the homepage: Register and Sign-in. To sign-into the platform, A user must finish their registration first by provide the first name, last name, email address, user name, password (and retype password). Furthermore, the user must confirm their email and password. Nevertheless, if there have many usernames in one name, then the user needs to change his or her username. The registration information is stored on the database and in future the user will be logged in by providing email and password.

Confirmation:

There should be a few confirmations or pop up notification in the create new account page. For example, “Account Registration Successful!” and proceed to refer to login page. If registration is unsuccessful, one of the following applicable messages will display:

  • “Email address in wrong format”
  • "Please give your email first"
  • "You should choose your username”
  • “This user name is already exists”
  • “Email is already exists”
  • “Password must have at least 8 characters long”
  • "Password and confirm password does not match"

Confirmation:

There should be a few confirmations or pop up notification in the login page. If login is unsuccessful, one of the following applicable messages will display:

  • “Invalid credentials”
  • “Please make sure you are not a robot”
  • “Invalid captcha”

As a user I want to create & personalize my user profile:

After I register for an account, I want to be able to create & personalize my own user-profile. I want this user-profile to be a reflection of my the most important details. I want to put this information into the system so that potential employees can search for me using my given data. On the other hand, I also want to be able to search for other user-profiles using the same information provided by other users on the platform. I also want to add a profile picture. As a unique feature, I want to be verified of my skills by other users. For example, instead of just saying that I am skilled at a particular subject, I want other users to verify this for me so I can display this data on my profile.

Confirmation:

  • User will be asked to register if they have not done it before.
  • System will ask the user to input details such as Name, Phone#, NSUID, Major subject, CGPA, Graduation Year, Company they work at etc.
  • User will be provided the option to update & remove any detail if they wish. Only the user can update their own profile. They can only view other's profile.
  • If the user wants to cancel, they have to it before saving their progress.
  • User will be presented with a talent & a short random list of five of their friends. They can vote on which user possesses that talent. This data will show on each user's profile for other users to view.

As a user I interact with my friends through multiple options:

I want to be able to let my connections/friends know what's on my mind by sharing posts in the form of photos , text or both. When they view my posts, I want to give them the option to to like or comment on my posts.

Confirmation:

  • User will be asked to register if they have not done it before.
  • They'll be displayed a text field & asked to fill it & press enter to post.
  • If they want to upload a picture alongside a text body, they can do that too.
  • User will have the option to update their posts. There will be a confirmation message displayed on screen after updating.
  • Only the user will be shown the option to delete. There will be a confirmation message displayed on screen after deleting.
  • Other users' comments will be initially hidden by default to avoid clutter on screen. Only after pressing the view button will the comments be displayed.

As a user, if I am bored I want to play a simple game without exiting the platform, maybe with a possibility some kind of a reward:

Confirmation:

  • User will be asked to register if they have not done it before.
  • A simple feature will be added to the navigation bar.
  • Single input feature with a binary win/lose outcome.
  • If input value matches with specific value in database, message will display "Congratulations!"
  • If input value does not match with specific value in database, message will display "Sorry!!"
  • If input value matches with specific value in database once but user tries to input it again, message will display "Sorry!"

As a user, I want to find specific friends & posts made by my friends:

I want to use this feature to search for things on the platform that I wish to find.

Confirmation:

  • User will be asked to register if they have not done it before.
  • There will be a Find button in the navigation bar, where the user can search for posts or other user-profiles.
  • User will be shown options to search for posts made by their friends, or their friends themselves.
  • The search function will take the input in the form of name, email address, phone number or other categories like CGPA, Graduation Year, Major subject etc.
  • User will have the option to search with multiple tags by considering common properties.
  • Upon searching, the posts or user-profiles shown will be clickable which will redirect to a new page within the platform which has that original content.
  • If any result is not available than the page will pop out “Not found”.

As a user, I want to make payment onto the platform:

Confirmation:

  • User will be asked to register if they have not done it before.
  • User will be redirected to a page with two input fields: mobile number & Transaction ID
  • User will press submit after filling both these fields.
  • After submitting, there will be a message displayed depending on the case. If both the mobile number & transaction ID match with a recent pair on the database, "payment successful" message will display. If none match, 'payment unsuccessful" will display. If there is a match with a previously used pair, 'payment invalid' will display.

As a user, I want to connect with other users, by way of friend requests:

Confirmation:

  • User will be asked to register if they have not done it before.
  • Users can send friend requests to other users.
  • Users can choose to accept or delete friend request.
  • Users can View a list of their friends.
  • Users can choose to remove friend later after initially accepting their friend request.

As a user, I want to message my friends on the platform:

Confirmation:

  • Users can send a message to their friends.
  • Users can receive messages from their friends.

3.2 Non Functional Requirements

3.2.1 Security Requirements Security requirements of the system:

  • Encrypt users’ private information
  • Encrypt payment information
  • Showing the right content to the right audience.

3.2.2 Security Requirements

  • System will use secure database.
  • OS must handle expected or non-expected errors in ways that prevent loss in information and long down time period.
  • Keeping academic information private.

3.2.3 Performance

  • Maximum number of individuals should be able to concurrently visit the website.
  • System must display applicable error messages.
  • The average response time for user login after entering user name and password should be no more than 3 seconds and the maximum response time should be 10 seconds.

Appendix

Glossary

SRS: A software requirements specification (SRS) is a description of a software system to be developed. The software requirements specification lays out functional and non-functional requirements, and it may include a set of use cases that describe user interactions that the software must provide to the user for perfect interaction.