Рубрики
Без рубрики

Как моя команда качала Анжехак Сиэтл Хакатон

Это был мой второй раз участвуя в хакатоне, и это был действительно обогащенный опыт! Мы смогли позвонить API, подключаться к базе данных Back-End и построить большую часть логики и функциональности и функциональности приложения, используя JavaScript. Я участвовал в столице один хакатон Devexchange ранее это

Автор оригинала: Clark Jason Ngo.

Это был мой второй раз участвуя в хакатоне, и это был действительно обогащенный опыт! Мы смогли позвонить API, подключаться к базе данных Back-End и построить большую часть логики и функциональности и функциональности приложения, используя JavaScript.

Я участвовал в столице один хакатон Devexchange в начале этого года с небольшим количеством опыта кодирования. Это помогло мне управлять своими собственными ожиданиями и получить представление о том, что ожидают судьи.

Критерии судейства

  • хороший шаг
  • рабочая демо
  • влияние на общество
  • масштабируемость

Что помогли

  • Посещение Городский университет Сиэтла Для магистра научной программы в информатике.
  • Онлайн-ресурсы кодирования (например FreeCodecamp и UDEMY Несомненно
  • Перейти к встречам (проверить Meturep.com )
  • Середина
  • Много великих наставников.
  • Удивительные члены команды!

Приложение

Мы разработали решение для решения общей проблемы: делиться велосипедами, оставленными в неподходящих местах. Это создает проблемы для окружающей среды, а компании по обмену велосипедом несут дополнительные расходы и штрафы. Наше решение Crowdsources работникам, чтобы помочь перемещать велосипеды поделиться в соответствующие места, которые уменьшают беспорядок и пользуются как в обществе, так и на велосипеде компании.

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

Технология, используемая для создания приложения

  • HTML/CSS.
  • Javascript
  • Node.js.
  • Heroku

Команда

Фронтальная логика и функции – API Google & Back-end Connection

Clark Jason NGO – Developer Developer – SolutionsResource Inc. | LinkedIn Просмотреть профиль Clark Jason NGO на LinkedIn, крупнейшее в мире профессиональное сообщество. Кларк Джейсон имеет 15 рабочих мест … www.linkedin.com.

Пользовательский опыт работы/пользовательский интерфейс – отзывчивый веб-дизайн

Челси Гальвес – ИТ-интерн – Эстерия Корри Электроника | LinkedIn Просмотреть профиль Chelsea Galvez на LinkedIn, крупнейшее в мире профессиональное сообщество. Челси имеет 6 рабочих мест, перечисленных на … www.linkedin.com.

Фронтальная логика и функции – функции Google API & Bike

Майкл Эйзагуар | LinkedIn Просмотреть профиль Michael Eizaguirre на LinkedIn, крупнейшее в мире профессиональное сообщество. Образование Майкла … www.linkedin.com.

Интерфейс передний пользователь – Wireframing | Подача

Yi-Tung (Jayson) Chen – вице-президент внешних – тайваньская ассоциация студентов в университете … Посмотреть Yi-Tung (Jayson) Профиль Чэна на LinkedIn, крупнейшее в мире профессиональное сообщество. Yi-Tung (Jayson) имеет 2 … www.linkedin.com.

Задний конец | Руководство команды | Наставник

Стивен Чан – инженер по разработке программного обеспечения (Machine Alexa Machine) – Amazon | LinkedIn Просмотреть профиль Стивена Чана на LinkedIn, крупнейшее в мире профессиональное сообщество. У Стивена 5 рабочих мест, перечисленных на их … www.linkedin.com.

Сроки типичного 2-дневного халата

День 1 8:00 утра: Двери Open & Breake 9:00 утра: Церемония открытия, Спонсор приветствует, и команда здания 10:00 утра: кодирование kning 13:00 вечера: обед 2:00 вечера: Спонсор прорывных сеансов 6:00 вечера: ужин 8:00 ВЕЧЕРА: Место проведения закрывается

… Мы закодировали до 12:00 вечера, вернулись домой в 3:00 утра …

День 2

8:00 утра: Место проведения открывается 8:00 AM: Завтрак 12:00: Обед 1:00:00: Код Freeze & Delize Andline на Hackathon.io 13:30: A/V Проверка 2:00: Demos 4: 00 вечера: Победители объявляются/призы!

Соревнование

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

Итак … на чертежную доску!

Доктор

Прежде чем мы даже начали кодировать, мы потратили несколько часов, думая о том, что проблема действительно была. Мы подумали об этом как с социальной перспективы, так и от перспективных велосипедных компаний.

Вместо того, чтобы решать всю проблему, мы хотели обратиться к «специфической» области в этой проблеме. Так вот процесс, который мы проходили:

Упростите заявление о проблеме

Далее мы спросили себя, что мы хотели достичь в долгосрочной перспективе, а не делать быстрое исправление.

Поскольку мой класс управления изменениями в Cityu научил меня: требования-светодиод против преимуществ.

Сформулировать конечное состояние

Теперь, когда мы определили наше конечное состояние (велосипеды в нужных местах) Мы, мозги на том, какие вызовы лежали вперед, чтобы достичь этого конечного состояния.

Определите вызовы

  1. Определите желаемую и нежелательно
  2. Определить велосипеды в нужном месте
  3. Обеспечить стимулы для людей:
  • Переместите велосипед в другое желаемое место
  • не парковать их велосипед при нежелательном месте

Поскольку у нас не было достаточно времени, чтобы построить приложение, это привело к выбору одного и делать предположения.

Решать одну проблему

« Переместите велосипед в другое желаемое место, »

Предположения: Chariting Chariing Bike предоставляет данные о «желаемых» и «нежелательных» местах.

Идея: толпа источник

Есть ли компании по обмену велосипедом наши услуги, и мы заставляем людей перемещать велосипеды из пункта A до пункта B.

Создавать пользовательские истории

Мы отправились от Whiteoboarding до лучшего визуального макета, используя Figma Отказ

Выберите лучшие технологии

Мы сфокусировались на проблеме под рукой и использовали технологию, которые мы подумали, что лучше всего решить.

Это было очень заманчиво интегрировать aws lambda, agora или подойдут из-за прохладных призов от спонсоров события.

Но мы знали, что «принуждение» технологии, как решение, может не закончить хорошо.

Google Cloud Apis

Задний план сервера и конечная точка

Мы разместили наши данные на Heroku и создал файл json.

Наша конечная точка JSON предполагает, что компания Sharing Bike предоставляет нам начальную широту и долготу и назначение широты и долготы и т. Д.

Тестирование карты Google Map API

С ценностями широты и долготы мы смогли создать маршрут, точку A и Point B, а также маркеры значков велосипедов.

Нажав на значок велосипеда, будет генерировать синий путь и два очка, A и B. Это также изменяет уровень масштабирования на среднюю точку синего пути.

У нас также есть выпадающий вариант, который изменяет режим «ходьба», и синяя прямая линия изменится, чтобы усеяна, а также перенаправить на лучший «ходячий путь».

В этот момент мы были сделаны с кодированием логики и функциональности. Так что на передний конец.

Интерфейс интерфейса

Мы сделали отзывчивый веб-дизайн и создали простые, но элегантные диалоговые окна.

На верхнем левом экране мы создали кнопку Toggle, которая показывает навигационную панель. Бар навигации включает в себя «Найти», «Cash Out», «Уведомления», «Справка» и «Настройки».

Нажав «Find», будет генерировать список доступов на работу и является альтернативой нажатием значка велосипеда. Расстояние и вознаграждение отображаются в списке.

Выбор работы от списка работы или нажатие на велосипед значок появится диалоговое окно, просив пользователя принять работу. Диалоговое окно также показывает сводку расстояния и расчетное завершение времени для выбранного задания.

Нажав «Принять эту работу» начнете поездку. Карта будет сосредоточена на GPS велосипеда. Диалоговое окно покажет оставшееся расстояние и вознаграждение за завершение работы.

Когда велосипед достигает желаемого местоположения, который является точкой B, Adialog Box вернет статус, что задание было завершено!

Кодовые фрагменты

переменные

var requestURL = 'https://whispering-stream-27392.herokuapp.com/job/';
      var request = new XMLHttpRequest();
      request.open('GET', requestURL);
      request.responseType = 'json';
      request.send();
var directionsDisplay = null;
var directionsService = null;
request.onload = function() {
var myJson = request.response;
  for (var i = 0; i < myJson.length; i++) {
    // hidden code: new array from json
    makeBike(xArrSta[i], yArrSta[i], arrId[i]);
  }
populateList(rewardList, distanceList);
populateFirstJob(unmodifiedJson[0]);
}

Получите конечную точку JSON из Heroku.

Инициализируйте DirectionsDisplay и DirectionsService, чтобы он, когда он генерирует новый путь, предыдущий путь будет удален.

Функции Google API INITMAP () и CALLATEALATEADDDISPLAYROUTE ()

function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    zoom: 13,
    center: {lat: changingLat, lng: changingLon},
  });
}
function calculateAndDisplayRoute(directionsService, directionsDisplay) {
  var selectedMode = document.getElementById('mode').value;
  directionsService.route({
  origin: {lat: staLocLat, lng: staLocLong},
  destination: {lat: endLocLat, lng: endLocLong},
  travelMode: google.maps.TravelMode[selectedMode]}, function(response, status) {
    if (status == 'OK') {
      directionsDisplay.setDirections(response);
      distance = response['routes'][0]['legs'][0]['distance']['value'];
      duration = response['routes'][0]['legs'][0]['duration']['value'];
      document.getElementById('distance').innerHTML = distance;
      document.getElementById('duration').innerHTML = duration;
    } else {
        window.alert('Directions request failed due to ' + status);
    }
  });
}

