Skip to content

Commit 7b11150

Browse files
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

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
*.iml
2+
.gradle
3+
/local.properties
4+
/.idea/caches
5+
/.idea/libraries
6+
/.idea/modules.xml
7+
/.idea/workspace.xml
8+
/.idea/navEditor.xml
9+
/.idea/assetWizardSettings.xml
10+
.DS_Store
11+
/build
12+
/captures
13+
.externalNativeBuild
14+
.cxx
15+
local.properties
16+

.idea/.gitignore

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.name

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/AndroidProjectSystem.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/appInsightsSettings.xml

Lines changed: 26 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copilot.data.migration.agent.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copilot.data.migration.ask.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copilot.data.migration.ask2agent.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copilot.data.migration.edit.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)