/alreadyme-desktop

Kotlin Multiplatform App for generating README with AI

Primary LanguageKotlinApache License 2.0Apache-2.0

ALREADYME.md Desktop Application

kotlin-version ktor-client compose-multiplatform license FOSSA Status CodeFactor

bootstrap-final

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

  • run is used to run an app locally. You need to define a mainClass — 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, use runDistributable instead.
  • createDistributable is used to create a prepackaged application image a final application image without creating an installer.
  • runDistributable is 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.

architecture

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:

overview

  • 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


Supported OS

Windows Linux MacOS

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.