backend/
├── main.py # FastAPI app
├── auth/google_auth.py # Google OAuth
├── files/upload.py # File upload
├── sheets/api.py # Google Sheets API
├── ai/chat.py # AI requests
└── requirements.txt
- main.py - создать FastAPI app
- google_auth.py - функция
get_google_token() - upload.py - функция
upload_file_to_drive() - api.py - функция
read_sheet_data() - chat.py - функция
ask_ai() - MySQL в Docker - контейнер с базой
frontend/
├── app/
│ ├── page.tsx # Главная страница
│ ├── auth/page.tsx # Авторизация
│ └── sheets/page.tsx # Работа с таблицами
├── components/
│ ├── FileUploader.tsx # Загрузка файлов
│ ├── SheetsViewer.tsx # Просмотр таблиц
│ └── AIChat.tsx # ИИ чат
└── lib/
└── api.ts # API клиент
- page.tsx - главная с кнопкой "Войти"
- FileUploader.tsx - drag&drop зона
- SheetsViewer.tsx - iframe Google Sheets
- AIChat.tsx - простой чат
- api.ts - функции запросов к backend
- shadcn/ui - установить компоненты
users: id, google_id, email
files: id, user_id, filename, google_drive_id
chats: id, user_id, message, response- docker-compose.yml - MySQL контейнер
- models.py - SQLAlchemy модели
- database.py - подключение к БД
- FastAPI setup
- Next.js setup
- MySQL Docker
- Google OAuth
- File upload
- Basic UI
- Google Sheets integration
- AI chat
- Testing
# Backend
cd backend
pip install fastapi uvicorn python-multipart google-api-python-client
uvicorn main:app --reload
# Frontend
cd frontend
npx create-next-app@latest . --typescript --tailwind --app
npx shadcn-ui@latest init
npm run dev
# Database
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 mysql:8.0Цель: 1 функция = 1 задача = максимум простоты ⚡