Завдання

RYVIA 3D задумувався не як демонстраційна сторінка, а як робочий сервіс для замовлень 3D-друку. Користувач має зареєструватися, підтвердити email, завантажити фотографії та 3D-моделі, отримати розрахунок, спілкуватися з продавцем і стежити за статусом замовлення.

Архітектура

Проєкт отримав Node.js backend, PostgreSQL і приватне файлове сховище. Інтерфейс працює як єдиний застосунок з особистим кабінетом клієнта та адміністративною частиною.

  • Render — запуск backend;
  • Neon PostgreSQL — база даних;
  • Cloudflare R2 — приватні файли замовлень;
  • ClamAV — перевірка завантажуваних файлів;
  • Resend — листи підтвердження та відновлення доступу.

Безпека та файли

Файли замовлень не можна було просто покласти у публічну папку. Для них використовується приватне сховище, серверна перевірка типу файлу та антивірусне сканування. Для адміністративного доступу додано MFA.

Production-проєкт має коректно обробляти не лише «щасливий шлях», а й помилки: недоступне сховище, неправильний файл, не надісланий лист або незавершене завантаження.

Фінальний етап

Після функціональних тестів проєкт отримав адаптацію під телефони, домен з HTTPS, email-доставку та SEO-налаштування. Окремо протестовано реєстрацію, замовлення з файлами, кабінет та адміністративний сценарій.

Що показує цей кейс

RYVIA 3D став для KAMERTON прикладом проєкту, де frontend — лише частина роботи. Реальний веб-сервіс потребує бази даних, зберігання файлів, безпеки, інтеграцій, деплою та тестування.

Потрібен схожий веб-сервіс?

Обговоримо завдання, функціональність і підхід до реалізації.

Читати розбір проєкту →