iStudent - кроссплатформенное мобильное приложение с удобным и понятным интерфейсом, объединяющее большинство сервисов, которые используют студенты мехмата, в единую систему.

Overview

IStudent

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

Решением этой проблемы послужит проект iStudent.

iStudent - кроссплатформенное мобильное приложение с удобным и понятным интерфейсом, объединяющее большинство сервисов, которые используют студенты мехмата, в единую систему.

Мы будем использовать интерактивное расписание мехмата для получения расписания студентов всех групп, официального списка групп мехмата и списка преподавателей. Также мы воспользуемся официальным сайтом новостей и СИЦ мехмата, чтобы получать новости и объявления из открытых официальных источников. Мы найдём записи лекций на YouTube и загрузим их в нашу базу. И, наконец, мы реализуем чаты для студентов, чтобы наше приложение было удобным для рассылки важной информации от старост.

Стек технологий

  • PHP 8.0
  • Laravel
  • Python
  • Heroku

Ссылка на второй репозиторий:

https://github.com/Fyordo/IStudent-Flutter

You might also like...
Releases(defense)
  • defense(May 10, 2022)

    Функционал, реализованный к защите

    Реализован весь обещанный функционал: ● Списки групп ● ЛК студента ● Интеграция с интерактивным расписанием ● Новости СИЦа и Мехмата ● Списки преподавателей ● Списки всех пар ● Функция прикрепления дополнения к парам для старост

    Что и как было сделано

    Дизайн:

    ● Разработка дизайна Дизайн был окончательно разработан, переработана цветовая гамма

    Flutter - разработка:

    ● Разработка виджетов Были созданы или доделаны оставшиеся виджеты: виджет расписания на сегодня, виджет списка группы, виджет списка преподавателей, виджет со всеми парами, виджет новостей, виджет расписания

    Backend – разработка:

    ● Отладка API Обработка ошибок, улучшение реcпонзов

    ● Переработка конфигурации Удаление некоторых данных из файлов конфигурации

    ● Создание роута для виджета всех пар Создан роут и соответствующий метод для получения всех пар по предметам студента.

    ● Закончена разработка парсера новостей Создано приложение на Flask, отлажена его работа и приложение выложено на Heroku.

    Source code(tar.gz)
    Source code(zip)
  • pre-defense(Apr 1, 2022)

    Дизайн:

    • Разработка дизайна: Смена цветовой гаммы, иконки приложения и расписания.

    Flutter - разработка:

    • Подправки под дизайн: Были сделаны изменения в соответствие с дизайном.
    • Подключение к серверу: Настроено и отлажено подключение к серверу iStudent.
      • Авторизация и регистрация: Реализована авторизация через аккаунт iStudent, а также редирект в браузер для регистрации через Microsoft. Также реализовано сохранение токена доступа в память телефона и удаление оного при выходе из аккаунта.
    • Подгрузка данных о студенте в хэдер: Реализована подгрузка ФИО, фотографии и группы в верхней части главного экрана
    • Подгрузка новостей: Реализована подгрузка новостей СИЦа мехмата и сайта мехмата (mmcs.sfedu.ru) в нижней части главного экрана
    • Подгрузка расписания: Реализована подгрузка расписания студента по его группе в окне расписания. На данный момент тип недели (верхняя/нижняя) не определяются.

    Backend – разработка:

    • Переработка базы данных: Смена названий полей, добавление полей
    • Смена структуры классов: Все <что-то>_id сменены на <что-то>
    • Редактирование API: Переработка API по нуждам flutter-разработчиков
    • Подправки под дизайн: Были сделаны изменения на сайте в соответствие с дизайном.
    • Парсер новостей: Парсер новостей был отлажен, выложен на хостинг и описан роутинг.

    Сайт для тестирования API: https://i-student.herokuapp.com/

    Source code(tar.gz)
    Source code(zip)
  • null-version(Dec 7, 2021)

    Дизайн:

    • Разработка дизайна: Был продуман начальный дизайн, выбрана цветовая гамма и была разработана иконка приложения

    Flutter - разработка:

    • Роутинг: Было создано приложение, в котором уже прописан роутинг между экранами.
    • Создание макета приложения: Была сделана нижняя панель навигации, выставлены базовые цвета и прописана конфигурация приложения.
    • Разработка основных экранов: Были созданы основные экраны в соответствии с дизайном, разработанным ранее

    Backend – разработка:

    • Создание базы данных: Была создана база данных, использующая СУБД PostgreSQL. Через миграции были созданы таблицы, необходимые на данный момент, а также были прописаны связи между столбцами таблиц
    • Создан проект на Laravel и прописаны базовые модели: В ветке backend-dev был создан Laravel проект, в котором были написаны модели, соответствующие таблицам в базе данных. В дополнение были написаны классы, не связанные с моделями для упрощённой работы с данными на сервере.
    • Подключено API Microsoft: С помощью пакетов из менеджера пакетов PHP (Composer) была загружена библиотека, позволяющая получать данные из Microsoft API с помощью системы OAuth2 и системы безопасности через токены доступа. При регистрации студента в базу данных сохраняется его ФИО, почта (которая обязательно должна заканчиваться на @sfedu.ru) и фотография.
    • Создана часть API: Создана часть API для сервера iStudent, осуществлённое с помощью системы безопасности через токены. На данный момент можно получать данные о студенте по его id, данные о группе по её id, расписание на дату или на неделю. Также существует метод деавторизации, удаляющий токен доступа студента из нашей базы данных, и метод заполнения дополнительных данных о студенте, выполняющийся на втором этапе регистрации.
    • Создан простой сайт для тестирования функционала: Для проверки API был создан базовый сайт с помощью Laravel. На нём реализована регистрация, авторизация и просмотр данных.
    • Сделана демо-версия админ панели: В конфигурации приложения была прописана почта студента-администратора, с помощью которой можно получить доступ к функциям, недоступным обычным студентам.
    • Подключено API интерактивного расписания мехмата: Было подключено API интерактивного расписания мехмата. С помощью админ-панели можно выполнить следующие действия: подгрузить в базу данных список групп мехмата, подгрузить в базу данных список преподавателей мехмата, подгрузить в базу данных расписание всех групп мехмата.
    • Хостинг: Серверная часть проекта была выложена на хостинг Heroku. Данные были выгружены в облачную базу данных.

    Сайт для тестирования API: https://i-student.herokuapp.com/

    Source code(tar.gz)
    Source code(zip)
Owner
null