All Projects → tonykolomeytsev → mpeiapp

tonykolomeytsev / mpeiapp

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

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to mpeiapp

WeatherApp MVI sample
🌸[Functional reactive programming (FRP)] 🍁Simple Android weather forecast application written in Kotlin, using RxKotlin, Retrofit2, Mosby, Room Persistence ❄️MVI Pattern with Mosby Library
Stars: ✭ 106 (+457.89%)
Mutual labels:  koin, mvi-android
vscode-dragon-theme
A VS Code dark theme for a cleaner and more streamlined interface. 😎
Stars: ✭ 29 (+52.63%)
Mutual labels:  dark-theme
aseprite-studio-theme
A dark theme for Aseprite with depth.
Stars: ✭ 97 (+410.53%)
Mutual labels:  dark-theme
vscode-theme-gruvbox-minor
Gruvbox theme for Visual Studio Code
Stars: ✭ 17 (-10.53%)
Mutual labels:  dark-theme
suru-plus-dark
Suru++ 25 Dark — A full dark cyberpunk, elegant, futuristic and Papirus-like third-party icons theme
Stars: ✭ 55 (+189.47%)
Mutual labels:  dark-theme
vuepress-theme-default-prefers-color-scheme
add prefers-color-scheme for vuepress default theme
Stars: ✭ 51 (+168.42%)
Mutual labels:  dark-theme
wluma
Automatic brightness adjustment based on screen contents and ALS
Stars: ✭ 290 (+1426.32%)
Mutual labels:  dark-theme
google-calendar-userstyles
🗓 One Dark theme for Google Calendar
Stars: ✭ 19 (+0%)
Mutual labels:  dark-theme
Turn-Off-the-Lights-Chrome-extension
Chrome extension
Stars: ✭ 81 (+326.32%)
Mutual labels:  dark-theme
expense-manager
Developers : Checkout this repo for complete CI-CD of flutter with fastlane. Android/iOS both apps are getting deployed on stores with Fastlane.
Stars: ✭ 28 (+47.37%)
Mutual labels:  dark-theme
Scout
Scout is a kotlin multiplatform application that allows users to search and save games to lists to be browsed later.
Stars: ✭ 28 (+47.37%)
Mutual labels:  koin
slack-custom-controls
Dark Theme Mode and Sidebar Toggle For Slack
Stars: ✭ 12 (-36.84%)
Mutual labels:  dark-theme
dunst
🧛🏻‍♂️ Dark theme for Dunst
Stars: ✭ 27 (+42.11%)
Mutual labels:  dark-theme
dark-theme-plugin
Jenkins Dark Theme
Stars: ✭ 64 (+236.84%)
Mutual labels:  dark-theme
mongood
A MongoDB GUI with Fluent Design
Stars: ✭ 674 (+3447.37%)
Mutual labels:  dark-theme
elmish-getting-started
A simple and minimalistic template to easily get up and running with Elmish and Fable
Stars: ✭ 22 (+15.79%)
Mutual labels:  elm-architecture
whistle
Experiment to build single page apps in Elixir
Stars: ✭ 52 (+173.68%)
Mutual labels:  elm-architecture
new-moon-atom-syntax
New Moon Syntax Theme for Atom
Stars: ✭ 23 (+21.05%)
Mutual labels:  dark-theme
sublime
🧛🏻‍♂️ Dark theme for Sublime Text
Stars: ✭ 87 (+357.89%)
Mutual labels:  dark-theme
npp-darcula
Dark theme for Notepad++ based on Darcula theme from JetBrains products
Stars: ✭ 114 (+500%)
Mutual labels:  dark-theme

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

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

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

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

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

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

Скриншоты

screenshots 1

screenshots 2

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

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

Стек

  • Многомодульная, упрощенная Clean Architecture с активным использованием DI Koin.
  • Vivid Money Elmslie
  • Самописная навигация
  • Retrofit + RxJava для REST Api
  • Vanilla SQLite для хранения в БД заметок и избранных расписаний
  • Firebase
    • Crashlytics
    • Analytics
    • Remote Config
  • Для подгрузки изображений используется Picasso (из-за соотношения веса и скорости работы)
  • Для тестирования используется JUnit 5 + Kotest

Архитектура

Для слоя представления используется паттерн ELM на базе Vivid Money Elmslie. Подробнее про устройство читайте в репозитории по ссылке. Разделение на common, domain, feature модули.

  • common - могут зависеть от других common-модулей
  • domain - могут зависеть от других common-модулей и domain-модулей
  • feature - могут зависеть от common-модулей и domain-модулей, но ни в коем случае не зависят от feature-модулей.

Сделано это для ускорения билда и уменьшения связности кода. Также повсюду выпилен kapt. Везде, где можно, используются обычные kotlin-модули вместо android-модулей. В android-модулях подключено минимум зависимостей, минимум плагинов. Используются обыкновенные groovy gradle скрипты вместо buildSrc и KTS.

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

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

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

  1. Добавьте google-services.json от Firebase в корень модуля app и в 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. Используйте свои ключики.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].