first commit
This commit is contained in:
152
README.md
Normal file
152
README.md
Normal file
@ -0,0 +1,152 @@
|
||||
# ProtekAuto CMS
|
||||
|
||||
Админ панель для управления контентом веб-приложения, построенная на Next.js, GraphQL и Prisma.
|
||||
|
||||
## Возможности
|
||||
|
||||
- ✅ Автоматическая инициализация системы
|
||||
- ✅ Создание первого администратора
|
||||
- ✅ GraphQL API
|
||||
- ✅ Современный UI с Shadcn/ui
|
||||
- ✅ Работа с базой данных через Prisma ORM
|
||||
- 🔄 Интеграция с S3 для файлов (в разработке)
|
||||
|
||||
## Технологии
|
||||
|
||||
- **Frontend**: Next.js 15, React 19, TypeScript
|
||||
- **UI**: Tailwind CSS, Shadcn/ui, Radix UI
|
||||
- **Backend**: GraphQL (Apollo Server)
|
||||
- **Database**: PostgreSQL + Prisma ORM
|
||||
- **Forms**: React Hook Form + Zod validation
|
||||
- **Storage**: AWS S3 (планируется)
|
||||
|
||||
## Установка и настройка
|
||||
|
||||
### 1. Клонирование и установка зависимостей
|
||||
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd protekauto-cms
|
||||
npm install
|
||||
```
|
||||
|
||||
### 2. Настройка базы данных
|
||||
|
||||
Обновите файл `.env` с данными вашей облачной базы данных:
|
||||
|
||||
```env
|
||||
# Database
|
||||
DATABASE_URL="postgresql://username:password@host:port/database?schema=public"
|
||||
|
||||
# AWS S3 (для будущего использования)
|
||||
AWS_ACCESS_KEY_ID=""
|
||||
AWS_SECRET_ACCESS_KEY=""
|
||||
AWS_REGION=""
|
||||
AWS_S3_BUCKET=""
|
||||
|
||||
# NextAuth (для будущего использования)
|
||||
NEXTAUTH_SECRET="your-secret-key-here"
|
||||
NEXTAUTH_URL="http://localhost:3000"
|
||||
```
|
||||
|
||||
### 3. Применение миграций базы данных
|
||||
|
||||
```bash
|
||||
# Создание и применение миграции
|
||||
npx prisma db push
|
||||
|
||||
# Генерация Prisma клиента
|
||||
npx prisma generate
|
||||
```
|
||||
|
||||
### 4. Запуск проекта
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Откройте [http://localhost:3000](http://localhost:3000) в браузере.
|
||||
|
||||
## Первый запуск
|
||||
|
||||
При первом запуске система автоматически:
|
||||
|
||||
1. Проверит наличие пользователей в базе данных
|
||||
2. Если пользователей нет, перенаправит на страницу `/setup`
|
||||
3. На странице настройки можно создать первого администратора
|
||||
4. После создания пользователя произойдет перенаправление на главную страницу
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
src/
|
||||
├── app/ # Next.js App Router
|
||||
│ ├── api/graphql/ # GraphQL API endpoint
|
||||
│ ├── setup/ # Страница инициализации
|
||||
│ └── layout.tsx # Главный layout
|
||||
├── components/
|
||||
│ ├── providers/ # React провайдеры
|
||||
│ ├── setup/ # Компоненты настройки
|
||||
│ └── ui/ # Shadcn UI компоненты
|
||||
├── lib/
|
||||
│ ├── graphql/ # GraphQL схемы и resolvers
|
||||
│ ├── apollo-client.ts # Apollo Client конфигурация
|
||||
│ ├── prisma.ts # Prisma клиент
|
||||
│ └── utils.ts # Утилиты
|
||||
└── generated/
|
||||
└── prisma/ # Сгенерированный Prisma клиент
|
||||
```
|
||||
|
||||
## GraphQL API
|
||||
|
||||
API доступно по адресу `/api/graphql` и поддерживает:
|
||||
|
||||
### Queries
|
||||
- `hasUsers` - проверка наличия пользователей
|
||||
- `users` - получение списка пользователей
|
||||
- `user(id)` - получение пользователя по ID
|
||||
|
||||
### Mutations
|
||||
- `createUser(input)` - создание нового пользователя
|
||||
|
||||
## Разработка
|
||||
|
||||
### Добавление новых UI компонентов
|
||||
|
||||
```bash
|
||||
npx shadcn@latest add [component-name]
|
||||
```
|
||||
|
||||
### Работа с базой данных
|
||||
|
||||
```bash
|
||||
# Просмотр данных в Prisma Studio
|
||||
npx prisma studio
|
||||
|
||||
# Сброс базы данных
|
||||
npx prisma db push --force-reset
|
||||
|
||||
# Создание миграции
|
||||
npx prisma migrate dev --name [migration-name]
|
||||
```
|
||||
|
||||
### GraphQL
|
||||
|
||||
Для тестирования GraphQL запросов откройте `/api/graphql` в браузере.
|
||||
|
||||
## Тестирование
|
||||
|
||||
### Тест S3 хранилища
|
||||
Откройте [http://localhost:3000/test-s3](http://localhost:3000/test-s3) для тестирования загрузки файлов в S3.
|
||||
|
||||
### Тест GraphQL API
|
||||
Откройте [http://localhost:3000/api/graphql](http://localhost:3000/api/graphql) для проверки GraphQL API.
|
||||
|
||||
## Следующие шаги
|
||||
|
||||
- [ ] Добавить аутентификацию и авторизацию
|
||||
- [x] Интегрировать S3 для загрузки файлов
|
||||
- [ ] Добавить управление контентом
|
||||
- [ ] Создать систему ролей и разрешений
|
||||
- [ ] Добавить логирование и мониторинг
|
||||
# protekauto-cms
|
Reference in New Issue
Block a user