Skip to content

Multi-module android application featuring MVI & clean architecture, used to parse xlsx files into user friendly interfaces to enhance study.

Notifications You must be signed in to change notification settings

JavierManriqueCW/xtudent

Repository files navigation

xtudent_icon

Xtudent

Native android application that transforms exam .xlsx files into user-friendly study interfaces. Built with Kotlin and Jetpack Compose with a focus in best practices, clean architecture, and robust testing to ensure a stable and scalable product.

Table of Contents

Features

  • Multi-Module Project Structure: Organized codebase for scalability and maintainability.
  • Jetpack Compose UI: Modern, declarative UI toolkit for responsive and intuitive interfaces.
  • Model-View-Intent (MVI) Pattern: Predictable state management for consistent user experiences.
  • Clean Architecture: Separation of concerns for easier testing and feature enhancements.
  • Unit Testing: Comprehensive testing suites written with the purpose of preserving robust logics over time.
  • UI Testing (screenshot testing): User action flows covered with screenshot tests to ensure a stable user experience after continuous development
  • GitHub Actions Integration: Automated unit and ui testing, code coverage reports using JaCoCo and code sanity checks with Detekt.

Architecture

The app follows the Clean Architecture paradigm, integrating the MVI pattern in the presentation layer.

  • Presentation Layer: Handles UI rendering with Jetpack Compose and state management with a single source of truth, as part of the MVI design pattern integration.
  • Domain Layer: Contains business logic and use cases.
  • Data Layer: Manages data sources, including Excel file parsing and data repositories, database and web service communications.

Project details

  • JDK 17
  • Min version 26
  • Target version 35
  • SDK version 35
  • Kotlin version 1.9.25
  • Gradle version 8.6.1

How does it work?

Just install the app, navigate to the exam creation screen and provide an xlsx file like this one following this specific format:

  • The first row must be the exam name.
  • The second row must be the exam description.
  • The third row must be the image described with a string like one of these.
    • NIGHT_SKY
    • SPACE_ROCKET
    • BURGER
    • BABY_BUDGIE
    • FOREST
    • BEACH
    • VIDEO_GAME
    • BOOKS
    • CUPCAKE
    • FIRST_ROBOT
    • SECOND_ROBOT
    • CAR
    • CUPCAKE_BRIGHT
    • MIC
    • CANDY
  • All subsequent rows will be questions, where the first row will be the question itself, the second row the right answer, and all the other rows the wrong answers.

Look & feel

Screen.Recording.2024-10-27.at.19.12.05.mov

Splash screen

Onboarding steps

Empty exam list

Exam creation (one element)

Exam list (one element)

Exam detail

About

Multi-module android application featuring MVI & clean architecture, used to parse xlsx files into user friendly interfaces to enhance study.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published