174 lines
9.2 KiB
Plaintext
174 lines
9.2 KiB
Plaintext
|
|
╔═══════════════════════════════════════════════════════════════════════╗
|
|||
|
|
║ NakamaSpace v1.0.0 ║
|
|||
|
|
║ Telegram Mini App Social Network ║
|
|||
|
|
╚═══════════════════════════════════════════════════════════════════════╝
|
|||
|
|
|
|||
|
|
📋 ОПИСАНИЕ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Полноценная мини-социальная сеть внутри Telegram с 4 вкладками:
|
|||
|
|
🏠 Лента - создание постов, лайки, комментарии, репосты
|
|||
|
|
🔍 Поиск - интеграция e621 и gelbooru API
|
|||
|
|
🔔 Уведомления - Telegram-стиль баблов
|
|||
|
|
👤 Профиль - настройки, статистика, донаты
|
|||
|
|
|
|||
|
|
🎨 ДИЗАЙН
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
• Стиль: iOS минимализм 2025
|
|||
|
|
• Цвета: Нейтральная серая палитра
|
|||
|
|
• Теги: Furry (оранжевый), Anime (синий), Other (серый)
|
|||
|
|
• Шрифт: SF Pro Display / Roboto
|
|||
|
|
• Радиус: 16px карточки, 12px кнопки
|
|||
|
|
• Анимации: 0.2-0.3s плавные
|
|||
|
|
|
|||
|
|
🔧 ТЕХНОЛОГИИ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Frontend:
|
|||
|
|
• React 18 + Vite
|
|||
|
|
• React Router
|
|||
|
|
• Telegram Mini App SDK
|
|||
|
|
• Axios
|
|||
|
|
• Lucide React (иконки)
|
|||
|
|
|
|||
|
|
Backend:
|
|||
|
|
• Node.js + Express
|
|||
|
|
• MongoDB + Mongoose
|
|||
|
|
• Multer (загрузка файлов)
|
|||
|
|
• Crypto (Telegram Init Data)
|
|||
|
|
|
|||
|
|
Интеграции:
|
|||
|
|
• Telegram Bot API
|
|||
|
|
• e621 API
|
|||
|
|
• gelbooru API
|
|||
|
|
|
|||
|
|
📂 СТРУКТУРА
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
nakama/
|
|||
|
|
├── backend/ Backend сервер
|
|||
|
|
│ ├── models/ MongoDB схемы
|
|||
|
|
│ ├── routes/ API endpoints
|
|||
|
|
│ ├── middleware/ Auth middleware
|
|||
|
|
│ └── server.js Точка входа
|
|||
|
|
├── frontend/ Frontend приложение
|
|||
|
|
│ └── src/
|
|||
|
|
│ ├── components/ React компоненты
|
|||
|
|
│ ├── pages/ Страницы-вкладки
|
|||
|
|
│ ├── utils/ API + Telegram SDK
|
|||
|
|
│ └── styles/ CSS стили
|
|||
|
|
├── README.md Основная документация
|
|||
|
|
├── SETUP.md Инструкция по установке
|
|||
|
|
├── QUICKSTART.md Быстрый старт
|
|||
|
|
├── PROJECT_STRUCTURE.md Детальная карта
|
|||
|
|
├── CONTRIBUTING.md Гайд для разработчиков
|
|||
|
|
└── start.sh Скрипт запуска
|
|||
|
|
|
|||
|
|
⚙️ ВОЗМОЖНОСТИ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
✅ Создание постов с изображениями (до 10MB)
|
|||
|
|
✅ Обязательные теги (Furry, Anime, Other)
|
|||
|
|
✅ Лайки, комментарии, репосты
|
|||
|
|
✅ Упоминания пользователей (@username)
|
|||
|
|
✅ NSFW маркировка
|
|||
|
|
✅ Фильтрация по тегам
|
|||
|
|
✅ Поиск в e621 и gelbooru с автокомплитом
|
|||
|
|
✅ Просмотрщик изображений с swipe
|
|||
|
|
✅ Система уведомлений
|
|||
|
|
✅ Профили и подписки
|
|||
|
|
✅ Модерация и жалобы
|
|||
|
|
✅ Настройки фильтров контента
|
|||
|
|
✅ Роли (User, Moderator, Admin)
|
|||
|
|
|
|||
|
|
🚀 ЗАПУСК
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Быстрый запуск (5 минут):
|
|||
|
|
./start.sh
|
|||
|
|
|
|||
|
|
Ручная установка:
|
|||
|
|
1. npm install
|
|||
|
|
2. cd frontend && npm install
|
|||
|
|
3. Настроить .env файлы
|
|||
|
|
4. Запустить MongoDB
|
|||
|
|
5. npm run dev
|
|||
|
|
|
|||
|
|
Скрипты:
|
|||
|
|
npm run dev - Запуск dev режима (backend + frontend)
|
|||
|
|
npm run server - Только backend
|
|||
|
|
npm run client - Только frontend
|
|||
|
|
npm run build - Сборка для production
|
|||
|
|
npm start - Production запуск
|
|||
|
|
|
|||
|
|
🔐 БЕЗОПАСНОСТЬ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
✅ Telegram Init Data валидация (HMAC-SHA256)
|
|||
|
|
✅ Безопасная загрузка файлов
|
|||
|
|
✅ Система ролей и прав
|
|||
|
|
✅ XSS защита через React
|
|||
|
|
✅ CORS настройки
|
|||
|
|
✅ HTTPS only для production
|
|||
|
|
|
|||
|
|
🌐 ДЕПЛОЙ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Рекомендуемые платформы:
|
|||
|
|
• Backend: Railway, Render, Heroku
|
|||
|
|
• Frontend: Vercel, Netlify
|
|||
|
|
• MongoDB: MongoDB Atlas (бесплатный tier)
|
|||
|
|
|
|||
|
|
🛣️ ROADMAP
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Реализовано:
|
|||
|
|
☑ Backend API
|
|||
|
|
☑ Frontend приложение
|
|||
|
|
☑ Telegram авторизация
|
|||
|
|
☑ Система постов
|
|||
|
|
☑ Поиск (e621 + gelbooru)
|
|||
|
|
☑ Уведомления
|
|||
|
|
☑ Профили и подписки
|
|||
|
|
☑ Модерация
|
|||
|
|
☑ iOS-стиль дизайн
|
|||
|
|
|
|||
|
|
В планах:
|
|||
|
|
☐ Тесты (Unit, E2E)
|
|||
|
|
☐ Rate limiting
|
|||
|
|
☐ WebSocket уведомления
|
|||
|
|
☐ Telegram Stars (донаты)
|
|||
|
|
☐ Поиск по постам
|
|||
|
|
☐ Хэштеги
|
|||
|
|
☐ Приватные сообщения
|
|||
|
|
☐ Группы/сообщества
|
|||
|
|
☐ Рекомендации
|
|||
|
|
☐ Dark mode
|
|||
|
|
☐ Мультиязычность
|
|||
|
|
|
|||
|
|
📚 ДОКУМЕНТАЦИЯ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
README.md Основная документация
|
|||
|
|
QUICKSTART.md Быстрый старт за 5 минут
|
|||
|
|
SETUP.md Подробная установка и деплой
|
|||
|
|
PROJECT_STRUCTURE.md Детальная структура проекта
|
|||
|
|
CONTRIBUTING.md Гайд для разработчиков
|
|||
|
|
|
|||
|
|
📄 ЛИЦЕНЗИЯ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
MIT License
|
|||
|
|
|
|||
|
|
👥 АВТОРЫ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Создано с ❤️ для сообщества
|
|||
|
|
|
|||
|
|
📞 ПОДДЕРЖКА
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
Issues: GitHub Issues
|
|||
|
|
Документация: SETUP.md
|
|||
|
|
Troubleshooting: SETUP.md#troubleshooting
|
|||
|
|
|
|||
|
|
🌟 БЛАГОДАРНОСТИ
|
|||
|
|
───────────────────────────────────────────────────────────────────────
|
|||
|
|
• Telegram за платформу Mini Apps
|
|||
|
|
• e621 за API
|
|||
|
|
• gelbooru за API
|
|||
|
|
• Сообществу за поддержку
|
|||
|
|
|
|||
|
|
╔═══════════════════════════════════════════════════════════════════════╗
|
|||
|
|
║ Сделано с 🦊 и 🎌 ║
|
|||
|
|
╚═══════════════════════════════════════════════════════════════════════╝
|
|||
|
|
|