{"id":22662889,"url":"https://github.com/ps-sujith/mybooksapidemo","last_synced_at":"2025-03-29T09:13:48.556Z","repository":{"id":266238312,"uuid":"896609427","full_name":"ps-sujith/MyBooksApiDemo","owner":"ps-sujith","description":"A sample app to showcase the Open Library API, built in Kotlin using Jetpack Compose and architecture components, following Clean Code principles and modularization.","archived":false,"fork":false,"pushed_at":"2024-12-03T08:42:15.000Z","size":481,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-29T09:13:44.880Z","etag":null,"topics":["compose","kotlin","kotlinflow","mvvm","retrofit","rxjava","solid-principles","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ps-sujith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-30T20:26:13.000Z","updated_at":"2025-01-28T22:30:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"b9516157-d35e-42d8-b934-1d9b2e30222c","html_url":"https://github.com/ps-sujith/MyBooksApiDemo","commit_stats":null,"previous_names":["ps-sujith/mybooksapidemo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps-sujith%2FMyBooksApiDemo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps-sujith%2FMyBooksApiDemo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps-sujith%2FMyBooksApiDemo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ps-sujith%2FMyBooksApiDemo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ps-sujith","download_url":"https://codeload.github.com/ps-sujith/MyBooksApiDemo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162153,"owners_count":20733357,"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":["compose","kotlin","kotlinflow","mvvm","retrofit","rxjava","solid-principles","unit-testing"],"created_at":"2024-12-09T12:16:22.826Z","updated_at":"2025-03-29T09:13:48.549Z","avatar_url":"https://github.com/ps-sujith.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BOOKS API DEMO\n\n\n\"Android app built with jetpack compose that displays data from the Open Library API. The home screen will show a list of already read books, each featuring an cover , title and author name. When a user selects a book, it will be navigated to a detail screen with more in-depth information about that book. The project  complies to SOLID principles and follow a clean architecture design pattern.\n\"\n\n![photo-collage png (1)](https://github.com/user-attachments/assets/9486af6b-2077-4f21-ad1e-016fa991fd41)\n\n![photo-collage png](https://github.com/user-attachments/assets/b581a52e-fa79-4674-b388-fa8eb61fd255)\n\n## PROJECT SPECIFICATION\n\n### TECH STACK\n* Kotlin\n* Jetpack Compose for the UI\n* Hilt for DI\n* RX Kotlin \u0026 Flow - for making asynchronous calls\n* Retrofit - for networking\n* mockk - for unit testing\n* Coil - Image Loader library.\n* Lottie -  for animation\n\n### API\n* https://openlibrary.org/developers/api\n\n  \n### FEATURES\n* Book List- Lists all the books already read with cover image ,title and author name\n* Book  Details - Displays the details of selected book with the extra details\n\n  \n### ARCHITECTURE \u0026 DESIGN PATTERN\n* SOLID PRINCIPLE - The app follows SOLID design principles to ensure scalability and maintainability.\n* CLEAN CODE ARCHITECTURE -The app's architecture is designed to be clean, separating concerns into distinct layers (e.g., UI, Domain, Data).\n* MODULAR - The app codebase is modularized by layers (UI, Data, Domain), with the Domain module being independent of the other modules.\n* DESIGN PATTERN - Application is developed using Test-Driven Development (TDD) and follows the Model-View-ViewModel (MVVM) design pattern\n\n### IMPROVEMENTS\n* RX kotlin can be optimized for more scalability \n* Furthermore cosmetics and refactoring is an endless thought\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps-sujith%2Fmybooksapidemo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fps-sujith%2Fmybooksapidemo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fps-sujith%2Fmybooksapidemo/lists"}