Building Course Assist, часть 20: добавление некоторых исправлений и функций в последнюю минуту
С Course Assist осталось всего одно мгновение после запуска, и я проводил системные тесты, чтобы убедиться, что все работает так, как должно. Но с системными тестами возникают разные проблемы, некоторые новые, а некоторые я мог упустить из виду при разработке приложения. Тем не менее, я быстро начал действовать, чтобы разобраться с этим перед запуском😤. В сегодняшней статье я покажу вам некоторые из ошибок, которые я обнаружил при тестировании Course Assist, решения, которые я использовал для их исправления, и некоторые новые функции, которые я добавил в качестве общего улучшения. Давайте сразу приступим🤾
Обнаруженные ошибки и решения, используемые для их исправления🔧
- Сообщения и чат-сокеты не работали. Сообщения и чат-сокеты, позволяющие отправлять сообщения между пользователями в приложениях Course Assist в режиме реального времени, не работали должным образом. Я провел небольшое расследование и обнаружил, что это произошло из-за того, что пользовательская переменная, используемая в сокете при приеме функции, чтобы определить, какой пользователь получает, какое сообщение было сгенерировано в отдельной функции, а не в функции сокета, и приводила к тому, что сокет при получении получал только пользовательская переменная на рендере второй страницы, а не на первой. Решение: чтобы исправить это, я просто определил пользовательскую переменную внутри функции сокета при получении, которая теперь принимается при первом рендеринге, и сокеты работают правильно😁.
- Изображения в шаблоне письма с подтверждением перестали отображаться: В шаблоне письма с подтверждением есть несколько изображений, это логотип Course Assist и несколько значков социальных сетей. Первоначально я загрузил эти изображения на свой Google Диск и получил ссылки на них, а затем прикрепил их к тегам изображений src в шаблоне html, и это сработало. По крайней мере, на какое-то время 🙄. После тестирования я обнаружил, что они больше не отображаются. Решение: я исправил это, создав новую модель изображения для изображений шаблона электронной почты в бэкэнде и загрузив эти изображения в развернутый бэкэнд, а затем через API я прикрепил их ссылки к html-шаблону электронной почты. Другими словами, я сделал то же, что и с Google Диском, только теперь на своем сервере. Это сработало как шарм💪
- Статические файлы и медиафайлы не загружались на серверную часть: серверная часть Course Assist развернута в дроплете Digital Ocean под управлением Ubuntu с Nginx. После того, как я развернул его, я попытался получить доступ к администратору и получил голый сайт администратора html, который нам не нужен. После некоторого расследования я обнаружил, что это было вызвано запрещенной ошибкой 403 в папке статических и мультимедийных файлов, У сервера Nginx нет разрешения на просмотр этих папок. Решение. Чтобы исправить это, я просто изменил пользователя в файле конфигурации Nginx на имя пользователя, которое я использую для доступа к серверу Ubuntu, и все заработало нормально.💃
Недавно добавленные функции✨
- Страница сбоя подключения в приложении Course Assist User: я добавил это, чтобы предоставить пользователям удобный пользовательский интерфейс, когда их подключение к Интернету не в порядке. На изображении ниже показано, что видят пользователи, когда их интернет-соединение обрывается при использовании приложения Course Assist.
- Индикатор активности при отправке сообщений в чате.Чтобы улучшить UX чата, я добавил индикатор активности, который активируется, когда пользователь отправляет сообщение, и деактивируется, когда сообщение отправляется. Ниже приведено изображение индикатора активности на этой странице чата.
- Индикатор выполнения на веб-странице платежного шлюза. Я также добавил индикатор выполнения, чтобы улучшить UX на веб-странице платежей. Зеленый индикатор выполнения перемещается по мере загрузки веб-страницы. На изображении ниже показана панель процесса на веб-странице платежного шлюза.
Это не исчерпывающий список, но список наиболее значительных ошибок, которые я обнаружил, и функций, которые я добавил. Спасибо за прочтение и до встречи в следующей статье🙏.