Skip to content

007sunchela/tarotify

Repository files navigation

Tarotify

Логотип приложения

Описание приложения

Tarotify — это астрологическое приложение для чтения карт Таро и предсказаний. Пользователи могут получать расклады по разным категориям, просматривать историю вытянутых карт и получать прогнозы судьбы через Gemini API.

Функции приложения

Backlog:

  • чтение карт Таро;
  • расклады карт Таро по разным категориям;
  • сохранение истории вытянутых карт Таро;
  • предсказание судьбы через Gemini API;
  • сохранение отчета в виде документа PDF;
  • смена цветовой темы.

Структура базы данных

База данных

Таблица types содержит два столбца:

  • id: идентификатор (целочисленный, автонумерация);
  • name: название типа (обязательное текстовое поле).

Типы карт Таро: Старший Аркан, Младший Аркан.

База данных

Таблица suits содержит два столбца:

  • id: идентификатор (целочисленный, автонумерация);
  • name: название масти (обязательное текстовое поле).

Масти карт Таро: Жезлы, Кубки, Мечи, Пентакли.

База данных

Таблица tarots содержит девять столбцов:

  • id: идентификатор карты (целочисленный, автонумерация);
  • idType: внешний ключ, ссылающийся на таблицу types;
  • idSuit: внешний ключ, ссылающийся на таблицу suits;
  • name: название карты (обязательное текстовое поле);
  • value: значение карты (целочисленное, обязательное);
  • url: ссылка на изображение карты (обязательное текстовое поле);
  • meanOne: прямой смысл карты;
  • meanTwo: переносный смысл карты;
  • description: интерпретация карты.

База данных

Таблица love_history содержит пять столбцов:

  • id: идентификатор записи (целочисленный, автонумерация);
  • idTarot: внешний ключ, ссылающийся на таблицу tarots;
  • meanOne: прямой смысл карты в контексте любви;
  • meanTwo: переносный смысл карты в контексте любви;
  • description: интерпретация карты в контексте любви.

База данных

Таблица career_history содержит пять столбцов:

  • id: идентификатор записи (целочисленный, автонумерация);
  • idTarot: внешний ключ, ссылающийся на таблицу tarots;
  • meanOne: прямой смысл карты в контексте карьеры;
  • meanTwo: переносный смысл карты в контексте карьеры;
  • description: интерпретация карты в контексте карьеры.

База данных

Таблица finance_history содержит пять столбцов:

  • id: идентификатор записи (целочисленный, автонумерация);
  • idTarot: внешний ключ, ссылающийся на таблицу tarots;
  • meanOne: прямой смысл карты в контексте финансов;
  • meanTwo: переносный смысл карты в контексте финансов;
  • description: интерпретация карты в контексте финансов.

Навигация приложения

Навигация

Навигация внутри приложения Tarotify выглядит следующим образом:

  • Intro Page — стартовая страница, откуда пользователь может перейти на другие разделы;
  • Tarots Page — основная страница для работы с картами Таро, с возможностью перехода на страницы с различными темами предсказаний;
  • Love Page, Career Page, Finance Page, и Fate Page — страницы, посвященные предсказаниям в различных областях жизни, таких как любовь, карьера, финансы и судьба;
  • Settings Page — страница настроек, где пользователь может изменить параметры приложения.

Архитектура приложения

Архитектура

Архитектура приложения состоит из трёх основных компонентов:

  1. UI — этот слой отвечает за отображение информации пользователю, используя Flutter для создания интерфейса;
  2. Logic — этот слой описывает логику работы приложения через Cubit по управлению состоянием;
  3. Networking — этот слой включает в себя работу с внешними API, такими как Gemini для предсказаний, и Drift для работы с базой данных.

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

Стек разработки

Стек приложения включает следующие компоненты:

  • Gemini API: Используется для прогнозирования судьбы по дате рождения;
  • Local Storage (Drift/SharedPreferences): Для хранения данных локально, таких как пользовательские настройки и истории вытянутых карт Таро по разным категориям;
  • State Managment (Cubit): Управляет состоянием приложения и взаимодействует с UI, обеспечивая обновления и синхронизацию данных на экранах;
  • Navigation (Go Router): Обеспечивает гибкую и удобную навигацию между экранами приложения, позволяя легко переходить между различными разделами;
  • Native API (permission_handler): Используется для получения разрешений на доступ к функциям устройства.

Обзор приложения

Вступительная заставка

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

Логотип 1
Логотип 2
Логотип 3

Цветовая тема

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

Логотип 1
Логотип 2

Карты Таро

На странице Карты Таро пользователь может просматривать карты. На прямой стороне карты представлены изображение карты и название. На обратной стороне карты представлена полная информация, включая название карты, ее тип, масть (для младших арканов), номер карты в колоде, прямой смысл, переносный смысл и интерпретация карты.

Логотип 1
Логотип 2

Любовь

На странице Любовь представлен расклад карт Таро в контексте любви. При вытягивании карты Таро пользователь может узнать, какое значение несет в себе вытянутая карта в контексте любви. (открытые карты - карты, которые пользователь еще не вытягивал; закрытые карты - карты, которые пользователь уже вытягивал)

Логотип 2
Логотип 3
Логотип 1

Карьера

На странице Карьера представлен расклад карт Таро в контексте карьеры. При вытягивании карты Таро пользователь может узнать, какое значение несет в себе вытянутая карта в контексте карьеры.

Логотип 2
Логотип 1
Логотип 1

Деньги

На странице Деньги представлен расклад карт Таро в контексте финансов. При вытягивании карты Таро пользователь может узнать, какое значение несет в себе вытянутая карта в контексте финансов.

Логотип 2
Логотип 1
Логотип 1

Судьба

На странице Судьба пользователь может узнать предсказание судьбы на основе даты рождения через нейросеть Gemini. Также есть возможность сохранить результат предсказания в виде отчетного документа в формате PDF.

Логотип 2
Логотип 1
Логотип 1
Логотип 1
Логотип 2
Логотип 1
Логотип 1

Настройки

На странице Настройки пользователь может изменить цветовую тему приложения.

Логотип 2
Логотип 1

Адаптивный дизайн

Когда приложение находится в горизонтальной ориентации, то список карт Таро преобразуется в сетку по две/три колонки. (в случае ширины экрана больше, чем 600 пикселей)

Логотип 1
Логотип 2
Логотип 2

About

Tarot App with Gemini API

Topics

Resources

Stars

Watchers

Forks

Contributors