Skip to content

attia-ali-attia/Courses-Tracker

Repository files navigation

Courses-Tracker

Courses Tracker is an Android application 📱 built to help instructors🧑‍🏫 create & track all of thier courses - progress, students, how much they paid, and many more…

You can Install Courses Tracker app from below 👇

Courses Tracker App

Features

  • Create Courses & check how much students should pay💵.
  • Track the progress of each student🧑‍🎓.
  • Clean and Simple Material UI.
  • It supports dark theme too 🌗.

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • Room - SQLite object mapping library.
  • Jetpack Compose - Android’s recommended modern toolkit for building native UI.
    • Compose Destinations - A KSP library that processes annotations and generates code that uses Official Jetpack Compose Navigation under the hood. It hides the complex, non-type-safe and boilerplate code you would have to write otherwise.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Material3 - The latest version of Google’s open-source design system..
  • Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.

Package Structure

com.courses.tracker    # Root Package
.
├── data                # For data handling.
│   ├── local           # Local Persistence Database. Room (SQLite) database
|   │   └── entity      # Data Access Object for Room   
|   ├── mapper          # Convert domain model to Room Dao and vise versa
│   └── repository      # Single source of data.
├── di                  # Dependency Injection 
│
├── domain
|   ├── model           # Model classes
|   └── repository      # Interface define methods to be implemented in data layer.     
|
├── presentation
│   ├── course_listings  # Classes related to courses screen
│   └── student_infos    # Classes related to students screen
│
├── ui/theme                  # Everything about Compose theme
|
└── utils               # Utility Classes / Kotlin extensions

Architecture

This app uses MVI (Model View Intent) architecture.

Discuss 💬

Have any questions, doubts or want to present your opinions, views? You're always welcome. You can start discussions.

Contact

If you need any help, you can connect with me on Linkedin.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages