Простое веб-приложение для проведения опросов с сохранением ответов.
- Backend: Python + FastAPI
- Frontend: Vue 3 (CDN, без npm)
- Хранение: Файловая система (txt/json)
├── backend/
│ ├── main.py # FastAPI приложение
│ └── requirements.txt # Зависимости Python
├── frontend/
│ └── index.html # Vue SPA
├── data/
│ ├── questions.txt # Вопросы анкеты
│ └── answers/ # Папка с ответами (JSON файлы)
├── prompts/
│ └── prompts.md # Промпты для создания проекта
└── README.md
cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000API будет доступен на http://localhost:8000
cd frontend
python -m http.server 3000Откройте в браузере.
| Метод | URL | Описание |
|---|---|---|
| GET | /questions | Получить список вопросов |
| POST | /answers | Сохранить ответы (возвращает UUID) |
| GET | /answers/{uuid} | Получить ответы по UUID |
{
"answers": [
{"question_id": 1, "answer": "Иван"},
{"question_id": 2, "answer": 25},
{"question_id": 3, "answer": "Python"},
{"question_id": 4, "answer": "5 лет опыта в разработке"},
{"question_id": 5, "answer": "Да"}
]
}Ответ:
{
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"message": "Ответы успешно сохранены"
}Отредактируйте файл data/questions.txt:
id|type|text|options
1|text|Ваш вопрос?|
2|select|Выберите вариант|Опция1,Опция2,Опция3
Типы вопросов:
text— текстовое полеnumber— числовое полеtextarea— многострочный текстselect— выпадающий списокradio— радиокнопки