initmap это функция Google API, которая отображает карту на нагрузке. Вы можете установить увеличение и центр карты.

CalculateAnddisplayRoute Это функция, которая генерирует синий путь. Мы изменили функцию, чтобы иметь возможность показать «расстояние» и «продолжительность».

Функции ChangeJobstatus (), выборов (ID), Jobavailable ()

function changeJobStatus(jobId, status, worker) {
// need to send id, status and workervar data = {};
var url = "https://whispering-stream-27392.herokuapp.com/job/" + jobId;
  data.id = jobId;
  data.status = status;
  data.worker = worker;
  var json = JSON.stringify(data);  
  var xhr = new XMLHttpRequest();
  xhr.open("PATCH", url, true);
  xhr.setRequestHeader('Content-type','application/json; charset=utf-8');
xhr.onload = function() {
    var users = JSON.parse(xhr.responseText);
    if (xhr.readyState == 4 && xhr.status == "201") {console.table(users);} else {console.error(users);}};
  xhr.send(json);
}
function chooseJob(id) {
    // hidden code: id, starting lat & long, ending lat & long   
    directionsDisplay.setMap(map);
    calculateAndDisplayRoute(directionsService, directionsDisplay);
}
function jobAvailable() {
        changeJobStatus(globalId, "AVAILABLE", "Johnny Cash");
}

