Skip to content

Latest commit

 

History

History
57 lines (54 loc) · 6.54 KB

Requirements Specification.md

File metadata and controls

57 lines (54 loc) · 6.54 KB

Техническое Задание: Сетевой Чат с Регистрацией Пользователей в Консоли (C++)


1. Введение

1.1 Цель проекта

Разработать сетевой чат на языке программирования C++, предоставляющий возможность регистрации пользователей и обмена текстовыми сообщениями.

1.2 Ожидаемый результат

Создание консольного приложения, способного обеспечивать взаимодействие между зарегистрированными пользователями через сеть.

2. Функциональные требования

2.1 Регистрация пользователя

При запуске чата должно предоставляться меню для входа в существующий аккаунт или создания нового. При создании нового аккаунта пользователь должен указать уникальное имя и пароль.

2.2 Обмен сообщениями

Зарегистрированные пользователи могут отправлять и принимать текстовые сообщения. Сообщения должны отображаться в консоли с указанием отправителя и времени отправки. Пользователь должен иметь возможность выбора адресата сообщения.

2.3 Авторизация и безопасность

Доступ к чату должен требовать аутентификации по логину и паролю. Пароли должны храниться в безопасном хэшированном виде. При неудачной попытке входа пользователь должен получить соответствующее уведомление.

3. Технические требования

3.1 Язык программирования

Использовать C++ для разработки.

3.2 Сетевое взаимодействие

Использовать сокеты для обеспечения сетевого взаимодействия между клиентами.

3.3 Хранение данных

Данные о пользователях, сообщениях и других необходимых сведениях следует хранить в структурированных файлах или базе данных.

3.4 Обработка ошибок

Предусмотреть обработку ошибок ввода-вывода, сетевых ошибок и ошибок аутентификации.

3.5 Пользовательский интерфейс

Реализовать консольный интерфейс для взаимодействия с пользователем.

4. Список используемых систем

4.1 Система регистрации пользователя

Система должна осуществлять регистрацию пользователя по логину и паролю, хранящемуся в хэшированном виде, а также должна предоставлять возможность создания нового аккаунта. Система должна обеспечивать проверку уникальности идентификаторов пользователей. Также система должна уметь обрабатывать такие ошибки как неверный логин или пароль. Для реализации вышеуказанных требований система должна использовать простейший графический интерфейс.

4.2 Система отправки сообщений

Система отправки сообщений должна реализовывать такой функционал как отправка сообщения выбранному пользователю с указанием даты и времени отправки. Возможно использование текстового редактора (e.g. vim) для набора сообщения с клавиатуры.

4.3 Система получения сообщений

Система получения сообщений должна реализовывать такой функционал как получение сообщений от активных пользователей. Текст сообщения должен выводиться в консоль с указанием имени(псевдонима) отправителя, датой и временем отправки/получения сообщения отправителем.

4.4 Система хранения данных (База данных)

Система должна обеспечивать удобное хранение данных о пользователях, сообщениях и других необходимых сведениях, путём записи данных в структурированные файлы или базу данных.

5. Тестирование

5.1 Модульное тестирование

Реализовать модульные тесты для каждого компонента системы. Тестировать различные сценарии взаимодействия между пользователями.

5.2 Интеграционное тестирование

Провести тестирование работы системы в условиях реального сетевого взаимодействия.

6. Дополнительные требования

Разработать документацию по использованию чата. Предоставить исходный код проекта и инструкции по сборке.

7. Сроки

Планируемая дата завершения проекта: 15.01.2024

8. Обратная связь

Регулярные обновления о ходе разработки и проблемах, возникающих в процессе.
Подпись Заказчика: ____________________________

Дата: 19.11.2023