Skip to content

Repository files navigation

ToolHub — MVP сервисов

Сайт-хаб с инструментами: обработка изображений, конвертеры, финансовый трекер и простой CMS.

Стек

  • Frontend: React 19, Vite, TypeScript, Tailwind CSS, Shadcn UI (Base UI + CVA), Aceternity UI (Aurora Background, Card Hover Effect, Sparkles)
  • Backend: Express.js, SQLite (better-sqlite3)
  • API: REST для финансов и CMS

Опционально: веб-аналитика GA4 — переменная VITE_GA_MEASUREMENT_ID в .env (см. .env.example и docs/practical-web-analytics.md).

Запуск

Только фронтенд (изображения и конвертеры работают без сервера)

npm install
npm run dev

Откройте http://localhost:5173

Фронтенд + API (финансы и CMS)

В одном терминале:

npm run dev:api

В другом:

npm run dev

Или одной командой:

npm run dev:all

Тогда запросы к /api проксируются на http://localhost:3003.

Страницы

Путь Описание
/ Главная — карточки сервисов
/images Обработка изображений: изменение размера, конвертация PNG/JPEG/WebP, сжатие (в браузере)
/converters Конвертеры: длина (м, км, мили, футы…), вес (кг, г, фунты, унции)
/apis Справка по API
/forum Список тем форума
/forum/t/:id Тема и ответы
/u/:id Публичный профиль пользователя
/finance Финансовый трекер (нужен вход)
/cms CMS: ключ–значение (нужен вход)
/settings/profile Настройки профиля (нужен вход)
/admin Админка: пользователи, их финансы/CMS/форум (роль admin)
/auth/login, /auth/register, /auth/forgot Авторизация

После входа с защищённой страницы выполняется возврат на неё (например /cms → логин → снова /cms).

API

  • GET /api/entries — список записей финансов
  • POST /api/entries — добавить запись (type, amount, category, note?, date?)
  • DELETE /api/entries/:id — удалить запись
  • GET /api/cms — все ключи CMS
  • GET /api/cms/:key — значение по ключу
  • PUT /api/cms/:key — сохранить значение (body: { "value": "..." })

База SQLite создаётся автоматически в server/data.db при первом запуске API.

Сборка

npm run build

Статика в dist/. API разворачивается отдельно.

Production (api.ne-nas.ru)

  • Frontend (tools.ne-nas.ru): Vercel или любой хостинг статики
  • API (api.ne-nas.ru): папка backendApi/ — деплой на Railway, Render, VPS

В Vercel добавь переменную окружения:

  • VITE_API_URL = https://api.ne-nas.ru

Для cookies между tools и api: COOKIE_DOMAIN=.ne-nas.ru в backendApi.

Деплой на Vercel

  1. Импортируй репозиторий в Vercel.
  2. Root Directory: app (обязательно — не корень монорепо).
  3. Framework Preset: Vite (или оставь автоопределение).
  4. Build: npm run build, Output: dist (уже задано в vercel.json).
  5. Environment Variables: VITE_API_URL = URL твоего API (без завершающего /). Опционально: VITE_GA_MEASUREMENT_ID для GA4.

Файлы из dist отдаются как статика; rewrites в vercel.json отправляют несуществующие пути на index.html, чтобы работал React Router (/forum/t/..., /u/... и т.д.).

About

ToolHub

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages