Skip to content

Latest commit

 

History

History
118 lines (99 loc) · 6.3 KB

README.md

File metadata and controls

118 lines (99 loc) · 6.3 KB

Management Science & Technology (ELMEPA) University App (Android)

elmepa_uni_app

This repository contains an Android application built & tailored specifically for our university community.

App Presentation 🎬 Download App 📱 Read More about the App 📖 Releases Overview 🚀
YouTube URL Google Play Elmepa URL App Releases

Features 💡

Interactive Interface
Engaging user experience designed to cater to the needs of students, faculty, and staff.
Department News
Stay informed with the news, announcements & events directly from the University.
Faculty Contact Information
Access the "Personnel" screen and search your professor's contact information. Open the Personnel details screen and learn more about your professor.
Academic Schedule
Easily access the Department's academic schedule in-app.
Application Forms
Easily find the application form that you need to fill out in-app.
Freshmen Students Information & Onboarding steps - Coming soon 🔜
Easily access the Freshmen Student's onboarding steps in-app.
Engaging Syllabus
Easily access your schedule and syllabus while on the go (for both Undergraduate & Postgraduate students).
Department FaQ
Do you have a question? Our FaQ section is here for you!
Personalization
Dark theme or Light theme? Tailor the app to your own preference.

App Architecture 🛠️

mvvm_clean_architecture

Modularization 🧩

app_modularization

Navigate on each module to see detailed dependencies.

:app module
The :app module serves as the entry point for the application. It includes the main activity and is responsible for initializing the app and routing to the appropriate feature modules.
:core module
The :core module contains shared resources and utilities that are used across other modules. This includes common utilities, network operations, local database, datastore setup, and last but not least, the domain logic.
:feature module
The :feature module encapsulates specific, self-contained functionality related to a particular aspect of the app. (e.g department news).

Tech Stack ⚙️

  • Kotlin: A modern programming language for building robust Android applications.
  • Android Jetpack: Utilize the latest Android Jetpack components for efficient development.
  • MVVM Clean Architecture: Implement a clean separation of concerns with Model-View-ViewModel architecture following Clean Architecture principles.
  • Coroutines: Leverage Kotlin Coroutines for asynchronous and non-blocking programming.
  • Kotlin Flows: Utilize Kotlin Flows for reactive programming, enabling seamless data stream processing.
  • Hilt Dependency injection framework for managing the lifecycle and dependencies.
  • Firebase: Integrates with Firebase services (Firestore, Storage, Crashlytics, Performance) for data flow and app monitoring purposes.
  • Room Database: Utilize Room Persistence Library for local data storage and caching.
  • DataStore: Jetpack library for managing key-value and typed object storage, replacing SharedPreferences.
  • Jsoup HTML parser library for extracting and manipulating data from web pages.
  • Paging3: Library for handling large datasets by loading and displaying data incrementally.
  • Navigation Component: Framework for managing in-app navigation and deep linking within the app.
  • Material 3: Implement intuitive and visually appealing UI with Material Design 3 guidelines.
  • Glide: Efficiently load and display images with Glide, a fast and flexible image loading library.
  • Gson: Library for serializing and deserializing to and from JSON.
  • Timber: Logging library for extensible and structured logging throughout the app.
  • Shimmer: Enhance UI loading experience with shimmer effects to indicate content loading.
  • Kotlin DSL: Utilize Kotlin DSL for configuring build scripts and project setup, enhancing build script readability and maintainability.

Feedback

We value your feedback! If you have any suggestions, feature requests, or bug reports, please don't hesitate to open an issue on GitHub.