В PASSNYC мы являемся волонтерами, предоставляющими свои специализированные навыки различным партнерам в образовательном пространстве Нью-Йорка. Один из наших партнеров, Let’s Talk Schools, обратился к нам с мечтой получить полное представление о каждом значимом образовательном мероприятии в Нью-Йорке. Вот краткий обзор того, как мы использовали Google Apps Script, чтобы воплотить эту мечту в реальность. У нас было 3 требования к идеальному календарю:

  1. Охватывает каждое публичное мероприятие Министерства образования в полезной, сортируемой и доступной для поиска форме.
  2. Позволяет легко загружать данные от клиентов и партнеров (и частных лиц)
  3. Как родитель, вы можете искать только те события, которые важны для ВАС.

Вот краткий обзор того, что мы сделали в образовательных целях:

Шаг 1. Соберите общедоступные данные с помощью календаря Google

Ура общедоступным данным и ура инструментам Google! Департамент образования Нью-Йорка размещает на своем веб-сайте несколько Google Cal со всеми публичными мероприятиями:

Этот веб-сайт полезен, но ограничен тем, что а) он разделен по типам школ и б) он переполнен. В Нью-Йорке тысячи школ, поэтому фильтр может иметь большое значение.

Начнем с создания службы, которая фиксирует все обновления для каждого календаря. А вот и скрипт приложений!

doeCalendars = {
  preschool:    ‘strongschools.nyc_s3s77q5jg2heve7baj2sihqks0@group.calendar.google.com’,elementary: '...’,middle:'...',...
}
function pullAll() {
  var keys = Object.keys(doeCalendars);
  for (Key in keys) {
    var type = keys[Key];
    var id = doeCalendars[type];
    var events = getEvents(id);
}
function getEvents(id) {
//pulls next 10 months of events from DOE
  id = id || doeCalendars[‘elementary’];
  var cal = CalendarApp.getCalendarById(id);
  var startTime = new Date(); var endTime = new Date();
  endTime = new Date(endTime.setMonth(endTime.getMonth() + 10));
  var events = cal.getEvents(startTime, endTime);
  return events;
}

Всего лишь одна часть головоломки, но она должна показать, как несколько волшебных слов могут получить все необходимые нам данные. Если вы хотите узнать больше о сценариях приложений, следите за моим блогом, а также ознакомьтесь с отличным учебником для начинающих от Бена Коллинза.

Шаг 2. Если вы не можете очистить данные, сделайте это

Мы создаем форму сбора (в Google Forms), чтобы партнеры могли вносить свой вклад в одну и ту же базу данных, а также присваиваем уникальный идентификатор для каждой школы. Сценарий пользовательских приложений используется во вторую очередь, чтобы убедиться, что формат соответствует формату DOE.

Шаг 3. Подайте рекламу

Последний шаг для сценария нашего приложения — «пометить» все данные осмысленными способами. Например, посмотрите это конкретное событие:

Эти теги содержат более подробную информацию, когда это применимо, например, стоимость, тип школы, возраст и пользовательские идентификаторы. Это позволяет нам фильтровать результаты, которые видит конечный пользователь (платные пользователи Let’s Talk Schools).

Есть ли ребенок, который ищет общественные средние школы рядом с 10128? Наш набор данных теперь поможет вам найти идеальные события для вас.

Вы можете узнать больше о нашей работе на passnyc.org, или о работе Let’s Talk Schools на https://www.lettalkschools.com/contact-us/.