Приложение на flutter
Техническое задание на разработку мобильного приложения "Управление автомобилями и клиентами"
1. Введение
Мобильное приложение предназначено для управления арендой автомобилей и клиентской базой. Приложение будет использоваться сотрудниками компании, предоставляющей автомобили в аренду. Основные функции включают управление клиентами, автомобилями, их техническим обслуживанием и занятостью, а также авторизацию и работу с данными через Firebase.
2. Цель проекта
Целью разработки является создание мобильного приложения, которое позволяет эффективно управлять клиентской базой и автомобилями, отслеживать техническое обслуживание автомобилей, планировать их занятость, а также улучшить качество работы с арендаторами.
3. Функциональные требования
3.1 Авторизация и управление доступом
- Авторизация пользователя при входе с использованием PIN-кода.
- Функция установки нового PIN-кода при первом входе в приложение.
- Проверка PIN-кода для входа в приложение.
- Сохранение PIN-кода
3.2 Управление клиентской базой
- Отображение списка клиентов с возможностью просмотра информации о каждом клиенте.
- Добавление новых клиентов с вводом следующей информации: ФИО, номер водительского удостоверения, номер телефона, стаж вождения, рейтинг, цель аренды.
- Редактирование данных существующих клиентов.
- Удаление клиента из базы данных.
- Хранение данных о клиентах в Firestore.
3.3 Управление автомобилями
- Отображение списка автомобилей с информацией о каждом автомобиле.
- Добавление новых автомобилей в базу данных с указанием названия и статуса (в ремонте, в ожидании, в работе).
- Редактирование названия и статуса автомобилей.
- Удаление автомобилей.
- Хранение данных об автомобилях в Firestore.
3.4 Техническое обслуживание автомобилей
- Добавление и управление записями технического обслуживания (ТО) для каждого автомобиля.
- Отображение списка ТО для выбранного автомобиля, включая дату, вид работ и стоимость.
- Редактирование и удаление существующих записей ТО.
- Хранение данных о ТО для каждого автомобиля в Firestore.
3.5 Календарь занятости автомобилей
- Календарь занятости для отслеживания статуса каждого автомобиля (в работе, в ожидании, в ремонте).
- Добавление и редактирование занятости автомобилей на конкретные даты с указанием статуса, дохода, расходов, цели аренды, водителя.
- Отображение общей статистики за месяц (доход, расходы, чистая прибыль).
- Хранение данных о занятости для каждого автомобиля в Firestore.
4. Нефункциональные требования
4.1 Требования к интерфейсу
- Простой и понятный интерфейс.
- Поддержка русского языка.
- Адаптивный дизайн для корректного отображения на устройствах с разным размером экрана.
4.2 Требования к производительности
- Обеспечение быстрой загрузки данных из Firebase Firestore.
- Поддержка работы приложения в офлайн-режиме с возможностью синхронизации при подключении к интернету.
4.3 Безопасность
- Хранение пользовательских данных в защищенном виде.
- Использование авторизации через PIN-код для предотвращения несанкционированного доступа.
- Ограничение прав доступа к данным в Firebase Firestore (правила безопасности).
5. Архитектура и стек технологий
- Платформа: Flutter .
- База данных: Firebase Firestore для хранения информации о клиентах, автомобилях, ТО и занятости.
- Стейт-менеджмент: Provider для управления состоянием приложения.
- Firebase: Авторизация и хранение данных.
- Локальное хранилище: SharedPreferences для хранения PIN-кода.
6. Взаимодействие с пользователем
- Главный экран: Авторизация пользователя по PIN-коду.
- Экран автомобилей: Просмотр списка автомобилей, добавление/редактирование/удаление автомобиля.
- Экран клиентов: Просмотр списка клиентов, добавление/редактирование/удаление клиента.
- Экран ТО: Управление записями ТО для автомобилей.
- Календарь занятости: Планирование и просмотр занятости автомобилей.