САЙТ + ПРИЛОЖЕНИЕ

MSICS — дневник питания в вебе и на Android

Один продукт на двух интерфейсах: открытый каталог и веб-дневник на сайте, отдельное Android-приложение со сканером штрихкода и Health Connect — в RuStore.

Сайт
msics.ru
Приложение
Открыть в RuStore
Год
2026
Роль
Мой проект: продукт, интерфейсы, код, публикация и сопровождение — я

Задача

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

Продукт должен работать и как открытый сайт с каталогом калорийности, и как полноценное приложение на телефоне — с одним аккаунтом, общей серверной логикой и возможностями Android.

Что сделано

  • Веб-дневник и открытый каталог продуктов: поиск, страницы калорийности и калькулятор КБЖУ доступны на сайте.
  • Отдельное приложение на Expo и React Native: дневник, быстрый ввод, повтор записей, вода, вес, замеры и тренировки.
  • Поиск по собственному каталогу и Open Food Facts; сканер штрихкода использует камеру телефона.
  • Шаги синхронизируются через Health Connect после отдельного разрешения пользователя; тренировки можно вести вручную.
  • Общий NestJS API и PostgreSQL обслуживают веб и Android: аккаунт, дневник и расчёты не расходятся между платформами.
  • Сборка подписывается для магазина, версия и материалы RuStore хранятся рядом с кодом и проходят тот же релизный процесс.

Стек

  • Expo 55, React Native 0.83, TypeScript — Android-приложение
  • Next.js 15 — сайт, веб-дневник и каталог калорийности
  • NestJS 11 на Fastify + TypeORM — общий API
  • PostgreSQL 16 — аккаунты, дневник и данные продукта
  • Expo Camera, Secure Store, SQLite, Notifications и Health Connect
  • Docker Compose + nginx; сборки Android для RuStore

Что можно применить в вашем проекте

  • Сайт и приложение лучше проектировать как один продукт: общий API и аккаунт убирают двойную логику и расхождения в данных.
  • Телефон оправдан там, где нужны камера, уведомления, защищённое хранение и системные данные — для обычного просмотра страниц приложения не требуется.
  • Публикация в магазине — часть разработки: разрешения, подпись, карточка и проверяемая сборка планируются вместе с функциями.
Все работы