Go to file
glpshchn fc7c4c6561 Update files 2025-11-11 01:48:18 +03:00
backend Update files 2025-11-11 01:48:18 +03:00
frontend Update files 2025-11-11 01:48:18 +03:00
moderation/frontend Update files 2025-11-11 01:48:18 +03:00
.gitignore Initial commit 2025-11-03 23:35:01 +03:00
AUTH_FIX.md Initial commit3 2025-11-04 00:29:00 +03:00
BOT_SETUP.md Update files 2025-11-04 01:17:25 +03:00
CHANGELOG_v2.1.1.md Initial commit2 2025-11-04 00:08:11 +03:00
CONTRIBUTING.md Initial commit 2025-11-03 23:35:01 +03:00
DARK_THEME_FIX.md Initial commit2 2025-11-04 00:08:11 +03:00
DEPLOYMENT.md Initial commit 2025-11-03 23:35:01 +03:00
DEPLOY_INSTRUCTIONS_SIMPLE.txt Initial commit2 2025-11-04 00:08:11 +03:00
FEATURES_COMPLETE.md Initial commit 2025-11-03 23:35:01 +03:00
FINAL_COMMENTS_FIX.md Initial commit2 2025-11-04 00:08:11 +03:00
FINAL_FIXES.md Update files 2025-11-03 23:54:59 +03:00
FIXES_APPLIED.md Initial commit 2025-11-03 23:35:01 +03:00
FIX_COMMENTS_JUMPING.md Initial commit3 2025-11-04 00:29:00 +03:00
LICENSE Initial commit 2025-11-03 23:35:01 +03:00
PROJECT_INFO.txt Initial commit 2025-11-03 23:35:01 +03:00
PROJECT_STRUCTURE.md Initial commit 2025-11-03 23:35:01 +03:00
QUICKSTART.md Initial commit 2025-11-03 23:35:01 +03:00
QUICK_FIX_v2.1.1.md Initial commit2 2025-11-04 00:08:11 +03:00
README.md Initial commit 2025-11-03 23:35:01 +03:00
README_DEPLOY.txt Initial commit2 2025-11-04 00:08:11 +03:00
READY_TO_DEPLOY.txt Update files 2025-11-03 23:54:59 +03:00
SETUP.md Initial commit 2025-11-03 23:35:01 +03:00
SETUP_TELEGRAM_BOT.md Update files 2025-11-05 00:51:05 +03:00
SIMPLE_FIX.txt Initial commit3 2025-11-04 00:29:00 +03:00
ULTIMATE_FIX.md Initial commit4 2025-11-04 00:43:00 +03:00
UPDATES_v2.1.md Update files 2025-11-03 23:54:59 +03:00
UPLOAD_TO_SERVER.md Update files 2025-11-03 23:54:59 +03:00
VERSION.md Update files 2025-11-03 23:54:59 +03:00
package.json Update files 2025-11-11 01:37:25 +03:00
start.sh Initial commit 2025-11-03 23:35:01 +03:00
update-server.sh Update files 2025-11-03 23:54:59 +03:00
✨_ВСЕ_ФУНКЦИИ_ГОТОВЫ.txt Update files 2025-11-04 01:17:25 +03:00
🎨_МНОЖЕСТВО_ФОТО_В_ПОСТЕ.txt Update files 2025-11-04 01:17:25 +03:00
🔒_БЕЗОПАСНОСТЬ.txt Update files 2025-11-05 00:51:05 +03:00
🔧_GELBOORU_API.txt Update files 2025-11-04 01:51:17 +03:00
🔧_SYNTAX_FIX.txt Update files 2025-11-04 01:19:27 +03:00
🔧_TELEGRAM_OAUTH.txt Update files 2025-11-05 00:51:05 +03:00
🔧_TG_BOT_TOKEN.txt Update files 2025-11-05 00:51:05 +03:00
🔧_TG_ОТПРАВКА_ИСПРАВЛЕНА.txt Update files 2025-11-04 01:55:21 +03:00
🔧_ИСПРАВЛЕНИЯ_ВСЕ.txt Update files 2025-11-04 01:41:34 +03:00
🔧_ИСПРАВЛЕНИЯ_СЕРВЕРА.txt Update files 2025-11-05 01:23:33 +03:00
🔧_ОБРАБОТКА_ОШИБОК.txt Update files 2025-11-05 00:51:05 +03:00
🔧_ПРОВЕРКА_ENV.txt Update files 2025-11-05 00:51:05 +03:00
🔧_СТОРОННИЕ_КЛИЕНТЫ.txt Update files 2025-11-05 00:51:05 +03:00
🔧_СТРАНИЦЫ_ВМЕСТО_МОДАЛОК.txt Update files 2025-11-04 01:51:17 +03:00