Функция Makebike ()

function makeBike(latitude, longitude, id) {
  var image = 'bicycle.png';
  if (onBike) {image = 'rDot.png';}
  if (count > 10) {image = 'green-marker.png';}
  var size = new google.maps.Size(54, 54);
  if (count > 10) {size = new google.maps.Size(60, 75)}
  var icon = {url: image, scaledSize: size, origin: new google.maps.Point(0,0), anchor: new google.maps.Point(0, 0)};
var Bike = new google.maps.Marker({position: {lat: latitude, lng: longitude}, map: map, zoom: 200, icon: icon});
if (!directionsDisplay) {directionsDisplay = new google.maps.DirectionsRenderer;}
if (!directionsService) {directionsService = new google.maps.DirectionsService;}
Bike.addListener('click', function() {
    map.setZoom(18);
    flag = true;
    map.setCenter(Bike.getPosition());
    hideStartRide();
    bikeId(id);
    $("#dialog-jobOne").show();
    // code: id, starting lat & long, ending lat & long
    directionsDisplay.setMap(map);
    calculateAndDisplayRoute(directionsService, directionsDisplay);
    document.getElementById('mode').addEventListener('change', function() {
    calculateAndDisplayRoute(directionsService, directionsDisplay);
    });
  });
}

Макияж Это функция, которая генерирует велосипед значок маркера, а также стили его. Он использует CalculateAnddisplayRoute Функция для генерации своего синего пути.

Когда кодирование было сделано, пришло время подавить!

Мы доставили высоту энергии. Мы убедились, что у него был поток и связан одна идея для других.

Поток презентации: проблема -> проблема с числами -> настоящее приложение -> Обсудить приложение как решение -> демонстрация.

Судьи спросили о масштабируемости. В США и других странах есть много компаний по обмену велосипедом, поэтому мы могли бы масштабироваться на международном уровне.

23 команды разбили и судьи обсудили …

Мы думали, что мы ничего не выиграли, так как мы не приняли проблемы от AWS и Agora.

Но мы победили!

Там нет денежной премии или какой-либо эквивалентной для подноса. Тем не менее, это был хороший опыт и, по крайней мере, мы получили хвастовство человека.:)

Приз

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

Код для премии премии воздействия причин: Одноразовая награда была выдана на каждом событии. В конце Глобального серии Hackathon проекты награды высочайших воздействий выбирают Группа эксперта, включая инициативу Чан Цукерберга и другие. Лучшие пять команд получают официальное приглашение в Hackcleerator.

Список участников

Известные творческие приложения из других команд были:

Фитнес-трекер Fitbit с цветочным изображением, который расцветает при достижении вашей ежедневной цели.

Инструмент отчетности из хулигана, который позволяет свидетелями и другими сторонами сообщать.

Приложение для сканирования изображения, которое проверит, будет ли велосипед в нужном месте или нет.

Résumé Builder, который также предлагает учебники и курсы, основанные на ваших желаемых навыках.

Я надеюсь, что вам понравилось прочитать это.

Оригинал: “https://www.freecodecamp.org/news/cjn-cashcycle-angelhack-seattle-hackathon-2018-d3f42a26ddcb/”