File structure - fpmi-pmvs2025/pmvs11a-lab8-flightwise GitHub Wiki

Repository

The repository includes commit linting with husky and requires several npm packages that are located in package.json. Github actions and PR templates are set up in .github folder. Documentation is located in docs folder. Application folder is named Flightwise.

├── .github
├── .husky
├── Flightwise 
├── docs
├── README.md
├── commitlint.config.js
├── package-lock.json
└── package.json

Application

The application structure is provided below as basic Android project.

app/

build.gradle.kts - Gradle configuration for the app module.

proguard-rules.pro - ProGuard configuration for code shrinking and obfuscation.

src/

androidTest/ - Instrumentation UI tests.

Path: src/androidTest/java/by/bsu/flightwise

Contains UI tests for major screens such as Login, Main, Register, Payment, etc.

Test files follow the pattern: ActivityNameUITest.kt

main/ - Main application source code.

Path: src/main/java/by/bsu/flightwise

assets/

flightwise.db - Preloaded SQLite database used in the application.

data/

Contains application data logic:

dao/ - DAO interfaces for Room database operations.

dao/impl/ - Implementations for DAOs.

database/DatabaseHelper.kt - Centralized helper for managing the database.

entity/ - Kotlin data classes representing database tables.

service/

SetupDatabase.kt - Handles initial setup and seeding of the database.

ui/

activities/ - Kotlin files for app screens.

fragments/ - Reusable UI fragments (e.g., Header, Footer, DateInput).

theme/ - App theming (colors, typography).

res/

Drawable assets, fonts, and app launcher icons.

values/ and values-ru/ - App string resources in English and Russian.

xml/ - Backup and data extraction configurations.

test/

Unit test directory.

Gradle and Wrapper Files

build.gradle.kts - Top-level Gradle build file.

gradle/ - Contains version catalogs and wrapper files.

gradle.properties, settings.gradle.kts - Gradle settings.

gradlew, gradlew.bat - Gradle wrapper scripts.