README.md

🌟 NakamaSpace - Telegram Mini App

Полноценная мини-социальная сеть внутри Telegram с 4 вкладками, системой постов, поиском, уведомлениями и модерацией.

License: MIT Node.js React MongoDB


Возможности

🏠 Лента постов

  • Создание постов с текстом и изображениями (до 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 минут)

# 1. Клонировать репозиторий
git clone <repository-url>
cd nakama

# 2. Запустить автоматический скрипт
./start.sh

Скрипт автоматически:

  • Проверит и запустит MongoDB
  • Установит все зависимости
  • Создаст .env файлы из примеров
  • Запустит приложение

Единственное что нужно - получить Telegram Bot Token у @BotFather и добавить в .env

📖 Подробная инструкция: QUICKSTART.md

Ручная установка

# 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


🎨 Дизайн-система

Минималистичный 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


🔐 Безопасность

  • Telegram Init Data валидация с HMAC-SHA256
  • Безопасная загрузка файлов с проверкой типов
  • Роли и права доступа (User, Moderator, Admin)
  • XSS защита через React
  • CORS настройки
  • HTTPS only для production

📚 Документация


🛠️ Разработка

Скрипты

# Запуск в 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:

# Установить ngrok
brew install ngrok  # macOS

# Запустить туннель
ngrok http 5173

# Скопируйте HTTPS URL и добавьте в BotFather

Назначение модераторов

// Подключиться к 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

npm i -g @railway/cli
railway login
railway init
railway up

📖 Подробнее: SETUP.md - Production деплой


🎯 Roadmap

Реализовано (v2.0)

  • Backend API (Express + MongoDB)
  • Frontend React приложение
  • Telegram авторизация
  • Система постов (CRUD, лайки, комментарии, репосты)
  • Теги (Furry, Anime, Other)
  • Поиск (e621 + gelbooru)
  • Уведомления
  • Профили и подписки
  • Модерация и жалобы
  • Настройки фильтров
  • iOS-стиль дизайн
  • Dark mode - переключатель тем
  • Rate limiting - защита от спама
  • Redis кэширование - ускорение API
  • Поиск по постам - полнотекстовый
  • Хэштеги - система #тегов
  • Статистика - просмотры, engagement
  • WebSocket - real-time уведомления
  • Telegram Stars - UI готов

🔜 В планах (v3.0)

  • Unit и E2E тесты
  • Приватные сообщения (чаты)
  • Группы/сообщества
  • Рекомендательный алгоритм (ML)
  • Мультиязычность (EN/RU/JP)
  • Telegram Mini App Ads
  • Stories функция
  • Voice messages
  • Live streaming

🤝 Вклад в проект

Мы рады любому вкладу! Смотрите CONTRIBUTING.md для деталей.

Как помочь

  1. 🐛 Сообщить о баге через Issues
  2. 💡 Предложить новую функцию
  3. 🔧 Исправить баг или добавить фичу
  4. 📖 Улучшить документацию
  5. Поставить звезду проекту!

📄 Лицензия

MIT License - см. LICENSE


👥 Авторы

Создано с ❤️ для сообщества


📞 Поддержка

  • 💬 Issues: Создайте Issue на GitHub
  • 📖 Документация: Смотрите SETUP.md
  • 🐛 Баги: Смотрите Troubleshooting

🌟 Благодарности

  • Telegram за отличную платформу Mini Apps
  • e621 за API
  • gelbooru за API
  • Сообществу за поддержку и идеи

⬆ Наверх

Сделано с 🦊 и 🎌