Skip to content

Commit

Permalink
Chore: Update readme (#23)
Browse files Browse the repository at this point in the history
* Readme update.

* Update readme.

* Update readme.
  • Loading branch information
TimOrtel authored Dec 13, 2023
1 parent bf16020 commit fe0b51e
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

FROM thyrlian/android-sdk:9.1 as builder

RUN sdkmanager "build-tools;34.0.0" "build-tools;30.0.3" "platforms;android-34" "platform-tools" "emulator"
RUN sdkmanager "build-tools;33.0.1" "build-tools;30.0.3" "platforms;android-34" "platform-tools" "emulator"

WORKDIR /app
COPY gradlew gradlew
Expand Down
28 changes: 28 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# Artemis Android
The native android client for Artemis, an interactive learning platform with individual feedback.

## Screenshots
<img src="playStoreScreenshots/smartphone/dashboard.png" width="300"/>
<img src="playStoreScreenshots/smartphone/exerciseList.png" width="300"/>
<img src="playStoreScreenshots/smartphone/lecture.png" width="300"/>
<img src="playStoreScreenshots/smartphone/quiz.png" width="300"/>
<img src="playStoreScreenshots/smartphone/conversationOverview.png" width="300"/>

## Project structure
The project structure is heavily inspired by [nowinandroid](https://github.com/android/nowinandroid).
Expand All @@ -10,6 +18,7 @@ The modularization is split up into two parent modules:
- common: Code used in every other module
- data: Request and send data over the network
- datastore: Permanently store data in the application, e.g. access tokens.
- device: Provides information about the status of the device, e.g. network connectivity.
- model: Represent the data sent by the server, e.g. exercises, lectures. Uses kotlinx serialization.
- ui: Common ui needed by more than one feature module.
- websocket: Receive updates from the server.
Expand All @@ -20,6 +29,25 @@ The following libraries and tools are utilized:
- Jetpack Compose: UI
- Koin: Dependency Injection
- Kotlin Flows: Reactive programing
- AndroidX DataStore: Persistently store key-value pairs

## Development setup
To run this project, you need a recent version of [Android Studio](https://developer.android.com/studio) or IntelliJ (not guaranteed to work) and the AndroidSDK installed.
If you want to run the end-to-end tests, you will also need [docker](https://www.docker.com/).

## Build flavors
This project is configured to support multiple [flavor dimensions](https://developer.android.com/build/build-variants):
- TUM or unrestricted: For TUM builds, users are forced to connect to the [TUM Artemis instance](https://artemis.cit.tum.de).
- Beta or production: In beta builds, an extra label and dialog is displayed to signal that the build may contain bugs.

## Tests
We use both unit tests and end-to-end integration tests. Before running the end-to-end tests, consider the licenses section in this readme.
- To run the unit tests, execute `./gradlew test -Dskip.unit-tests=false -Dskip.e2e=true -Dskip.debugVariants=true -Dskip.flavor.unrestricted=true -Dskip.flavor.beta=true`
- To run the end-to-end tests, execute `docker compose -f docker/e2e-tests.yml up artemis-android-e2e`

## Play store screenshots
Screenshots can be generated using preview-composables in the `debug` source sets. They are annotated with `@PlayStoreScreenshots`. To get the screenshots, right click the rendered preview
in AndroidStudio and select copy-image.

## License
By building the dockerfile or using its derived images, you accept the terms in the following license agreements:
Expand Down

0 comments on commit fe0b51e

Please sign in to comment.