Валідація першого успіху ✅
Цей всебічний посібник валідації гарантує, що ваше встановлення платформи Ring працює правильно. Дотримуйтеся кожного кроку систематично, щоб перевірити всі основні функції, перш ніж переходити до кастомізації або розгортання.
10-15 хвилин для виконання всіх кроків валідації.
🎯 Попередня настройка валідації
Перед початком валідації переконайтеся:
- Платформа Ring запущена:
npm run devмає показати "Ready - started server on 0.0.0.0:3000" - База даних доступна: Встановлено з'єднання PostgreSQL або Firebase
- Змінні середовища встановлені:
.env.localмістить всі необхідні ключі - Кеш браузера очищений: Жорстке оновлення (Ctrl+F5) для уникнення кешованих проблем
🔍 Крок-за-кроком валідація
Фаза 1: Запуск додатку
Мета: Перевірити, що додаток запускається правильно та обслуговує домашню сторінку.
1.1 Перевірка логів додатку
У вашій директорії Ring Platform
npm run devОчікуваний вивід:
▲ Next.js 15.x.x
- Local: http://localhost:3000
- Environments: .env.local
- Ready - started server on 0.0.0.0:3000
❌ Поширені проблеми:
- "Port 3000 already in use" → Вбити інші процеси:
lsof -ti:3000 | xargs kill - "Module not found" → Запустити
npm installдля встановлення залежностей - "Database connection failed" → Перевірити облікові дані бази даних у
.env.local
1.2 Тестування доступу до домашньої сторінки
Тест HTTP-відповіді
curl -I http://localhost:3000Очікуваний: HTTP/1.1 200 OK
Тест вмісту сторінки
curl -s http://localhost:3000 | head -20Очікуваний: HTML-вміст із брендингом Ring Platform
1.3 Браузерна валідація
- Відкрити
http://localhost:3000у вашому браузері - Перевірити, що сторінка завантажується без помилок JavaScript
- Перевірити консоль браузера (F12) на наявність повідомлень про помилки
- Підтвердити появу логотипу Ring Platform та геройської секції
Фаза 2: Система аутентифікації
Мета: Перевірити налаштування Auth.js v5 та провайдерів OAuth.
2.1 Тестування сторінки аутентифікації
Відвідати http://localhost:3000/auth/signin
Очікуваний:
- Чистий логін-екран із кнопками провайдерів
- Без помилок JavaScript у консолі
- Адаптивний дизайн на мобільному/десктопі
2.2 Потік Google OAuth
- Натиснути "Sign in with Google"
- Завершити потік Google OAuth
- Перевірити перенаправлення на сторінку dashboard/profile
- Перевірити стійкість сесії (освіжити сторінку)
Команди валідації: Тест кінцевої точки зворотного виклику OAuth Очікуваний: HTTP/1.1 302 Found (перенаправлення)
curl -I "http://localhost:3000/api/auth/callback/google"2.3 Валідація сесії
API тест: Тест кінцевої точки сесії
curl -X GET "http://localhost:3000/api/auth/session" -H "Cookie: $(curl -c cookies.txt -b cookies.txt http://localhost:3000/api/auth/session | grep -o 'next-auth.session-token=[^;]*')"Очікувана відповідь:
"user": {
"id": "user-id",
"name": "User Name",
"email": "user@example.com",
"image": "https://...",
"role": "MEMBER"
},
"expires": "2025-..."
}2.4 Доступ до профілю
- Відвідати
/profileабо/[locale]/profile - Перевірити правильне відображення інформації користувача
- Перевірити завантаження фотографії профілю з Google
- Підтвердити функціонування виходу з системи
Фаза 3: Підключення до бази даних
Мета: Перевірити операції бази даних.
3.1 Перевірка здоров'я API
Тест кінцевої точки здоров'я
curl http://localhost:3000/api/healthОчікувана відповідь:
"status": "ok",
"timestamp": "2025-10-16T...",
"database": "connected",
"version": "0.9.18"
}3.2 Система сутностей
Створити тестову сутність:
- Відвідати
http://localhost:3000/entities - Натиснути "Create Entity" або "Add Entity"
- Заповнити форму: Ім'я, Тип, Опис
- Надіслати та перевірити появу сутності у списку
API валідація: Список сутностей Очікуваний: Масив сутностей або порожній масив
curl "http://localhost:3000/api/entities"3.3 Тест з'єднання з базою даних
Тест PostgreSQL: Прямий тест бази даних (якщо використовується локальний PostgreSQL) Очікуваний: Count >= 1 (ваш обліковий запис користувача)
psql -h localhost -U ring_user -d ring_platform -c "SELECT COUNT(*) FROM users;"Тест Firebase (якщо використовується Firebase): Тест з'єднання Firestore Очікуваний: Повідомлення про успіх
curl "http://localhost:3000/api/test-db"Фаза 4: Основні функції
Мета: Перевірити можливості, повідомлень та функцій реального часу.
4.1 Система можливостей
- Відвідати
http://localhost:3000/opportunities - Перевірити завантаження списку можливостей
- Створити тестову можливість
- Перевірити пошук та фільтрацію
API тест: Тест кінцевої точки можливостей
curl "http://localhost:3000/api/opportunities?limit=5"Очікуваний: Масив можливостей або порожній масив
4.2 Функції реального часу
Тест WebSocket: Тест кінцевої точки транспорту тунелю
curl -X POST "http://localhost:3000/api/tunnel/test" -H "Content-Type: application/json" -d '{"test": "connection"}'Тест повідомлень:
- Створити можливість (спрацьовує повідомлення)
- Перевірити появу повідомлення у режимі реального часу
- Перевірити лічильник повідомлень у UI
4.3 Система повідомлень (Необов'язково)
- Відвідати інтерфейс повідомлень
- Почати розмову
- Надіслати тестові повідомлення
- Перевірити доставку у режимі реального часу
Фаза 5: Функції Web3 та гаманця
Мета: Перевірити інтеграцію блокчейну та функціональність гаманця.
5.1 Створення гаманця
- Відвідати
/profileабо/wallet - Перевірити автостворення гаманця
- Перевірити відображення адреси гаманця
API тест: Тест кінцевої точки гаманця Очікуваний: Інформація про баланс гаманця
curl "http://localhost:3000/api/wallet/balance"5.2 Інтеграція MetaMask (Необов'язково)
- Встановити розширення MetaMask
- Підключити гаманець до Ring Platform
- Перевірити операції гаманця
- Перевірити підпис транзакцій
5.3 Функції токенів RING (Необов'язково)
- Перевірити відображення балансу токенів
- Перевірити функціональність переказу токенів
- Перевірити історію транзакцій
🧪 Розширені тести валідації
Тестування продуктивності
Тест часу відповіді
curl -w "@curl-format.txt" -o /dev/null -s "http://localhost:3000/api/health"Створити curl-format.txt:
time_namelookup: %{time_namelookup}\n
time_connect: %{time_connect}\n
time_appconnect: %{time_appconnect}\n
time_pretransfer: %{time_pretransfer}\n
time_redirect: %{time_redirect}\n
time_starttransfer: %{time_starttransfer}\n
----------\n
time_total: %{time_total}\n
Очікуваний: Загальний час < 2 секунд
Тестування навантаження
Простий тест навантаження
for i in {1..10}; do
curl -s "http://localhost:3000/api/health" &
done
waitОчікуваний: Усі запити повертають 200 OK
Тест обробки помилок
Тест обробки 404 Очікуваний: 404 Not Found Тест обробки помилок API Очікуваний: Правильна відповідь про помилку
curl -I "http://localhost:3000/nonexistent-page"
curl "http://localhost:3000/api/entities/invalid-id"🚨 Посібник усунення несправностей
Проблеми аутентифікації
"Sign in failed" або помилки OAuth:
- Перевірити конфігурацію Google Cloud Console OAuth
- Перевірити URI перенаправлення збігаються точно
- Переконатися, що Google+ API увімкнено
- Перевірити формат облікових даних у
.env.local
Сесія не зберігається:
- Перевірити встановлення
AUTH_SECRET(32+ символів) - Перевірити налаштування cookie у браузері
- Очистити кеш та cookie браузера
Проблеми з базою даних
"Database connection failed": PostgreSQL Тест з'єднання
sudo systemctl status postgresql # Linux
brew services list | grep postgresql # macOS
psql -h localhost -U ring_user -d ring_platformПроблеми з'єднання Firebase: Перевірка конфігурації Firebase
firebase projects:list
firebase use your-project-idПроблеми API
"API endpoint not found":
- Перевірити запуск сервера Next.js
- Перевірити існування файлу API маршруту
- Переглянути логи сервера на помилки
Помилки CORS:
- Перевірити
NEXTAUTH_URLзбігається з вашим доменом - Перевірити правильність заголовків CORS у API маршрутах
Проблеми реального часу
WebSocket не підключається:
- Перевірити вкладку мережі браузера на спроби з'єднання
- Перевірити конфігурацію транспорту тунелю
- Перевірити з іншими браузерами
Повідомлення не з'являються:
- Перевірити дозволи браузера на повідомлення
- Перевірити вхід користувача в систему
- Перевірити з іншими тригерними подіями
Проблеми продуктивності
Повільне завантаження сторінок: Перевірка розміру збірки Профілювання за допомогою інструментів розробки браузера Вкладка Network: Перевірити великі ресурси Вкладка Performance: Записати та проаналізувати
npm run build
ls -lh .next/static/chunks/Проблеми пам'яті: Моніторинг процесу Node.js Або використовувати PM2: pm2 monit
top -p $(pgrep -f "next-server")📊 Контрольний список валідації
| Компонент | Статус | Примітки |
|---|---|---|
| Запуск додатку | ☐ | Сервер запускається, домашня сторінка завантажується |
| Аутентифікація | ☐ | Google OAuth працює, сесії зберігаються |
| База даних | ☐ | З'єднання працюють, операції даних успішні |
| Сутності | ☐ | Операції CRUD функціонують правильно |
| Можливості | ☐ | Перегляд, створення, пошук працює |
| Реальний час | ☐ | З'єднання WebSocket, повідомлення |
| Гаманець | ☐ | Створення адреси, відображення балансу |
| Здоров'я API | ☐ | Усі кінцеві точки відповідають правильно |
| Продуктивність | ☐ | Час відповіді < 2с |
| Обробка помилок | ☐ | Правильні відповіді про помилки |
🎯 Критерії успіху
✅ ПОВНИЙ УСПІХ - Усі прапорці вище позначені
- Додаток працює без помилок
- Усі основні функції працюють end-to-end
- Продуктивність відповідає очікуванням
- Жодних критичних проблем не залишилося
⚠️ ЧАСТКОВИЙ УСПІХ - 70%+ функціональних
- Основна аутентифікація та база даних працюють
- Більшість функцій функціональні з незначними проблемами
- Можна перейти до розробки/кастомізації
❌ ПОТРІБНА УВАГА - < 70% функціональних
- Переглянути розділ усунення несправностей
- Перевірити налаштування передумов
- Повторити кроки встановлення
🚀 Наступні кроки після успіху
Вітаємо! Ваше встановлення платформи Ring повністю функціональне. Тепер ви готові до:
- Дослідження функцій - Відкрийте всі можливості платформи
- Кастомізація брендингу - Зробіть її своєю
- Додавання нових функцій - Розширте функціональність
- Розгортання у виробництво - Поділіться зі світом
- Приєднання до спільноти - Зв'яжіться з іншими розробниками
Потрібна допомога з кастомізацією? Перегляньте наш посібник white-label для розширених варіантів кастомізації.
Виникли проблеми? Перегляньте наш посібник усунення несправностей або приєднуйтеся до нашої Discord спільноти для підтримки.