Разработка простого чат‑приложения с фронтендом на React + TypeScript (Vite) и бэкендом на Python + FastAPI, с деплоем фронта на Vercel и бэка на Render.
- Создать репозиторий
telegram-chat-appна GitHub. - Добавить базовую структуру:
backend/для FastAPI‑приложения.frontend/для React/Vite‑приложения.PLAN.md,README.md,REVIEW.mdдля документации.
- Настроить
.gitignoreдля исключенияvenv,node_modules,.env*,__pycache__и т.п.
- Инициализировать FastAPI‑приложение в
backend/main.py. - Реализовать REST API:
GET /messages— вернуть список сообщений.POST /messages— добавить новое сообщение.
- Сделать простое хранилище сообщений в памяти (список в Python).
- Описать модель сообщения с помощью Pydantic.
- Добавить CORS‑настройки через
CORSMiddlewareс указанием домена фронтенда.
- Инициализировать проект Vite (шаблон React + TS) в папке
frontend/. - Создать основные компоненты:
MessageList— список сообщений.MessageItem— отдельное сообщение.MessageInput— форма отправки нового сообщения.
- Подключить API (через
fetchилиaxios):- При загрузке страницы получать сообщения с
GET /messages. - При отправке формы отправлять
POST /messagesи обновлять список.
- При загрузке страницы получать сообщения с
- Добавить базовую обработку состояний: загрузка, ошибка, отправка.
- Запустить FastAPI локально на
http://localhost:8000. - Настроить во фронтенде переменную окружения
VITE_API_URL:- Для локальной разработки:
http://localhost:8000.
- Для локальной разработки:
- Убедиться, что:
- сообщения загружаются из бэкенда;
- новые сообщения отправляются и отображаются после обновления.
- Создать Web Service на Render из папки
backend/репозитория. - Описать зависимости в
requirements.txt. - Настроить команду запуска
uvicorn main:app --host 0.0.0.0 --port <PORT>. - Проверить доступность эндпоинтов по публичному URL.
- Подключить репозиторий к Vercel.
- Указать:
- Build Command:
npm run build. - Output Directory:
dist.
- Build Command:
- Настроить переменную окружения:
VITE_API_URL= публичный URL бэкенда на Render.
- Убедиться, что прод‑фронтенд успешно обращается к прод‑бэкенду.
- Описать в
README.md:- краткое описание проекта;
- инструкции по локальному запуску;
- инструкции по деплою (Vercel + Render);
- структуру проекта.
- Заполнить
REVIEW.md:- что было сделано;
- с какими проблемами столкнулся (CORS, деплой, переменные окружения, git);
- что можно улучшить в будущем.
- Frontend: React 18, TypeScript, Vite.
- Backend: Python 3.12, FastAPI, Uvicorn.
- Хостинг: Vercel (frontend), Render (backend).
- Контроль версий: Git, GitHub.
- Чистая структура проекта: отдельные
frontend/иbackend/. - Явное использование переменных окружения (
VITE_API_URL) для API‑адреса. - Корректная CORS‑настройка для работы фронта и бэка на разных доменах.
- Рабочее демо на публичных URL (Vercel + Render).