Учебный веб-сервис: вставьте сложный текст — получите объяснение простым языком (как для ребёнка или неспециалиста).
- Frontend: React, TypeScript, Vite, CSS Modules
- Backend: Node.js, Express, TypeScript
- Структура: две папки
clientиserver, запуск одной командой из корня
Из корня проекта:
npm run install:allИли по отдельности:
cd server && npm install
cd ../client && npm installВ проекте используется модель GigaChat от Сбера. Учётные данные берутся из личного кабинета GigaChat API.
-
Скопируйте пример конфигурации в папке
server:cd server && copy .env.example .env
(В Linux/macOS:
cp .env.example .env) -
Откройте
server/.envи укажите:- GIGACHAT_CLIENT_ID — Client ID из личного кабинета GigaChat API.
- GIGACHAT_CLIENT_SECRET — Client Secret (секретный ключ).
Опционально: GIGACHAT_MODEL (по умолчанию
GigaChat), GIGACHAT_SCOPE (GIGACHAT_API_PERSдля физлиц,GIGACHAT_API_CORPдля юрлиц).
-
Сертификат Минцифры (при ошибке SSL): для доступа к GigaChat с Windows/Node нужен корневой сертификат. Скачайте russian_trusted_root_ca_pem.crt, сохраните на диск и в
server/.envдобавьте:GIGACHAT_CA_FILE=C:\путь\к\russian_trusted_root_ca_pem.crt
Из корня проекта:
npm run devБудут запущены:
- Backend: http://localhost:3002
- Frontend (Vite): http://localhost:5173
Откройте в браузере http://localhost:5173.
Либо запускайте по отдельности в двух терминалах:
npm run dev:server # только backend
npm run dev:client # только frontendexplain-like-five/
├── client/ # React + Vite
│ └── src/
│ ├── components/
│ ├── api/
│ └── types/
├── server/ # Express + TypeScript
│ └── src/
│ ├── routes/
│ ├── services/
│ └── types/
├── .env.example
├── package.json
└── README.md
- GigaChat (Client ID и Client Secret): в
server/.env(см.server/.env.example). - Порт backend: по умолчанию
3002; при необходимости измените вserver/src/index.tsили через переменнуюPORTвserver/.env. - Прокси к API: в
client/vite.config.tsнастроен proxy с/apiнаhttp://localhost:3002, чтобы фронт ходил на тот же origin.
Это учебный проект; ключи и секреты храните только в .env, не в коде.