Requirements

Project technical stack

Server-side

Client-side

Glossary

Word

Meaning

room

Basically, a room is a collection of messages, that users have sent to the room

asynchronous

Then events come to services independent from program flow

web framework

An abstract library that gives opportunity to create a web application

CAPTCHA

test used in computing to determine whether or not the user is human

Stakeholders Roles

Stakeholder’s Name

Roles

Responsibilities

Ivan Izmailov

Backend, DevOps

API server, CI/CD, design and architecture creator

Lev Lymarenko

Frontend, team management

Web client, updating docs, task distribution

Ivan Obraztsov

Frontend

Web client design and implementation

User stories

Epic 1. Web client

US-101. Rooms list

As a anonymous user I want to go to main chat page and see full list of rooms and their short descriptions So that I can see brief history of application

US-102. Messages list

As a anonymous user when I click to avaliable room from rooms list then I see messages of this rooms from other users

US-103. Room info

As a anonymous user I want to see the username of the person who created the room and the creation date So that I can distinguish rooms with the same names

US-104. Creating rooms

As a registered user I want to create new room with given name So that I can create a topic that interests me

US-105. Chatting

As a registered user I want to send a text message to avaliable room So that I can chat with other people

Epic 2. Authentication

US-201. Registration

As a anonymous user I want to register my username in system So that I can become a registered user and be able to create rooms and chat with other people.

US-202. Robots suppression

As a registered user I don’t want to see spam from robots in chats and I would like to see a way to stop robots from registering in the system So that I will be less likely to communicate with robots.

Non-functional requirements

Usability

User interface standards used. Provided documentation.

Reliability

Safety and security requirements. Exception handling. Mean time between failures.

High-speed response

Returning a appropriate response is 99.99% of the time. Using asynchronous fast framework.

Implementation

System must support all popular platforms

Interfaces

There is clear interfaces to existing systems.