# 🌟 NakamaSpace - Telegram Mini App > Полноценная мини-социальная сеть внутри Telegram с 4 вкладками, системой постов, поиском, уведомлениями и модерацией. [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Node.js](https://img.shields.io/badge/Node.js-16+-green.svg)](https://nodejs.org/) [![React](https://img.shields.io/badge/React-18+-61DAFB.svg)](https://reactjs.org/) [![MongoDB](https://img.shields.io/badge/MongoDB-5+-47A248.svg)](https://www.mongodb.com/) --- ## ✨ Возможности ### 🏠 Лента постов - ✅ Создание постов с текстом и изображениями (до 10MB) - ✅ Обязательные теги: **Furry** 🦊, **Anime** 🎌, **Other** ⚪ - ✅ Лайки, комментарии, репосты - ✅ Упоминания пользователей (@username) - ✅ NSFW маркировка контента - ✅ Фильтрация по тегам - ✅ Бесконечная загрузка (пагинация) ### 🔍 Поиск - ✅ Интеграция с **e621 API** (Furry контент) - ✅ Интеграция с **gelbooru API** (Anime контент) - ✅ **Прокси изображений через сервер** (доступ из РФ) - ✅ Смешанный режим поиска (Mixed) - ✅ Автокомплит тегов с количеством результатов - ✅ Просмотрщик изображений с swipe навигацией - ✅ Скачивание изображений - ✅ Отображение рейтинга и тегов ### 🔔 Уведомления - ✅ Telegram-стиль баблов с цветовой кодировкой - ✅ Уведомления о подписках, лайках, комментариях, репостах - ✅ Упоминания в постах - ✅ Счётчик непрочитанных - ✅ Превью постов в уведомлениях - ✅ Переходы к постам и профилям ### 👤 Профиль - ✅ Аватар и данные из Telegram - ✅ Редактируемое био (до 300 символов) - ✅ Статистика: подписчики / подписки - ✅ Настройки фильтров контента: - Без Furry контента - Только Anime - Без NSFW - ✅ Настройки поиска (Furry / Anime / Mixed) - ✅ Донаты через Telegram Stars (UI готов) - ✅ Роли: User / Moderator / Admin ### 🛡️ Модерация - ✅ Система жалоб на посты - ✅ Панель модератора - ✅ Удаление постов - ✅ Блокировка пользователей (временная/постоянная) - ✅ Установка NSFW флага - ✅ Просмотр и обработка репортов --- ## 🚀 Быстрый старт ### Супер быстрый запуск (5 минут) ```bash # 1. Клонировать репозиторий git clone cd nakama # 2. Запустить автоматический скрипт ./start.sh ``` Скрипт автоматически: - ✅ Проверит и запустит MongoDB - ✅ Установит все зависимости - ✅ Создаст .env файлы из примеров - ✅ Запустит приложение **Единственное что нужно** - получить Telegram Bot Token у [@BotFather](https://t.me/BotFather) и добавить в `.env` 📖 Подробная инструкция: [QUICKSTART.md](QUICKSTART.md) ### Ручная установка ```bash # 1. Установить зависимости npm install cd frontend && npm install && cd .. # 2. Настроить .env файлы cp .env.example .env cp frontend/.env.example frontend/.env # Отредактируйте .env файлы # 3. Запустить MongoDB brew services start mongodb-community # macOS sudo systemctl start mongod # Linux # 4. Запустить приложение npm run dev ``` 📖 Полная инструкция: [SETUP.md](SETUP.md) --- ## 🎨 Дизайн-система ### Минималистичный iOS-стиль 2025 - **Философия**: Чистый, минималистичный интерфейс в стиле нового Telegram - **Типографика**: SF Pro Display (iOS) / Roboto (Android) - **Радиус**: 16px для карточек, 12px для кнопок - **Тени**: Мягкие, rgba(0,0,0,0.08) - **Анимации**: Плавные, 0.2-0.3s ease-out ### Цветовая палитра ``` 🎨 Основные цвета ├── Фон: #F2F3F5 ├── Карточки: #FFFFFF ├── Текст: #1C1C1E ├── Акцент: #007AFF (iOS синий) └── Границы: #C7C7CC 🏷️ Теги ├── Furry: #FF8A33 (оранжевый) ├── Anime: #4A90E2 (синий) └── Other: #A0A0A0 (серый) ⚠️ Дополнительные ├── NSFW: #FF3B30 (красный) ├── Успех: #34C759 (зелёный) └── Донаты: #FFD700 (золотой) ``` --- ## 📱 Технологии ### Frontend - **React 18** - UI библиотека - **Vite** - Быстрый сборщик - **React Router** - Маршрутизация - **Telegram Mini App SDK** - Интеграция с Telegram - **Axios** - HTTP клиент - **Lucide React** - Иконки ### Backend - **Node.js + Express** - API сервер - **MongoDB + Mongoose** - База данных - **Multer** - Загрузка файлов - **Crypto** - Telegram Init Data валидация ### Интеграции - **Telegram Bot API** - Авторизация через Init Data - **e621 API** - Поиск Furry контента - **gelbooru API** - Поиск Anime контента --- ## 📂 Структура проекта ``` nakama/ ├── 📁 backend/ Backend сервер (Node.js + Express) │ ├── 📁 models/ MongoDB схемы (User, Post, Notification, Report) │ ├── 📁 routes/ API endpoints (auth, posts, users, etc) │ ├── 📁 middleware/ Middleware функции (auth) │ └── 📄 server.js Точка входа сервера │ ├── 📁 frontend/ Frontend приложение (React + Vite) │ ├── 📁 src/ │ │ ├── 📁 components/ React компоненты (PostCard, Modals, etc) │ │ ├── 📁 pages/ Страницы-вкладки (Feed, Search, Notifications, Profile) │ │ ├── 📁 utils/ Утилиты (API клиент, Telegram SDK) │ │ └── 📁 styles/ CSS стили с переменными │ └── 📄 index.html │ ├── 📄 README.md Основная документация (этот файл) ├── 📄 SETUP.md Подробная инструкция по установке ├── 📄 QUICKSTART.md Быстрый старт за 5 минут ├── 📄 PROJECT_STRUCTURE.md Детальная карта проекта ├── 📄 CONTRIBUTING.md Гайд для разработчиков └── 📄 start.sh Скрипт быстрого запуска ``` 📖 Полная карта проекта: [PROJECT_STRUCTURE.md](PROJECT_STRUCTURE.md) --- ## 🔐 Безопасность - ✅ **Telegram Init Data** валидация с HMAC-SHA256 - ✅ **Безопасная загрузка** файлов с проверкой типов - ✅ **Роли и права** доступа (User, Moderator, Admin) - ✅ **XSS защита** через React - ✅ **CORS** настройки - ✅ **HTTPS only** для production --- ## 📚 Документация - [📖 README.md](README.md) - Основная документация (вы здесь) - [⚡ QUICKSTART.md](QUICKSTART.md) - Быстрый старт за 5 минут - [🔧 SETUP.md](SETUP.md) - Подробная инструкция по установке и деплою - [📂 PROJECT_STRUCTURE.md](PROJECT_STRUCTURE.md) - Детальная структура проекта - [🤝 CONTRIBUTING.md](CONTRIBUTING.md) - Гайд для разработчиков --- ## 🛠️ Разработка ### Скрипты ```bash # Запуск в dev режиме (backend + frontend) npm run dev # Только backend npm run server # Только frontend npm run client # Сборка для production npm run build # Production запуск npm start ``` ### Локальное тестирование в Telegram Telegram требует HTTPS для Mini Apps. Используйте ngrok: ```bash # Установить ngrok brew install ngrok # macOS # Запустить туннель ngrok http 5173 # Скопируйте HTTPS URL и добавьте в BotFather ``` ### Назначение модераторов ```javascript // Подключиться к MongoDB mongo nakama // Назначить роль db.users.updateOne( { telegramId: "YOUR_TELEGRAM_ID" }, { $set: { role: "moderator" } } // или "admin" ) ``` --- ## 🚢 Деплой ### Рекомендуемые платформы - **Backend**: Railway, Render, Heroku - **Frontend**: Vercel, Netlify - **MongoDB**: MongoDB Atlas (бесплатный tier) ### Быстрый деплой на Railway ```bash npm i -g @railway/cli railway login railway init railway up ``` 📖 Подробнее: [SETUP.md - Production деплой](SETUP.md#production-деплой) --- ## 🎯 Roadmap ### ✅ Реализовано (v2.0) - [x] Backend API (Express + MongoDB) - [x] Frontend React приложение - [x] Telegram авторизация - [x] Система постов (CRUD, лайки, комментарии, репосты) - [x] Теги (Furry, Anime, Other) - [x] Поиск (e621 + gelbooru) - [x] Уведомления - [x] Профили и подписки - [x] Модерация и жалобы - [x] Настройки фильтров - [x] iOS-стиль дизайн - [x] **Dark mode** - переключатель тем - [x] **Rate limiting** - защита от спама - [x] **Redis кэширование** - ускорение API - [x] **Поиск по постам** - полнотекстовый - [x] **Хэштеги** - система #тегов - [x] **Статистика** - просмотры, engagement - [x] **WebSocket** - real-time уведомления - [x] **Telegram Stars** - UI готов ### 🔜 В планах (v3.0) - [ ] Unit и E2E тесты - [ ] Приватные сообщения (чаты) - [ ] Группы/сообщества - [ ] Рекомендательный алгоритм (ML) - [ ] Мультиязычность (EN/RU/JP) - [ ] Telegram Mini App Ads - [ ] Stories функция - [ ] Voice messages - [ ] Live streaming --- ## 🤝 Вклад в проект Мы рады любому вкладу! Смотрите [CONTRIBUTING.md](CONTRIBUTING.md) для деталей. ### Как помочь 1. 🐛 Сообщить о баге через Issues 2. 💡 Предложить новую функцию 3. 🔧 Исправить баг или добавить фичу 4. 📖 Улучшить документацию 5. ⭐ Поставить звезду проекту! --- ## 📄 Лицензия MIT License - см. [LICENSE](LICENSE) --- ## 👥 Авторы Создано с ❤️ для сообщества --- ## 📞 Поддержка - 💬 **Issues**: Создайте Issue на GitHub - 📖 **Документация**: Смотрите [SETUP.md](SETUP.md) - 🐛 **Баги**: Смотрите [Troubleshooting](SETUP.md#troubleshooting) --- ## 🌟 Благодарности - [Telegram](https://telegram.org/) за отличную платформу Mini Apps - [e621](https://e621.net/) за API - [gelbooru](https://gelbooru.com/) за API - Сообществу за поддержку и идеи ---
**[⬆ Наверх](#-nakamaspace---telegram-mini-app)** Сделано с 🦊 и 🎌