https://github.com/scorpi-on/student-karma-system
A system for recording students' karma for the Trade Union Committee of DonNTU, allowing students to share their achievements, and the committee employees to rate them and generate reports (Feb 2024, the 6th semester of the university).
https://github.com/scorpi-on/student-karma-system
form-automation google-forms google-script google-sheets university-project
Last synced: 8 months ago
JSON representation
A system for recording students' karma for the Trade Union Committee of DonNTU, allowing students to share their achievements, and the committee employees to rate them and generate reports (Feb 2024, the 6th semester of the university).
- Host: GitHub
- URL: https://github.com/scorpi-on/student-karma-system
- Owner: Scorpi-ON
- License: mit
- Archived: true
- Created: 2025-07-28T13:17:51.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-08-24T10:34:25.000Z (9 months ago)
- Last Synced: 2025-10-07T10:00:54.610Z (8 months ago)
- Topics: form-automation, google-forms, google-script, google-sheets, university-project
- Language: JavaScript
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Student-Karma-System
Система учёта достижений студентов для [Профкома обучающихся ДонНТУ](https://vk.com/profkomstud_donntu), которая позволяет студентам самостоятельно отправлять данные о своих достижениях, а работникам профкома — оценивать их в баллах и формировать отчётную документацию. Это нужно для поощрения активистов и возможного назначения повышенной государственной академической стипендии за особые достижения.
## Стек
- **Google Forms** — интерфейс сбора достижений со стороны студентов
- **Google Sheets** — работа с табличной отчётностью со стороны работников профкома
- **Google Apps Script** — валидация, обработка и расфасовка «сырых» данных в таблице
## Особенности реализации
- К Google форме для сохранения ответов привязана Google таблица, в которую, в свою очередь, интегрирован скрипт для их обработки.
- Форма сделана с уклоном на минимизацию ошибок пользовательского ввода (например, вместо ручного ввода группы предложен поэтапный выбор факультета, профиля, курса и т. д.).
- В таблице доступны пункты меню «Сгенерировать отчёт» и «Удалить все заявки».
- При добавлении новых достижений на лист с ответами поля ответа обрабатываются и в валидном виде добавляются на лист «Заявки» или «Просроченные заявки» в зависимости от даты достижения.
- Формат отвалидированной заявки: факультет, группа, ФИО студента, роль в мероприятии, название мероприятия, уровень мероприятия, даты начала и окончания мероприятия, оценка в баллах, подтверждающие файлы.
- На листах заявок и просроченных заявок можно указать необходимые баллы за достижения, подходящие по критериям, и исправить ошибки в них.
- В итоговый отчёт попадут только оценённые в баллах достижения.
- При редактировании ячейки или диапазона в таблице предыдущее значение сохраняется в примечание.
Скриншоты Google формы
Раздел активности:
Выбор уровней мероприятия:
Прочие поля раздела:
Раздел с личными данными:
Раздел выбора профиля обучения (зависит от выбранного ранее факультета):

Скриншоты таблицы

## Запуск
1. Создайте форму, аналогичную той, что представлена на скриншотах выше.
2. Откройте автоматически привязанную к ней таблицу для ответов.
3. В меню выберите пункт «Расширения», а в нём «Apps Script».
4. Вставьте в редактор содержимое скрипта; отредактируйте его при необходимости.
5. В разделе «Триггеры» добавьте триггер onAppend (источник мероприятия «Из таблицы», тип события «При отправке формы».
6. Если вы сделали всё правильно и выдали Apps Script необходимые разрешения, при следующем открытии таблицы в меню появится пункт «Запрограммированные действия» и автоматизация начнёт действовать.