{"id":24167298,"url":"https://github.com/cyrus243/timer","last_synced_at":"2026-05-13T09:08:28.515Z","repository":{"id":268813627,"uuid":"903563054","full_name":"Cyrus243/Timer","owner":"Cyrus243","description":"This project is an experimental web application built using Kotlin Multiplatform and WebAssembly. The app is a flexible and nice online timer with countdown and chronometer features. It provides a smooth and fast experience.","archived":false,"fork":false,"pushed_at":"2024-12-19T04:06:57.000Z","size":16951,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T09:14:46.537Z","etag":null,"topics":["compose-multiplatform","kotlin-coroutines","kotlin-multiplatform","wasm","wasm-example"],"latest_commit_sha":null,"homepage":"https://cyrus243.github.io/Timer/","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/Cyrus243.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-12-14T23:20:51.000Z","updated_at":"2024-12-23T23:30:13.000Z","dependencies_parsed_at":"2024-12-19T04:35:46.235Z","dependency_job_id":"22f9f07a-2f27-4fe6-92e0-dea4293471ca","html_url":"https://github.com/Cyrus243/Timer","commit_stats":null,"previous_names":["cyrus243/timer"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cyrus243/Timer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrus243%2FTimer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrus243%2FTimer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrus243%2FTimer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrus243%2FTimer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cyrus243","download_url":"https://codeload.github.com/Cyrus243/Timer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyrus243%2FTimer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32975260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T06:31:55.726Z","status":"ssl_error","status_checked_at":"2026-05-13T06:31:51.336Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-multiplatform","kotlin-coroutines","kotlin-multiplatform","wasm","wasm-example"],"created_at":"2025-01-12T21:13:00.423Z","updated_at":"2026-05-13T09:08:28.499Z","avatar_url":"https://github.com/Cyrus243.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## About\nThis project is an experimental web application built using Kotlin Multiplatform and WebAssembly. The app is a flexible and nice online timer with countdown and chronometer features. It provides a smooth and fast experience.\n\n## Key Features\n\n- **Countdown Timer:** Set a specific time and watch it count down to zero, with smooth animations and precise timekeeping.\n- **Chronometer:** Utilize the app as a stopwatch to track elapsed time with options to start, pause, and reset.\n- **Customizable Titles and Descriptions:** Add meaningful context to your timer by setting a title and description for each session.\n- **Customizable Background Images:** Personalize the timer with your own images or choose from a predefined selection to match your style.\n- **Customizable Timer Styles:** Tailor the appearance of the timer, including fonts, colors, and layouts, to create a unique aesthetic.\n\n## Technology Stack\n\n[![Kotlin][kotlin-image]][kotlin-url]\n[![Wasm][wasm-image]][wasm-url]\n[![coroutine][coroutines-image]][coroutines-url]\n\n- **Kotlin:** The primary programming language used for this project.\n- **Compose Multiplatform:** for UI\n- **ViewModel:** for managing UI-related data in a lifecycle-conscious way.\n- **kotlinx.coroutines:** for managing asynchronous programming and coroutines in Kotlin.\n- **Kamel:** to load images from url.\n\n## Screenshot\n\n![timer screenshot](screenshots/screenshot1.png)\n![timer screenshot](screenshots/screenshot2.png)\n![timer screenshot](screenshots/screenshot3.png)\n\n## Motivation\nThis project was created as a learning exercise to explore and understand the capabilities of KMM/WASM. The goal was to gain hands-on experience with modern web and cross-platform development technologies while building a functional and beautiful application.\n## Live Demo\nCheck out the live demo here: [Demo](https://cyrus243.github.io/Timer/)\n\n## Getting Started\n\n#### 1. Clone the repository\n\n```shell\ngit clone https://github.com/Cyrus243/Timer.git\n```\n\n#### 2. open in the latest version of intelli J IDEA ultimate\n\n#### 3. Run the app on your device or emulator\nYou can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task.\n\n\n## Contributing \nContributions are welcome! If you have ideas or improvements, feel free to open an issue, provide valuable feedback or submit a pull request.\n\n\n\n\n\n\n[kotlin-image]: https://img.shields.io/badge/kotlin-multiplatform?style=for-the-badge\u0026logo=kotlin\u0026color=%2326282c\n[wasm-image]: https://img.shields.io/badge/wasm-2?style=for-the-badge\u0026logo=webassembly\u0026color=%23eaecf0\n[coroutines-image]: https://img.shields.io/badge/kotlinx.Coroutines-3?style=for-the-badge\u0026logo=Coroutines\u0026color=%2326282c\n\n\n[kotlin-url]: https://kotlinlang.org/docs/wasm-overview.html\n[wasm-url]: https://webassembly.org/\n[coroutines-url]: https://kotlinlang.org/docs/coroutines-overview.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrus243%2Ftimer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyrus243%2Ftimer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyrus243%2Ftimer/lists"}