Платформа для читання ранобе та новел.
- Framework: Next.js 14+ (App Router, TypeScript)
- Auth: NextAuth.js v5 з Google провайдером
- Database: PostgreSQL через Prisma ORM
- Styling: Tailwind CSS + next-themes
- UI: Shadcn UI + lucide-react
- Markdown: react-markdown + remark-gfm
npm installcp .env.example .envЗаповніть .env:
DATABASE_URL— рядок підключення до PostgreSQL:postgresql://user:password@localhost:5432/honniAUTH_GOOGLE_ID— Google OAuth Client IDAUTH_GOOGLE_SECRET— Google OAuth Client SecretAUTH_SECRET— секрет для NextAuth (можна згенерувати:openssl rand -base64 32)
# Генерація Prisma клієнта
npm run db:generate
# Застосування міграцій
npm run db:pushnpm run devВідкрийте http://localhost:3000
/app
/api
/auth/[...nextauth] — NextAuth API роути
/chapters — API для глав
/novels — API для новел
/moderation — API для модерації
/admin — Адмін панель
/catalog — Каталог з фільтрами
/contact — Сторінка контактів
/novel/[slug] — Сторінка новелли
/read/[slug]/[chapter] — Читалка
/team/[id] — Сторінка команди
layout.tsx — Корневий layout
page.tsx — Головна сторінка
/components
/ui — Shadcn UI компоненти
/admin — Admin компоненти
novel-card.tsx — Карточка новелли
reader-client.tsx — Клієнтська частина читалки
reader-settings.tsx — Налаштування читалки
navbar.tsx — Навігація
catalog-filters.tsx — Фільтри каталогу
theme-provider.tsx — Провайдер теми
/lib
auth.ts — NextAuth конфігурація
prisma.ts — Prisma клієнт
novels.ts — Утіліти для роботи з новеллами
/prisma
schema.prisma — Схема бази даних
- Головна сторінка з новими тайтлами
- Каталог з фільтрами (жанри, теги, автори, тип, статус, рік)
- Сторінка новелли зі списком глав
- Читалка з підтримкою Markdown
- Налаштування читалки: розмір шрифта, теми (світла/темна/сепія)
- Навігація між главами
- Підтримка команд перекладачів
- Система модерації (OWNER, ADMIN, MODERATOR, USER)
- Адаптивна верстка (mobile-first)
- Авторизація через Google
- Закладки
- Рейтинги
- Форум