Skip to content

GitHub0k/OtusTaskQuestionnaire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Мини-анкета

Простое веб-приложение для проведения опросов с сохранением ответов.

Стек технологий

  • 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

Запуск

1. Backend

cd backend
pip install -r requirements.txt
uvicorn main:app --reload --port 8000

API будет доступен на http://localhost:8000

2. Frontend

cd frontend
python -m http.server 3000

Откройте в браузере.

API Endpoints

Метод URL Описание
GET /questions Получить список вопросов
POST /answers Сохранить ответы (возвращает UUID)
GET /answers/{uuid} Получить ответы по UUID

Пример POST /answers

{
  "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 — радиокнопки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors