Skip to content

Trafforce/tracklytest4

Repository files navigation

Trackly - Telegram Mini App для трекинга привычек

Telegram Mini App для ежедневных отчетов и трекинга привычек с визуализацией в виде heatmap.

Функциональность

  • 📊 Heatmap визуализация активности (как на GitHub)
  • 📝 Ежедневные отчеты с оценкой импакта (1-5)
  • 🏷️ Привычки/теги для отчетов
  • 🔥 Отслеживание стриков
  • 👤 Профиль со статистикой

Технологии

  • Frontend: Next.js 14, TypeScript, Tailwind CSS
  • Backend: Supabase (PostgreSQL)
  • Telegram SDK: @telegram-apps/sdk-react
  • Хостинг: Vercel

Установка и настройка

1. Установка зависимостей

npm install

2. Настройка Supabase

  1. Создайте проект на supabase.com
  2. Перейдите в SQL Editor и выполните миграцию из файла supabase/migrations/001_initial_schema.sql
  3. Скопируйте URL и anon key из Project Settings > API

3. Настройка переменных окружения

Создайте файл .env.local:

NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
TELEGRAM_BOT_TOKEN=your-bot-token

4. Настройка Telegram бота

  1. Откройте @BotFather в Telegram
  2. Отправьте /mybots и выберите вашего бота
  3. Перейдите в Bot Settings > Menu Button (или Mini App)
  4. Установите URL вашего приложения (после деплоя на Vercel)

5. Запуск для разработки

npm run dev

Приложение будет доступно на http://localhost:3000

Деплой на Vercel

  1. Загрузите проект на GitHub
  2. Импортируйте репозиторий в Vercel
  3. Добавьте переменные окружения в настройках проекта
  4. Деплой произойдет автоматически

После деплоя обновите URL Mini App в BotFather.

Структура проекта

src/
├── app/
│   ├── layout.tsx          # Root layout с провайдерами
│   ├── page.tsx            # Главная страница
│   ├── profile/page.tsx    # Страница профиля
│   ├── report/[id]/page.tsx # Страница отчета
│   └── api/auth/route.ts   # API для авторизации
├── components/
│   ├── TelegramProvider.tsx # Интеграция с Telegram
│   ├── AppProvider.tsx     # Контекст приложения
│   ├── HeatmapGrid.tsx     # Сетка активности
│   ├── HabitTabs.tsx       # Табы привычек
│   ├── JournalList.tsx     # Список отчетов
│   ├── ReportModal.tsx     # Модалка отчета
│   └── ...
├── lib/
│   ├── supabase.ts         # Клиент Supabase
│   ├── telegram.ts         # Утилиты Telegram
│   └── utils.ts            # Вспомогательные функции
└── types/
    └── index.ts            # TypeScript типы

База данных

Таблицы

  • users - пользователи (telegram_id, username, first_name, avatar_url)
  • habits - привычки (name, order_index)
  • reports - отчеты (report_date, content, impact)
  • report_habits - связь отчетов и привычек

Лицензия

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors