Обо мне
Я архитектор и разработчик, и я люблю кодировать!
Живя и работая во многих странах, я видел, как системы эволюционировали от традиционного клиент-сервера до современных облачных приложений.
В настоящее время я кодирую на 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
Теперь мы стремимся использовать ИИ и МЛ для прогнозирования успеваемости учащихся и создания точной аналитики для школ, чтобы найти способы улучшения