alreadyme-desktop
alreadyme-desktop copied to clipboard
Kotlin Multiplatform App for generating README with AI
ALREADYME.md Desktop Application

ALREADYME is a multiplatform desktop application which create a README.md through only a URL of github repository. While generating README.md, it shows the creation process in real time using WebSockets. Also you can directly download generated README.md and pull request it to target repository.
How to build
If you want to build this project on your local, you only need following:
- Gradle 7.3.3
- JDK >= 16
Run execution
You can execute this project or create binary file through following commands:
On Windows
./gradlew run
./gradlew createDistributable
./gradlew runDistributable
On Linux or MacOS
gradle run
gradle createDistributable
gradle runDistributable
runis used to run an app locally. You need to define amainClass— an fq-name of a class, containing the main function. Note, that run starts a non-packaged JVM application with full runtime. This is faster and easier to debug, than creating a compact binary image with minified runtime. To run a final binary image, userunDistributableinstead.createDistributableis used to create a prepackaged application image a final application image without creating an installer.runDistributableis used to run a prepackaged application image.
Available formats
The following formats available for the supported operating systems:
- macOS —
.dmg,.pkg - Windows —
.exe,.msi - Linux —
.deb,.rpm
If you need more help for native distributions and local execution, please check this.
Architectures
ALREADYME is based on the MVVM architecture and the Repository pattern, which follows the Google's official architecture guidance.

The overall architecture of ALREADYME is composed of two layers; the UI layer and the Data layer. Each layer has dedicated components and they have each different responsibilities, as defined below:

- Each layer follows unidirectional event/data flow; the UI layer emits user events to the data layer, and the data layer exposes data as a stream to other layers.
- The data layer is designed to work independently from other layers and must be pure, which means it doesn't have any dependencies on the other layers.
With this loosely coupled architecture, you can increase the reusability of components and scalability of your app.
Tech stack & Open-source libraries
- 100% Kotlin based.
- Coroutines + Flow for asynchronous.
- Compose Multiplatform for desktop application UI.
- Ktor for HTTP & WebSockets client.
- Dagger for dependency injection.
- Kotlin multiplatform markdown renderer
Supported OS
There may be minor issues with OS other than Windows.
Service repositories
License
Designed and developed by 2022 YJYOON (Yeojun Yoon)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.