Skip to content

MpeiX - Расписание пар, карта корпусов и личный кабинет БАРС для студентов и преподавателей НИУ МЭИ

License

Notifications You must be signed in to change notification settings

tonykolomeytsev/mpeiapp

Repository files navigation

MpeiX - приложение МЭИ здорового человека

GitHub tag (latest by date) Build status License: MIT

Расписание пар, заметки, личный кабинет БАРС и крутая карта для студентов и преподавателей НИУ МЭИ. Самое функциональное, легковесное и стабильное МЭИшное приложение.

Фичи приложения:

  • Просмотр расписаний групп и преподавателей
  • Карта корпусов, общежитий, мест общепита, известных мест кампуса МЭИ и кафедр.
  • Добавление заметок к парам.
  • Просмотр ЛК БАРС.
  • Дашборд с ближайшими парами, заметками, расписанием сессии и объявлениями.
  • Быстрое переключение между избранными расписаниями.
  • Переключение между ТЁМНОЙ ТЕМОЙ и светлой темой.
  • Переключение между русским и английским языком в приложении.
  • Поиск по заметкам, карте, группам и преподавателям.
  • Предпросмотр расписаний групп и преподавателей прямо с экрана поиска.
  • Кэширование расписаний и геометок на устройстве.
  • Поддержка версии для планшетов.
  • Самый маленький вес приложения по сравнению с конкурентами.
  • Открiтый исходнiй код.
  • Меми.🤗💪😸😃

Пулл реквесты приветствуются.

Скриншоты

screenshots 1

screenshots 2

Требования приложения

  • Android 5.0 Lollipop и выше (Api V21+)
  • Доступ к интернету

Интересное для разработчиков

Стек

  • TEA/ELM для presenter слоя на базе Vivid Money Elmslie
  • Навигация в Jetpack Compose на базе Appyx
  • Retrofit для REST Api
  • Kotlin Coroutines + Flow + немножко RxJava 3 (скоро будет полностью выпилена)
  • Room + KSP для хранения в БД заметок и избранных расписаний
  • Firebase: Crashlytics, Analytics, Remote Config
  • Picasso для загрузки картинок
  • DI Koin
  • Для тестирования используется JUnit 5 + Kotest
  • Композитный билд и кастомные Gradle плагины: много всяких интересных штук смотри в ./build-logic

Архитектура

В проекте используется Clean Architecture, в некоторых местах допускаются упрощения.

Если хотите разобраться в устройстве проекта, специально для вас создан файлик ARCHITECTURE.md.

Планы на будущее

  1. В самое ближайшее время планируется переход с RxJava на Kotlin Coroutines, как более легковесную альтернативу. Ну и потому что корутины теперь являются новым мейнстримом.
  2. Переход с Fragments на Jetpack Compose. Это позволит уменьшить вес приложения, увеличить скорость билда, да и в целом упростить поддержку кодовой базы, что положительно скажется на частоте обновлений приложения.
  3. Редизайн приложения в соответствии с новыми гайдлайнами Material.
  4. Полировка существующих фич и добавление нового функционала. Новые фичи сейчас на стадии рисовки в Figma. Добавляться будут только реально необходимые функции. Лишная фигня, которой пользуются раз в год и которую сложно поддерживать, в приложении появляться не будет.

Инструкция по сборке проекта

  1. Создайте на Firebase два конфига google-services.json:

    • Для release версии приложения (package name kekmech.ru.mpeiapp): положите конфиг в корень модуля app
    • Для debug версии приложения (package name kekmech.ru.mpeiapp.dev): положите конфиг в app/src/debug.

    Инструкция по получению google-services.json.

  2. В глобальный gradle.properties добавьте поле mpeiapp_google_maps_api_key="{SECRET}", где {SECRET} - ключ от API Google Maps. Инструкция по получению ключа.

  3. Скачайте и установите JDK 17 версии, укажите в настройках проекта java 17 по умолчанию для Gradle и компилятора Kotlin:

    File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle

  4. Установите плагин Kotest, с ним будет проще гонять тесты.

После первых двух пунктов проект соберется, после двух других начнут работать тесты. В связи с выходом Gradle 7.5.0 и AGP 7.4.0 проект перешел на Java 17.

По понятным причинам в репозитории не будут опубликованы оригинальные ключи от Google Maps API и Firebase API. Используйте свои ключики.

About

MpeiX - Расписание пар, карта корпусов и личный кабинет БАРС для студентов и преподавателей НИУ МЭИ

Topics

Resources

License

Stars

Watchers

Forks

Languages