Мобильное приложение для управления скидочными и дисконтными картами.
Flutter-клиент для self-hosted сервера StorCard.
- 📇 Хранение карт — название, описание, штрихкод, изображение.
- 📷 Сканирование штрихкодов и QR-кодов — добавление карты за пару секунд.
- 🔐 Авторизация — JWT-токен с автообновлением сессии.
- 👥 Шеринг карт — доступ по уровням
viewer/editor/owner. - 🎁 Передача владения картой другому пользователю.
- 🖼 Загрузка изображений карт с камеры или галереи.
- 📴 Offline-first — приложение работает без сервера, синхронизация при подключении.
- 🌗 Тёмная и светлая тема — Material 3.
- 🔎 Поиск по картам — по названию, штрихкоду или заметке.
| Компонент | Репозиторий | Описание |
|---|---|---|
| Сервер | FoXeR928/StorCard | FastAPI-бэкенд: API, JWT, БД, медиа |
| Клиент | FoXeR928/StorCard_client | Этот репозиторий — Flutter-приложение |
⚠️ Для полноценной работы приложения требуется запущенный сервер StorCard.
Инструкция по развёртыванию сервера — в его README.
- Flutter 3.x — кроссплатформенный UI-фреймворк.
- Dart 3.x — язык разработки.
- Provider — управление состоянием.
- Drift (SQLite) — локальная база данных на устройстве.
- Dio — HTTP-клиент с интерцепторами и автообновлением токена.
- mobile_scanner — сканирование штрихкодов.
- barcode_widget — отрисовка штрихкодов и QR.
- image_picker — выбор изображений из галереи/камеры.
Архитектура — MVVM: View (UI) → ViewModel (состояние) → Service (логика) → Repository (данные).