Skip to content

DiametrFQ/Telegram-Planner-Party

Repository files navigation

🎉 Event Planner - Telegram Mini App

Plan meetings with friends easily! Vote for locations on a map and find the best time through visual scheduling.

По-русски 👇

Vue 3 Vite Supabase Tailwind CSS License: MIT

✨ Features

  • 🗺️ Location Voting - Add location suggestions on Yandex Maps and vote for your favorites
  • 📅 Time Scheduling - Visual timeline to find the best meeting time for everyone
  • 🔗 Smart Link Parsing - Paste Yandex Maps links to add locations instantly
  • 🚀 Real-time Updates - See votes and changes in real-time using Supabase subscriptions
  • 📱 Native Telegram Experience - Built specifically for Telegram Mini Apps with haptic feedback

🚀 Quick Start

Prerequisites

Installation

  1. Clone the repository

    git clone https://github.com/YOUR_USERNAME/event-tma.git
    cd event-tma
  2. Install dependencies

    npm install
  3. Set up environment variables

    Copy the example file and fill in your credentials:

    cp .env.example .env

    Edit .env with your API keys:

    VITE_SUPABASE_URL=your_supabase_url
    VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
    VITE_YANDEX_API_KEY=your_yandex_maps_api_key
  4. Set up the database

    Run the SQL schema from docs/SETUP.md in your Supabase project.

  5. Run the development server

    npm run dev
  6. Configure your Telegram Bot

    Set the Mini App URL in BotFather to your development or production URL.

For detailed setup instructions, see docs/SETUP.md.

🏗️ Tech Stack

  • Frontend: Vue 3 (Composition API), Vite
  • Styling: Tailwind CSS with Telegram theme variables
  • Maps: Vue Yandex Maps, Yandex Geocoder API
  • Backend: Supabase (PostgreSQL, Real-time subscriptions)
  • Telegram: @twa-dev/sdk

📂 Project Structure

event-tma/
├── src/
│   ├── components/         # Vue components
│   ├── composables/        # Reusable composition functions
│   ├── utils/              # Helper functions
│   ├── config/             # Configuration and constants
│   ├── main.js             # App entry point
│   ├── router.js           # Vue Router configuration
│   └── supabase.js         # Supabase client
├── public/                 # Static assets
├── docs/                   # Documentation
└── package.json

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments


Русская версия

🎉 Event Planner - Telegram Mini App

Планируйте встречи с друзьями легко! Голосуйте за места на карте и выбирайте лучшее время через визуальный график.

✨ Возможности

  • 🗺️ Голосование за место - Добавляйте варианты мест на Яндекс.Картах и голосуйте за понравившиеся
  • 📅 Планирование времени - Визуальная временная шкала для поиска удобного времени для всех
  • 🔗 Умная вставка ссылок - Вставляйте ссылки из Яндекс.Карт для быстрого добавления мест
  • 🚀 Обновления в реальном времени - Видите голоса и изменения моментально благодаря Supabase
  • 📱 Нативный Telegram опыт - Создано специально для Telegram Mini Apps с тактильной обратной связью

🚀 Быстрый старт

Требования

Установка

  1. Склонируйте репозиторий

    git clone https://github.com/YOUR_USERNAME/event-tma.git
    cd event-tma
  2. Установите зависимости

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

    Скопируйте пример и заполните данные:

    cp .env.example .env

    Отредактируйте .env своими API ключами:

    VITE_SUPABASE_URL=ваш_supabase_url
    VITE_SUPABASE_ANON_KEY=ваш_supabase_anon_key
    VITE_YANDEX_API_KEY=ваш_yandex_maps_api_key
  4. Настройте базу данных

    Выполните SQL схему из docs/SETUP.md в вашем Supabase проекте.

  5. Запустите dev сервер

    npm run dev
  6. Настройте Telegram бота

    Установите URL Mini App в BotFather на ваш dev или production URL.

Подробные инструкции по настройке см. в docs/SETUP.md.

🏗️ Технологический стек

  • Frontend: Vue 3 (Composition API), Vite
  • Стилизация: Tailwind CSS с темными переменными Telegram
  • Карты: Vue Yandex Maps, Yandex Geocoder API
  • Backend: Supabase (PostgreSQL, Real-time подписки)
  • Telegram: @twa-dev/sdk

📝 Лицензия

Проект распространяется под лицензией MIT - подробности в файле LICENSE.

About

A Telegram bot for planning party times and locations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors