https://github.com/algorithm-ssau/team-3-6302
https://github.com/algorithm-ssau/team-3-6302
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/algorithm-ssau/team-3-6302
- Owner: algorithm-ssau
- Created: 2025-04-29T19:50:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-10T23:09:34.000Z (8 months ago)
- Last Synced: 2025-11-10T23:26:19.998Z (8 months ago)
- Language: TypeScript
- Size: 101 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Команда 3
## Проект: сайт рецептов ##
### Разработчики:
| Имя | Роль в проекте |
|-----------------------|-----------------------|
| Кабаева Алёна | капитан команды |
| Хасанова Эльвира | разработчик |
| Линьков Андрей | разработчик |
| Маркелов Денис | разработчик |
| Гуторов Владислав | разработчик |
| Перепонов Леонид | разработчик |
## Инструкция по запуску проекта
### Требования
Перед началом работы убедитесь, что у вас установлены:
- **Node.js** (версия 18 или выше) - [скачать](https://nodejs.org/)
- **PostgreSQL** (версия 12 или выше) - [скачать](https://www.postgresql.org/download/)
- **npm** (обычно устанавливается вместе с Node.js)
- **Git** - [скачать](https://git-scm.com/)
### Вариант 1: Локальный запуск (для разработки)
#### Шаг 1: Клонирование репозитория
```bash
git clone https://github.com/algorithm-ssau/team-3.git
cd team-3
```
#### Шаг 2: Установка и настройка базы данных PostgreSQL
1. Установите PostgreSQL, если ещё не установлен
2. Создайте базу данных для проекта:
```bash
# Войдите в PostgreSQL (введите пароль суперпользователя)
psql -U postgres
# В консоли PostgreSQL выполните:
CREATE DATABASE recipes;
\q
```
Или используйте графический интерфейс (pgAdmin, DBeaver и т.д.) для создания базы данных с именем `recipes`.
#### Шаг 3: Настройка сервера
1. Перейдите в папку сервера:
```bash
cd server
```
2. Установите зависимости:
```bash
npm install
```
3. Создайте файл `.env` в папке `server/` со следующим содержимым:
```env
# URL подключения к базе данных PostgreSQL
# Формат: postgresql://пользователь:пароль@хост:порт/имя_базы?schema=public
DATABASE_URL="postgresql://postgres:ваш_пароль@localhost:5432/recipes?schema=public"
```
**Важно:**
- Замените `postgres` на ваше имя пользователя PostgreSQL
- Замените `ваш_пароль` на ваш пароль PostgreSQL
- Если PostgreSQL работает на другом порту, измените `5432`
- Если база данных имеет другое имя, измените `recipes`
4. Сгенерируйте Prisma Client:
```bash
npm run prisma:generate
```
5. Примените миграции базы данных:
```bash
npm run prisma:migrate
```
6. Заполните базу данных начальными данными (категории, рецепты, настроения):
```bash
npm run prisma:seed
```
#### Шаг 4: Настройка клиента
1. Откройте новый терминал и перейдите в папку клиента:
```bash
cd client
```
2. Установите зависимости:
```bash
npm install
```
3. (Опционально) Создайте файл `.env` в папке `client/` для настройки URL API:
```env
# URL сервера (опционально, по умолчанию http://localhost:4000)
VITE_API_URL=http://localhost:4000
```
#### Шаг 5: Запуск приложения
1. **Запустите сервер** (в терминале из папки `server/`):
```bash
npm run dev
```
Сервер должен запуститься на `http://localhost:4000`
2. **Запустите клиент** (в другом терминале из папки `client/`):
```bash
npm run dev
```
Клиент должен запуститься на `http://localhost:5173`
3. Откройте браузер и перейдите по адресу `http://localhost:5173`
### Вариант 2: Запуск через Docker Compose
Если у вас установлен Docker и Docker Compose, вы можете запустить весь проект одной командой:
1. Убедитесь, что в папке `server/` создан файл `.env` с правильными настройками (см. Шаг 3 выше)
2. Из корневой папки проекта выполните:
```bash
docker-compose up --build
```
Это запустит:
- MongoDB (порт 27017) - **Примечание:** в текущей версии проект использует PostgreSQL, а не MongoDB. Возможно, это устаревшая конфигурация.
- Сервер (порт 4000)
- Клиент (порт 3000)
**Важно:** При использовании Docker Compose убедитесь, что переменные окружения в `server/.env` указывают на правильный хост базы данных (например, `postgresql://postgres:password@mongo:27017/recipes` для MongoDB или на внешний PostgreSQL сервер).
### Полезные команды
#### Для сервера (в папке `server/`):
- `npm run dev` - Запуск сервера в режиме разработки
- `npm run build` - Сборка проекта
- `npm run start` - Запуск собранного проекта
- `npm run prisma:generate` - Генерация Prisma Client
- `npm run prisma:migrate` - Применение миграций
- `npm run prisma:push` - Синхронизация схемы с БД (без миграций)
- `npm run prisma:studio` - Открыть Prisma Studio (GUI для работы с БД)
- `npm run prisma:seed` - Заполнить БД начальными данными
#### Для клиента (в папке `client/`):
- `npm run dev` - Запуск в режиме разработки
- `npm run build` - Сборка проекта для продакшена
- `npm run preview` - Предпросмотр собранного проекта
- `npm run lint` - Проверка кода линтером
### Решение проблем
#### Ошибка подключения к базе данных
- Убедитесь, что PostgreSQL запущен
- Проверьте правильность данных в `DATABASE_URL` в файле `server/.env`
- Убедитесь, что база данных `recipes` создана
- Проверьте, что пользователь PostgreSQL имеет права на доступ к базе данных
#### Ошибка "Prisma Client не найден"
Выполните:
```bash
cd server
npm run prisma:generate
```
#### Ошибка "Миграции не применены"
Выполните:
```bash
cd server
npm run prisma:migrate
```
#### Порт уже занят
- Измените порт сервера в `server/.env` (переменная `PORT`)
- Или измените порт клиента в `client/vite.config.ts` (опция `server.port`)
#### Клиент не может подключиться к серверу
- Убедитесь, что сервер запущен
- Проверьте, что в `client/src/services/api.ts` указан правильный `API_BASE_URL`
- Или создайте файл `client/.env` с переменной `VITE_API_URL=http://localhost:4000`