Commit 7b11150
committed
feat: Initial project setup for Drive Theory app
This commit introduces the initial structure and core components for the "Drive Theory" Android application, a practice app for the Georgian driving theory exam.
Key additions include:
* **Project Configuration:**
* Set up Gradle build scripts (`build.gradle.kts`, `settings.gradle.kts`), version catalog (`libs.versions.toml`), and properties.
* Configured application variants, dependencies (Compose, Hilt, Room, Navigation, Coil), and plugins (Kotlin, KSP).
* Added `.gitignore` files to exclude build artifacts, IDE files, and local assets.
* **Application Core:**
* Established the `DriveTheoryApplication` class with Hilt for dependency injection.
* Defined the main `Activity` and `AndroidManifest.xml`.
* Implemented basic navigation with `DriveExamNavHost` using Jetpack Navigation Compose.
* **Database and Data Layer:**
* Set up Room database (`DriveExamDatabase`) pre-populated from an asset file.
* Defined entities for tickets, choices, categories, languages, and their relationships.
* Created DAOs for data access and an `ExamRepository` to abstract data sources.
* Configured a Hilt module (`DatabaseModule`) to provide database instances and DAOs.
* **UI and Features:**
* **Home Screen:** Implemented `HomeScreen` allowing users to select exam language and category. It displays the number of available questions and provides options to start in "Study Mode" or "Exam Mode".
* **Study/Exam Screen:** Created a versatile `StudyScreen` that functions as both a study and an exam interface. It includes question/answer presentation, navigation controls, an exit confirmation dialog, and a question navigator.
* **Exam Mode:** Features a 30-minute timer and a mistake counter (fails after 3 mistakes).
* **Study Mode:** Includes a "Show Explanation" feature.
* **About Screen:** Added an `AboutScreen` with information about the app, its features, and data sources.
* **Components:** Developed reusable UI components for displaying questions, answer choices, and navigation/progress indicators.
* **ViewModels:** Created `HomeViewModel` and `StudyViewModel` to manage UI state and logic.
* **Resources:**
* Added Material Design icons, theme files (color, type, theme), and initial app launcher icons.
Signed-off-by: Luka Mamukashvili <57063715+USLTD@users.noreply.github.com>0 parents commit 7b11150
104 files changed
Lines changed: 4108 additions & 0 deletions
File tree
- .idea
- inspectionProfiles
- .vscode
- app
- src
- androidTest/java/ge/usltd/drivetheory
- main
- assets
- databases
- images
- java/ge/usltd/drivetheory
- data
- dao
- entity
- relation
- repository
- di
- ui
- components
- screens
- theme
- viewmodel
- res
- drawable-v24
- drawable
- mipmap-anydpi-v26
- mipmap-hdpi
- mipmap-mdpi
- mipmap-xhdpi
- mipmap-xxhdpi
- mipmap-xxxhdpi
- values
- xml
- test/java/ge/usltd/drivetheory
- gradle
- wrapper
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments