{"id":15040863,"url":"https://github.com/kasem-sm/slimekt","last_synced_at":"2025-04-04T17:10:11.113Z","repository":{"id":37014810,"uuid":"456508892","full_name":"kasem-sm/SlimeKT","owner":"kasem-sm","description":"An article sharing platform where you can personalize, subscribe to your favorite topics, get daily-read reminders, etc. App built using Kotlin, Dagger Hilt, Room Database, Coroutines, Flow, AndroidX Glance, WorkManager, Coil etc.","archived":false,"fork":false,"pushed_at":"2023-03-21T19:00:40.000Z","size":28621,"stargazers_count":609,"open_issues_count":26,"forks_count":53,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-04-04T17:10:02.668Z","etag":null,"topics":["android-app","hacktoberfest","hacktoberfest2022","jetpack-compose","kotlin","ktor-client","modularization","mvvm-architecture","room-database"],"latest_commit_sha":null,"homepage":"https://kasem-sm.github.io/SlimeKT","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kasem-sm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-07T13:05:30.000Z","updated_at":"2025-04-01T13:05:21.000Z","dependencies_parsed_at":"2024-10-01T03:01:05.332Z","dependency_job_id":"addf7391-b860-493f-93be-b762decb496d","html_url":"https://github.com/kasem-sm/SlimeKT","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasem-sm%2FSlimeKT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasem-sm%2FSlimeKT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasem-sm%2FSlimeKT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasem-sm%2FSlimeKT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kasem-sm","download_url":"https://codeload.github.com/kasem-sm/SlimeKT/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217222,"owners_count":20903009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-app","hacktoberfest","hacktoberfest2022","jetpack-compose","kotlin","ktor-client","modularization","mvvm-architecture","room-database"],"created_at":"2024-09-24T20:45:11.625Z","updated_at":"2025-04-04T17:10:11.093Z","avatar_url":"https://github.com/kasem-sm.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Header Image](/docs/assets/header.png)\n\n[![Slime Build (Android)](https://github.com/kasem-sm/SlimeKT/actions/workflows/android_action.yml/badge.svg)](https://github.com/kasem-sm/SlimeKT/actions/workflows/android_action.yml)\n[![Slime Build (API)](https://github.com/kasem-sm/SlimeKT/actions/workflows/api_action.yml/badge.svg)](https://github.com/kasem-sm/SlimeKT/actions/workflows/api_action.yml)\n\n[![GitHub stars](https://img.shields.io/github/stars/kasem-sm/SlimeKT?style=social)](https://github.com/kasem-sm/SlimeKT/stargazers)\n[![GitHub watchers](https://img.shields.io/github/watchers/kasem-sm/SlimeKT?style=social)](https://github.com/kasem-sm/SlimeKT/watchers)\n\n[![Android Weekly](https://img.shields.io/badge/Android%20Weekly-%23515-blue)](https://androidweekly.net/issues/issue-515)\n[![Google Dev Library](https://img.shields.io/badge/Google%20Dev%20Library-Android-blue)](https://devlibrary.withgoogle.com/products/android/repos/kasem-sm-SlimeKT)\n\n# Disclaimer\nThis is an over-engineered project.\n\n## Introduction 🙋‍♂️\n\nAn article sharing platform where you can _**personalize, subscribe to your favorite topics, get\ndaily-read reminders, explore new authors, and share your articles**_. App built using Kotlin, Dagger Hilt, Room Database, Coroutines, Flow, AndroidX Glance, WorkManager, Coil etc.\u003c/b\u003e\n\n## Documentation 📚\n\n[![Documentation](https://img.shields.io/badge/Visit-blue?style=for-the-badge)](https://kasem-sm.github.io/SlimeKT)\n\nWe have prepared a detailed guide on every feature, API route, and project structure. Please\nvisit [here](https://kasem-sm.github.io/SlimeKT) to know more about the same. Additionally, every\nmajor folder, such as [`/api`](/api) and [`/features`](/features), contains short documentation in\nthe Github repository itself.\n\n## Repository overview 📂\n\nSlimeKT has its backend built with Ktor. The folder [`/api`](/api) consists of our backend deployed at [Railway](https://railway.app). SlimeKT Android application resides inside of the [`/app`](/app) folder.\n\n## App Architecture Diagram\n\nIt follows the recommended app architecture as stated in\nofficial [Android documentation](https://developer.android.com/jetpack/guide)\n\n![App Architecture](/docs/assets/app_architecture.svg)\n\n## Sample, Screenshots and Demo 📱\n\n[![Slime APK](https://img.shields.io/github/v/release/kasem-sm/slimekt?color=8D0AF2\u0026label=Download\u0026logo=android\u0026style=for-the-badge)](https://github.com/kasem-sm/SlimeKT/releases)\n\n![Screenshot Board 1](/docs/screenshots/board_1.png)\n\n![Screenshot Board 2](/docs/screenshots/board_2.png)\n\nFor more screenshots and screen-recording\ndemo, [please visit our documentation](https://kasem-sm.github.io/SlimeKT).\n\n## What's next ✨\n\nSlimeKT is a _Work In Progress_ project and there are several features/ideas which are yet to be\nimplemented. You can help us on our journey by contributing your skills. Please checkout\nour [Contribution Guide](https://github.com/kasem-sm/SlimeKT#contribution-guide-and-contributors-%EF%B8%8F)\nfor more.\n\n## Tech stack / Miscellaneous Features 🚀\n\n- \u003cb\u003eKotlin, Jetpack Compose, Work Manager, Glance API, Material You, Coroutines, Flow, Accompanist, Ktor, Room Database, Coil, Dagger Hilt, Mockk etc.\u003c/b\u003e\n- **[Compose Destinations:](https://github.com/raamcosta/compose-destinations)** Annotation processing library for type-safe Jetpack Compose navigation with no boilerplate.\n- **Observer Pattern:** Data from the cache would be shown while new data is fetched from the\n  server. Newly retrieved data gets updated immediately on the screen.\n- **WorkManager:** App uses WorkManager API to update user's subscriptions and to fetch Daily Read\n  articles.\n- **AndroidX Glance:** Daily Read Widget with the power of Jetpack Compose.\n- **Material You:** On Android 12 and above, you can have custom theme based on your device\n  wallpaper.\n\nPlease visit [the documentation of this project](https://kasem-sm.github.io/SlimeKT) for detailed\ninformation.\n\n## Project Setup Guide ⚒\n\n#### Android App\n\nYou need to have [Android Studio](https://developer.android.com/studio) Bumblebee or Dolphin to set\nup this project locally. After downloading all the requirements, please import the project into\nAndroid Studio, build the project, and click Run.\n\n#### Backend (API)\n\nYou need to have [IntelliJ IDEA](https://www.jetbrains.com/idea/download/#section=windows)\nand [MongoDB Compass](https://www.mongodb.com/products/compass) installed. After downloading all the\nrequirements, please import the [`/api`](/api) module into IntelliJ IDEA, build the project and\nclick the Run icon beside `main` function in `Application.kt` file.\n\n## Test Cases (Android app)\n\nCurrent Testing status - https://kasem-sm.github.io/SlimeKT/tests/status/\n\n## Contribution Guide and Contributors 👷‍♂️\n\nThere are no special rules for contributing your expertise and making the open-source community more\npowerful. Just don't forget to file an issue or start a discussion so that I may not be surprised\nwhen you create a pull request. Running `spotlessApply` before creating a pull request would be\n_cherry on the cake_.\n\n* Special thanks to our contributors:\n    - [List of Contributors](https://github.com/kasem-sm/SlimeKT/graphs/contributors)\n\n## Medium Articles related to this project 🖋\n\n1. [SlimeKT - Kotlin Powered open source project. (Android app with Ktor backend)](https://medium.com/@kasem.sm/slimekt-136a56864e57)\n2. Android’s IME Actions: Don’t ignore them. [Read here](https://proandroiddev.com/androids-ime-actions-don-t-ignore-them-36554da892ac)\n3. Create Animated PlaceHolder for your Jetpack Compose text fields [Read here](https://medium.com/@kasem.sm/animated-placeholder-with-jetpack-compose-60c85547b47a)\n4. When Jetpack's Glance met his fellow worker, WorkManager [Read Here](https://medium.com/@kasem.sm/when-jetpacks-glance-met-his-fellow-worker-work-manager-18cf19eff983)\n\nMore articles by [_kasem-sm_](https://medium.com/@kasem.sm) on Medium.\n\n## Find this project useful? 💖\n\nSupport it by starring this repository. Join our [Stargazers](https://github.com/kasem-sm/SlimeKT/stargazers) team!\n\n## Contact 🤙\n\nDirect Messages on [My Twitter](https://twitter.com/KasemSM_) are always open. If you have any\nquestions related to SlimeKT or Android development, ping me anytime!\n\n## Credits 💎\n\n- [**Tivi**](https://github.com/chrisbanes/tivi) by [chrisbanes](https://github.com/chrisbanes) - A\n  divine project for me to explore. I refer to this project as Gold 🥇.\n- [**Gabor Varadi**](https://twitter.com/Zhuinden) - He is always willing to answer my questions. A\n  great man and a blessing to the Android community (AKA, the `SavedStateHandle` preacher).\n- [**Doris Liu**](https://twitter.com/doris4lt) and [**Manuel\n  Vivo**](https://twitter.com/manuelvicnt) - They always help review my code snippets and add their\n  value to them.\n- [**Hadi**](https://twitter.com/hadilq) - Assisted me in improving the modularized structure of this project.\n- [**Marcel**](https://twitter.com/marxallski) - His [suggestions](https://github.com/kasem-sm/SlimeKT/pull/148) helped me to improve the Glance widget.\n\n## License\n\n```\nCopyright 2022 Kasem S.M\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasem-sm%2Fslimekt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasem-sm%2Fslimekt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasem-sm%2Fslimekt/lists"}