1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yuzhanglong-EasyQuestionnaire-web

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Упрощённый опросник-веб

Обновление от 17 августа 2020 года

До сих пор не было возможности переработать этот проект (текущий вариант работает корректно, но уже появились идеи по его оптимизации), так что лучше немного подождать и заняться этим позднее. Я хотел бы описать одну из возможных схем оптимизации для вашего внимания:

Фронтенд:

  • На основе текущего состояния можно создать компонент редактор формы, установив определенную структуру данных. Этот редактор будет поддерживать не только анкеты, но также тесты, бизнес-формы и прочее.
  • Будет использоваться Vue 3 и TypeScript

Серверная часть:

  • Для серверной части все еще используется MongoDB как NoSQL база данных (хотя её иногда называют реляционной базой данных), хотя MySQL тоже является отличным выбором, каждый имеет свои преимущества.

  • Обработка процесса отправки анкет:

    1. Обработка данных: При использовании MongoDB (например, в данном проекте) вставка данных очень проста, однако если подходить более строго, следует учитывать проблему проверки формата данных. Если использовать MySQL, то работа с полями JSON не составит большого труда. 2. Статистика данных: В настоящее время проект использует прямое обращение к API для получения таблицы и последующего расчета статистики. Это приемлемо для небольших проектов, но при увеличении объема данных (например, большое количество вопросов в одной анкете) это может стать медленным процессом. Мы можем: - Использовать Redis для кэширования. После того как пользователь завершает заполнение формы и сервер возвращает ответ 200, он обновляет статистическую информацию формы и одновременно записывает её в Redis и БД. Таким образом, когда издатель анкеты обращается за данными анализа, ему достаточно получить данные из Redis, что значительно ускоряет процесс.

      • Кроме того, возможно ли использовать другую таблицу для статистической информации вместо Redis? Один из вариантов — обновлять информацию статистической таблицы после каждого завершённого действия пользователя. Это позволит избежать необходимости обращения к нескольким таблицам для вычислений, а просто получать данные из статистической таблицы. Однако это может быть не лучшим решением, поскольку требуется обеспечение одинакового состояния данных, например, при удалении или изменении вопроса или порядка ответов в анкете, статистическая таблица должна быть обновлена, что может вызвать проблемы.

Платформа для проведения опросов

Адрес проекта backend: https://github.com/yuzhanglong/EasyQuestionnaire-backend

Адрес проекта для мини-приложения: https://github.com/yuzhanglong/EasyQuestionnaire-MiniProgram

Документация API: https://www.showdoc.cc/EasyQuestionnaire## Структура проекта

├─ .gitignore
├─ README.md
├─ babel.config.js
├─ public
│  └─ index.html
├─ src
│  ├─ assets
│  ├─ components
│  │  ├─ bScroll
│  │  │  └─ bScroll.vue
│  │  ├─ dataCard
│  │  │  ├─ dataCard.vue
│  │  │  └─ pulseDataCard.vue
│  │  ├─ leftNavBar
│  │  │  └─ leftNavBar.vue
│  │  ├─ myCharts
│  │  │  ├─ chinaMap.vue
│  │  │  └─ pieChart.vue
│  │  ├─ navBar
│  │  │  └─ navBar.vue
│  │  ├─ scrollBar
│  │  │  └─ scrollBar.vue
│  │  └─ stepBar
│  │     └─ stepBar.vue
│  ├─ network
│  │  ├─ analysis.js
│  │  ├─ complete.js
│  │  ├─ questionnaire.js
│  │  ├─ questionnaireEdition.js
│  │  ├─ user.js
│  │  └─ request.js
│  ├─ router
│  │  └─ index.js
│  ├─ utils
│  │  ├─ loading.js
│  │  └─ messageBox.js
│  ├─ views
│  │  ├─ analysis
│  │  │  ├─ ChildComp
│  │  │  │  ├─ chartBackground.vue
│  │  │  │  └─ globalChartBackground.vue
│  │  │  └─ analysis.vue
│  │  ├─ complete
│  │  │  ├─ childComp
│  │  │  │  └─ secretInput.vue
│  │  │  └─ complete.vue
│  │  ├─ create
│  │  │  ├─ childComp
│  │  │  │  ├─ popOver.vue
│  │  │  │  ├─ problemTypeItem.vue
│  │  │  │  ├─ problemCard.vue
│  │  │  │  └─ basicInfo.vue
│  │  │  └─ questionnaire.vue
│  │  ├─ home
│  │  │  └─ home.vue
│  │  ├─ login
│  │  │  └─ login.vue
│  │  ├─ manage
│  │  │  ├─ childComp
│  │  │  │  └─ templateList.vue
│  │  │  └─ manage.vue
│  │  ├─ register
│  │  │  └─ register.vue
│  │  ├─ spread
│  │  │  ├─ childComp
│  │  │  │  ├─ npsSelector.vue
│  │  │  │  └─ projectShare.vue
│  │  │  └─ spread.vue
│  │  └─ success
│  │     └─ success.vue
│  ├─ main.js
│  ├─ App.vue
│  └─ models
│     ├─ response_model.js
│     ├─ questionnaire_model.js
│     └─ analysis_model.js
├─ vue.config.js
├─ node_modules
├─ questionnaire.conf
├─ package.json
└─ package-lock.json

Текущие функции```markdown

Текущие функции

1. Вход, регистрация, верификация электронной почты и другие базовые операции с пользователями
2. Создание анкет для заполнения (поддерживаемые типы вопросов: одиночный выбор, множественный выбор, ввод ответа, выпадающий список)
3. Управление вашими текущими анкетами (добавление, удаление, редактирование) с возможностью быстрого создания анкет по шаблону
4. Функция публикации анкет (основные функции публикации/отмены публикации, установка пароля для анкеты, ограничение повторного доступа с одного IP или устройства)
5. Анализ данных анкет (визуализация данных, собранных для конкретной анкеты)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/yuzhanglong-EasyQuestionnaire-web.git
git@api.gitlife.ru:oschina-mirror/yuzhanglong-EasyQuestionnaire-web.git
oschina-mirror
yuzhanglong-EasyQuestionnaire-web
yuzhanglong-EasyQuestionnaire-web
master