│   ├── app
│   │   ├── build.gradle.kts
│   │   ├── proguard-rules.pro
│   │   └── src
│   │       ├── androidTest
│   │       │   └── java
│   │       │       └── by
│   │       │           └── bsu
│   │       │               └── flightwise
│   │       │                   ├── AboutActivityUITest.kt
│   │       │                   ├── ExampleInstrumentedTest.kt
│   │       │                   ├── LoginActivityUITest.kt
│   │       │                   ├── MainActivityUITest.kt
│   │       │                   ├── PaymentActivityUITest.kt
│   │       │                   ├── RegisterActivityUITest.kt
│   │       │                   ├── SearchTicketsUITest.kt
│   │       │                   ├── TicketActivityUITest.kt
│   │       │                   └── TicketsActivityUITest.kt
|   |       |                    ...
│   │       ├── main
│   │       │   ├── AndroidManifest.xml
│   │       │   ├── assets
│   │       │   │   └── flightwise.db
│   │       │   ├── ic_launcher-playstore.png
│   │       │   ├── java
│   │       │   │   └── by
│   │       │   │       └── bsu
│   │       │   │           └── flightwise
│   │       │   │               ├── data
│   │       │   │               │   ├── dao
│   │       │   │               │   │   ├── AirplaneDao.kt
│   │       │   │               │   │   ├── AirportDao.kt
│   │       │   │               │   │   ├── FlightDao.kt
│   │       │   │               │   │   ├── PassengerDao.kt
│   │       │   │               │   │   ├── PaymentDao.kt
│   │       │   │               │   │   ├── PricingRuleDao.kt
│   │       │   │               │   │   ├── TicketDao.kt
│   │       │   │               │   │   ├── UserDao.kt
│   │       │   │               │   │   └── impl
│   │       │   │               │   │       ├── AirplaneDaoImpl.kt
│   │       │   │               │   │       ├── AirportDaoImpl.kt
│   │       │   │               │   │       ├── FlightDaoImpl.kt
│   │       │   │               │   │       ├── PassengerDaoImpl.kt
│   │       │   │               │   │       ├── PaymentDaoImpl.kt
│   │       │   │               │   │       ├── PricingRuleDaoImpl.kt
│   │       │   │               │   │       ├── TicketDaoImpl.kt
│   │       │   │               │   │       └── UserDaoImpl.kt
│   │       │   │               │   ├── database
│   │       │   │               │   │   └── DatabaseHelper.kt
│   │       │   │               │   └── entity
│   │       │   │               │       ├── Airplane.kt
│   │       │   │               │       ├── Airport.kt
│   │       │   │               │       ├── Flight.kt
│   │       │   │               │       ├── Passenger.kt
│   │       │   │               │       ├── Payment.kt
│   │       │   │               │       ├── PricingRule.kt
│   │       │   │               │       ├── Ticket.kt
│   │       │   │               │       └── User.kt
│   │       │   │               ├── service
│   │       │   │               │   └── SetupDatabase.kt
│   │       │   │               └── ui
│   │       │   │                   ├── activities
│   │       │   │                   │   ├── AboutActivity.kt
│   │       │   │                   │   ├── LoginActivity.kt
│   │       │   │                   │   ├── MainActivity.kt
│   │       │   │                   │   ├── PaymentActivity.kt
│   │       │   │                   │   ├── RegisterActivity.kt
│   │       │   │                   │   ├── SearchTicketsActivity.kt
│   │       │   │                   │   ├── TicketActivity.kt
│   │       │   │                   │   └── TicketsActivity.kt
│   │       │   │                   ├── fragments
│   │       │   │                   │   ├── DateInputFragment.kt
│   │       │   │                   │   ├── FooterFragment.kt
│   │       │   │                   │   ├── HeaderFragment.kt
│   │       │   │                   │   └── TicketFragment.kt
│   │       │   │                   └── theme
│   │       │   │                       ├── Color.kt
│   │       │   │                       ├── Theme.kt
│   │       │   │                       └── Type.kt
│   │       │   └── res
│   │       │       ├── drawable
│   │       │       │   ├── airplane.png
│   │       │       │   ├── ic_launcher_background.xml
│   │       │       │   ├── ic_launcher_foreground.xml
│   │       │       │   ├── luggage.png
│   │       │       │   └── main_activity_header.png
│   │       │       ├── font
│   │       │       │   ├── inter_bold.ttf
│   │       │       │   ├── inter_medium.ttf
│   │       │       │   ├── inter_regular.ttf
│   │       │       │   └── inter_semibold.ttf
│   │       │       ├── mipmap-anydpi-v26
│   │       │       │   ├── ic_launcher.xml
│   │       │       │   └── ic_launcher_round.xml
│   │       │       ├── mipmap-hdpi
│   │       │       │   ├── ic_launcher.webp
│   │       │       │   ├── ic_launcher_foreground.webp
│   │       │       │   └── ic_launcher_round.webp
│   │       │       ├── mipmap-mdpi
│   │       │       │   ├── ic_launcher.webp
│   │       │       │   ├── ic_launcher_foreground.webp
│   │       │       │   └── ic_launcher_round.webp
│   │       │       ├── mipmap-xhdpi
│   │       │       │   ├── ic_launcher.webp
│   │       │       │   ├── ic_launcher_foreground.webp
│   │       │       │   └── ic_launcher_round.webp
│   │       │       ├── mipmap-xxhdpi
│   │       │       │   ├── ic_launcher.webp
│   │       │       │   ├── ic_launcher_foreground.webp
│   │       │       │   └── ic_launcher_round.webp
│   │       │       ├── mipmap-xxxhdpi
│   │       │       │   ├── ic_launcher.webp
│   │       │       │   ├── ic_launcher_foreground.webp
│   │       │       │   └── ic_launcher_round.webp
│   │       │       ├── values
│   │       │       │   ├── colors.xml
│   │       │       │   ├── ic_launcher_background.xml
│   │       │       │   ├── strings.xml
│   │       │       │   └── themes.xml
│   │       │       ├── values-ru
│   │       │       │   └── strings.xml
│   │       │       └── xml
│   │       │           ├── backup_rules.xml
│   │       │           └── data_extraction_rules.xml
│   │       └── test
│   │           └── java
│   │               └── by
│   │                   └── bsu
│   │                       └── flightwise
│   │                           └── ExampleUnitTest.kt
│   ├── build.gradle.kts
│   ├── gradle
│   │   ├── libs.versions.toml
│   │   └── wrapper
│   │       ├── gradle-wrapper.jar
│   │       └── gradle-wrapper.properties
│   ├── gradle.properties
│   ├── gradlew
│   ├── gradlew.bat
│   └── settings.gradle.kts