Разрешите представить вам дипломный проект на тему "Разработка мобильного приложения 'Планировщик задач'". В настоящее время большинство приложений для проектной работы и ведения личных дел сталкиваются с рядом ограничений, таких как централизация системы, что означает полную зависимость пользователей от разработчика, частичная или полная закрытость системы, что делает невозможным внедрение новых функций и возможностей самостоятельно (персонализация), а также коммерциализация сервисов, что приводит к появлению или увеличению цен, введению платных подписок и услуг, и отвлекает пользователей от основной цели использования.
Эти проблемы можно решить, создав систему, которая акцентирует внимание на принципах децентрализованности и открытости, а также ставит в приоритет безопасность и неприкосновенность данных пользователей. Именно такой системой является проект Uptask.
Он позволяет вести свои дела, не отвлекаясь на рекламу, не беспокоясь о качестве интернет-связи или о внезапном закрытии проекта, и не переживая о безопасности своих данных.
Uptask полностью локален, все данные хранятся непосредственно на устройстве пользователя, а исходный код проекта полностью открыт и позволяет персонализировать систему под свои нужды.
Помимо этого, актуальной является и сама сфера планирования для любого пользователя - она пользуется большим спросом в современном мире, где время является самым ценным ресурсом, а информационный шум зашкаливает.
Планирование своей жизни и её структуризация решает проблемы рассеянности, забывчивости, помогает распределять приоритеты задач, проводить самоанализ и саморазвитие.
Основной задачей дипломного проекта является разработка мобильного приложения планировщика задач с расширенным функционалом категоризации, сортировки, группировки задач.
Основные этапы включают проектирование и разработку архитектуры приложения, создание удобного пользовательского интерфейса, обеспечение безопасности данных и проведение тестирования для оценки качества работы приложения.
Для разработки приложения Uptask были использованы следующие среды программирования:
-
Язык программирования Kotlin: Kotlin – это современный статически типизированный язык программирования, разработанный компанией JetBrains, который широко используется для разработки Android-приложений благодаря своей лаконичности, безопасности и интероперабельности с Java.
-
Фреймворк Jetpack Compose: Jetpack Compose – это современный инструмент для создания пользовательского интерфейса от Google, который упрощает и ускоряет процесс разработки UI за счет декларативного подхода и интеграции с Kotlin.
-
База данных H2: H2 Database – это легковесная встроенная реляционная база данных, которая обеспечивает локальное хранение данных на устройстве пользователя, не требуя отдельного серверного процесса, что делает её идеальной для мобильных приложений.
-
Android SDK: Android Software Development Kit (SDK) – это набор инструментов и библиотек от Google, которые предоставляют разработчикам средства для создания, тестирования и отладки приложений на платформе Android.
-
Android Studio: Android Studio – это официальная интегрированная среда разработки (IDE) для Android от Google, которая предоставляет мощные инструменты для редактирования кода, отладки, тестирования и анализа производительности, а также тесную интеграцию с Android SDK и Kotlin.
Каждая из этих технологий играет ключевую роль в обеспечении функциональности, производительности и безопасности приложения Uptask. Kotlin обеспечивает надежность и простоту кода, Jetpack Compose ускоряет разработку интерфейса, H2 надежно хранит данные локально, Android SDK предоставляет необходимые библиотеки и инструменты, а Android Studio объединяет все эти компоненты в удобной и мощной среде разработки.
Приложение Uptask включает в себя следующие основные функции:
- Регистрация нового пользователя: Пользователи могут создать новый аккаунт, предоставив необходимые данные, такие как логин и пароль.
- Аутентификация: Есть возможность войти в приложение, используя свои учетные данные. Аутентификация обеспечивает безопасность и доступ к своей информации.
- Создание списков задач: Создание новых списков задач, которые помогут им организовывать свои дела по категориям или проектам.
- Редактирование списков задач: Возможность изменять название и эмодзи списков задач, если это требуется.
- Удаление списков задач: Пользователи могут удалять ненужные списки задач, чтобы поддерживать актуальность своей информации.
- Создание задач: Пользователи могут добавлять новые задачи в любой из своих списков. При создании задачи можно указать её название, описание, дату выполнения, приоритет, и если требуется - установить напоминание.
- Редактирование задач: Возможность изменять детали задач, такие как название, описание, дату выполнения, приоритет и статус выполнения при её обновлении.
- Удаление задач: Пользователи могут удалять задачи, которые больше не актуальны.
- Установка статуса выполнения: Пользователи могут отмечать задачи как выполненные или невыполненные, что помогает отслеживать прогресс.
- Добавление тегов к задачам: Пользователи могут присваивать теги задачам для лучшей организации и поиска.
- Удаление тегов: Пользователи могут удалять ненужные теги.
- Отслеживание изменений: Приложение сохраняет историю изменений задач, таких как создание, редактирование и удаление, что позволяет отображать статистику.
- Установка напоминаний: Пользователи могут устанавливать напоминания для задач, чтобы не забывать о важных делах.
- Получение уведомлений: Приложение отправляет уведомления пользователям, когда наступает время выполнения задачи или за определенное время до этого.
- Простота и удобство использования: Приложение предлагает интуитивно понятный интерфейс, который позволяет пользователям легко создавать, редактировать и управлять своими задачами.
- Хранение данных: Все пользовательские данные хранятся в локальном кеше приложения, что обеспечивает безопасность и конфиденциальность.
- Работа в офлайн-режиме: Приложение позволяет пользователям управлять своими задачами даже без подключения к интернету. Все изменения синхронизируются при восстановлении подключения.
Эти функции делают Uptask мощным инструментом для управления задачами, обеспечивая пользователям гибкость, безопасность и удобство в повседневной жизни и работе.
Основные исходные данные включают в себя следующее.
- Пользовательские данные:
- Логин: Имя пользователя, используемое для входа в систему;
- Пароль: Секретная комбинация символов для доступа к аккаунту.
- Данные задач:
- Название задачи: Краткое описание или заголовок задачи;
- Описание задачи: Детальное описание того, что нужно выполнить;
- Дата выполнения: Срок, к которому задача должна быть выполнена;
- Приоритет: Важность задачи по сравнению с другими задачами;
- Статус выполнения: указывает, выполнена задача или нет;
- Напоминание (за сколько времени до срока напомнить).
- Данные списков задач:
- Название списка: Название, идентифицирующее список задач.
- Эмодзи или иконка: Графический символ, ассоциирующийся со списком.
- Задачи: Ссылки на задачи, включенные в список.
- Данные для аналитики:
- Дата начала периода: Начало временного промежутка для анализа.
- Дата окончания периода: Конец временного промежутка для анализа.
Выходные данные это сами задачи, их отображение на экране, аналитическая информация.
Основные сущности созданной базы данных, а также связи между ними представлены на следующем рисунке:
Схема базы данных приложения Uptask включает несколько таблиц, каждая из которых отвечает за определенные аспекты работы с задачами и пользователями. Ниже приведено описание основных таблиц и их взаимосвязей:
-
Пользователи (Users): Эта таблица хранит информацию о пользователях приложения. Включает поля:
ID(идентификатор пользователя, первичный ключ),LOGIN(логин пользователя) иPASSWORD(пароль). Эта таблица является основной для всех данных, связанных с пользователями. -
Списки задач (TaskLists): Таблица списков задач хранит информацию о различных проектах, создаваемых пользователями. Включает поля:
ID(идентификатор списка, первичный ключ),userId(идентификатор пользователя, внешний ключ),NAME(название списка) иEMOJI(эмодзи для визуальной идентификации списка). Связана с таблицей пользователей по полюuserId, что позволяет хранить списки задач конкретных пользователей. -
Пользовательские задачи (UserTasks): Таблица задач хранит информацию о всех задачах, создаваемых пользователями. Включает поля:
ID(идентификатор задачи, первичный ключ),userId(идентификатор пользователя, внешний ключ),taskListId(идентификатор списка задач, внешний ключ),TASK(название задачи),DESCRIPTION(описание задачи),dueDate(срок выполнения),isDone(статус выполнения),PRIORITY(приоритет задачи). Связана с таблицами пользователей и списков задач по полямuserIdиtaskListId, что позволяет отслеживать задачи конкретных пользователей и их проектов. -
Теги задач (TaskTags): Эта таблица хранит теги, связанные с задачами. Включает поля:
ID(идентификатор тега, первичный ключ),taskId(идентификатор задачи, внешний ключ) иTAG(текст тега). Связана с таблицей задач по полюtaskId. Так как у одной задачи может быть несколько тегов, они были вынесены в отдельную таблицу. -
Логи (Logs): Таблица логов хранит историю изменений, внесенных в задачи. Включает поля:
ID(идентификатор лога, первичный ключ),userId(идентификатор пользователя, внешний ключ),taskId(идентификатор задачи, внешний ключ),DATE(дата изменения) иACTION(тип изменения: создание, обновление, удаление). Связана с таблицами пользователей и задач по полямuserIdиtaskId, что позволяет отслеживать изменения, сделанные конкретными пользователями в конкретных задачах, а также позволяет собирать статистику по ним и отображать в соответствующем разделе.
Эти таблицы вместе обеспечивают функциональность приложения Uptask, позволяя пользователям управлять своими задачами, добавлять теги для лучшей организации и анализировать свою продуктивность. Связи между таблицами обеспечивают целостность данных и позволяют выполнять сложные запросы для анализа и отображения информации. Каждая задача принадлежит своему списку, а список пользователю, таким образом соблюдается третья нормальная форма.
Приложение Uptask состоит из следующих основных компонентов:
- Модуль управления задачами: отвечает за создание, редактирование, удаление и сортировку задач.
- Модуль напоминаний: обеспечивает установку и управление напоминаниями для задач.
- Модуль аналитики: генерирует отчеты о выполнении и невыполнении задач.
- Модуль профиля пользователя: позволяет изменять логин и пароль пользователя, а также удаление БД.
- Модуль экспорта: моментальный экспорт данных в читаемый другими программами формат.
Далее представлены скриншоты интерфейса приложения.
[РИСУНОК]
Безопасность данных пользователей является одним из ключевых аспектов приложения Uptask. Для обеспечения защиты были предприняты следующие меры:
- Все данные хранятся локально на устройстве пользователя и не передаются через интернет.
- Система аккаунтов с обязательной авторизацией для доступа к функционалу
В результате, проект Uptask представляет собой современное и безопасное решение для управления задачами, которое решает множество проблем, присущих существующим аналогам, и обеспечивает пользователям высокую степень контроля и безопасности их данных.
