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

Как и почему я создал класс

Как мы разработали отличный продукт Ed tech с использованием технологий с открытым исходным кодом

Автор оригинала: Atul Gupta.

Обо мне

Я архитектор и разработчик, и я люблю кодировать!

Живя и работая во многих странах, я видел, как системы эволюционировали от традиционного клиент-сервера до современных облачных приложений.

В настоящее время я кодирую на Python/Django, Vue.js для разработки веб-приложений, приложений для Android и iOS

Проблема, которую я хотел решить

Общение родителей и Учителей

В индийских школах общение между учителями и родителями по-прежнему осуществляется с использованием примитивных средств, таких как доски объявлений, циркуляры, уведомления, дневники учащихся, электронные письма

Они неэффективны, отнимают много времени и усилий и ненадежны

Существует острая потребность в технологическом решении, которое было бы эффективным, быстрым, экономичным и надежным

Что такое класс?

Я разработал Class Up – платформу для общения родителей и учителей на основе приложений. Используя класс, родители и учителя могут взаимодействовать друг с другом, как никогда раньше, и превращаться в сотрудников

Можно сообщить все, что угодно – Отзывы, домашние задания, оценки за тесты, Результаты экзаменов, Даже фотографии и видео школьных мероприятий

Class Up является быстрым, надежным, эффективным, а также полезным для окружающей среды, так как он значительно сокращает использование бумаги

Технический стек

Нам нужен был проверенный технический стек, быстрый, кросс – платформенный, масштабируемый и платный! Очевидно, что Django был очевидным победителем для бэкенда, MySQL для db AWS для хостинга. Для Android Java Android SDK на Android studio и для iOS – Swift & XCode

Изначально веб-портал был основан на шаблонах Django плюс Bootstrap, но это была не лучшая альтернатива. Позже, с появлением реактивных технологий на основе Javascript, таких как React, Angular, Vue, мы приняли решение перейти на одну из них.

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

Теперь у нас есть полностью функциональный веб – интерфейс для всех категорий пользователей-Учителей, учеников, родителей и Администратора.

Сейчас мы также рассматриваем React Native для Android и iOS, так как это сэкономит много времени и усилий, имея единую базу кода

Процесс построения класса вверх

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

Последовал гибкий подход к непрерывной интеграции

Сначала бэкэнд был разработан в Django и базе данных на Mysql, затем мы закодировали API на платформе Django Rest, протестировали их через Postman.

Затем мы создаем приложения на Android и iOS и интегрируем их с бэкендом через API.

Мы также придерживались подхода “Не повторяйся” (DRY) и использовали множество проверенных сторонних библиотек, таких как Volley для сетей в Android, Alamofire для того же в iOS, Reportlab для python для создания PDF-документов и многое другое. Панды Python для аналитики

Тщательное тестирование проводилось на каждом этапе разработки

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

Проблемы, с которыми я столкнулся

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

Например, для уведомления мы сначала попробовали Firebase – Однако интеграция его с бэкендом Python через API Google-это кошмар. Мы пытались в течение нескольких недель, но не смогли добиться никакого успеха. Google проделал действительно плохую работу, так как нет поддержки отладки продуктов Firebase.

Затем мы обратились к одному сигналу – он бесплатный и настолько чудесно разработан, что мы смогли завершить все Push-уведомления всего за 2 дня

Настройка серверов, таких как Nginx и UWSGI, также довольно сложна, но, к счастью, в сети существует много отличных материалов, которые помогут вам.

Основные уроки

Для web мы сначала начали с шаблонов django и Bootstrap с jQuery – это довольно жесткий стек и не поддерживает быструю разработку, которую обеспечивают реактивные технологии, такие как Angular, Vue, React и т. Д.

позже мы перешли на Vue.js/Vuetifyu Любой технологии, будь то Django или Vue – они хороши только для определенного компонента вашего приложения. Django хорош для бэкенда, но не для интерфейса. Следовательно, ассортимент технологий в стеке должен быть тщательно подобран

Советы и рекомендации

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

Большую часть времени мы выбирали свободные технологии с открытым исходным кодом – поэтому, прежде чем завершать какую-либо из них, пожалуйста, посмотрите, какие успешные продукты построены на этих технологиях, сколько сообществ существует на таких форумах, как Github, stack overflow.

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

Участники Stack overflow – замечательные люди, они являются экспертами в своих областях и готовы помочь. Воспользуйтесь всеми преимуществами этой замечательной платформы

Заключительные мысли и следующие шаги

Наш класс продуктов почти завершен – МЫ также создали онлайн-управление классами, которое оказывается ценным в текущее время блокировки из-за кризиса Covid-19

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