{"id":13765292,"url":"https://github.com/tkovs/pomodoro","last_synced_at":"2025-08-20T20:31:16.005Z","repository":{"id":64440347,"uuid":"307115403","full_name":"tkovs/pomodoro","owner":"tkovs","description":"Simple pomodoro application. Written in ReScript and ReactJS.","archived":false,"fork":false,"pushed_at":"2021-05-15T18:21:28.000Z","size":820,"stargazers_count":23,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-01T16:19:57.355Z","etag":null,"topics":["bucklescript","pomodoro","react","react-testing-library","reactjs","reasonml","rescripts"],"latest_commit_sha":null,"homepage":"http://pomodoro.tkovs.com","language":"ReScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tkovs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-25T14:20:22.000Z","updated_at":"2024-11-15T22:51:30.000Z","dependencies_parsed_at":"2023-01-09T13:02:34.530Z","dependency_job_id":null,"html_url":"https://github.com/tkovs/pomodoro","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/tkovs/pomodoro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkovs%2Fpomodoro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkovs%2Fpomodoro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkovs%2Fpomodoro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkovs%2Fpomodoro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tkovs","download_url":"https://codeload.github.com/tkovs/pomodoro/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tkovs%2Fpomodoro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271378680,"owners_count":24749192,"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","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bucklescript","pomodoro","react","react-testing-library","reactjs","reasonml","rescripts"],"created_at":"2024-08-03T16:00:36.557Z","updated_at":"2025-08-20T20:31:15.517Z","avatar_url":"https://github.com/tkovs.png","language":"ReScript","funding_links":[],"categories":["ReScript","Reason"],"sub_categories":["Example Apps"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  Pomodoro\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n  Pomodoro App with Rescript and React.\n\u003c/h4\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/tkovs/reason-pomodoro.svg\"\u003e\n\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/tkovs/reason-pomodoro.svg\"\u003e\n  \n  \u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/m/tkovs/reason-pomodoro.svg\"\u003e\n\n  \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/tkovs/reason-pomodoro.svg\"\u003e\n  \u003cbr /\u003e\n  \u003ca href=\"https://github.com/tkovs/reason-pomodoro/commits/master\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/tkovs/reason-pomodoro.svg\"\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://github.com/tkovs/reason-pomodoro/issues\"\u003e\n    \u003cimg alt=\"Repository issues\" src=\"https://img.shields.io/github/issues/tkovs/reason-pomodoro.svg\"\u003e\n  \u003c/a\u003e\n\n  \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/tkovs/reason-pomodoro.svg\"\u003e\n  \u003ca href=\"https://travis-ci.org/github/tkovs/pomodoro\"\u003e\n    \u003cimg src=\"https://travis-ci.org/tkovs/pomodoro.svg?branch=master\" alt=\"Build Status\" /\u003e\n  \u003c/a\u003e\n\n  \u003cbr /\u003e\n  \u003cimg alt=\"Build status\" src=\"https://api.netlify.com/api/v1/badges/c3404df3-bf7b-45b7-bc01-62175b0423d1/deploy-status\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#rocket-technologies\"\u003eTechnologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#information_source-how-to-run\"\u003eHow To Run\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#runner-next-steps\"\u003eNext Steps\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#camera-screenshots\"\u003eScreenshots\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#memo-license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n## :rocket: Technologies\n\nThis project was developed with the following technologies:\n\n- [ReactJS](https://reactjs.org)\n- [Rescript](https://rescript-lang.org/)\n- [Reason UIKit](https://github.com/tkovs/reason-uikit)\n- [Testing Library](https://testing-library.com)\n- [Sentry](https://sentry.io/)\n\n## :information_source: How To Run\n\nTo clone and run this application, you'll need [Git](https://git-scm.com), [Node.js](https://nodejs.org/en/) + [Yarn](https://yarnpkg.com/) (you can use npm instead) installed on your computer. From your command line:\n\n```bash\n# Clone this repository\n$ git clone https://github.com/tkovs/reason-pomodoro\n# Or\n$ gh repo clone tkovs/reason-pomodoro\n\n# Go into the repository\n$ cd reason-pomodoro\n\n# Install dependencies\n$ yarn\n\n# Run the app on two terminals\n$ yarn start\n$ yarn server\n\n# Run the tests\n$ yarn test\n\n# Update snapshots\n$ yarn test -u\n```\n\n## :runner: Next steps\n\n- [x] Create Reason React project\n- [x] Config webpack and babel\n- [x] Create state and reducer\n- [x] Implement layout desktop\n- [x] Implement layout mobile\n- [x] Handle state\n- [x] Add unit tests for timer feature\n- [x] Add unit tests for reset feature\n- [x] Add unit tests for play feature\n- [x] Add unit tests for pause feature\n- [x] Add unit tests for jump feature\n- [x] Add unit tests for session feature\n- [x] Add unit tests for settings feature\n- [x] Add unit tests for reducer\n- [x] Add error monitoring by using [Sentry](https://sentry.io/)\n- [ ] Add cypress tests and configure GH Actions for pull requests\n- [x] [Deploy](http://pomodoro.tkovs.com)\n- [ ] Migrate html to [Reason UIKit](https://github.com/tkovs/reason-uikit)\n\n## :camera: Screenshots\n\n### Pomodoro\n\n![image](https://user-images.githubusercontent.com/8717661/98301198-266bfa00-1f99-11eb-83b8-f11ec4efa93d.png)\n\n### Settings\n\n![image](https://user-images.githubusercontent.com/8717661/98301628-d5103a80-1f99-11eb-8ecd-cfe2a4418082.png)\n\n## :memo: License\n\nThis project is under the MIT license. See the [LICENSE](https://github.com/tkovs/reason-pomodoro/blob/master/LICENSE) for more information.\n\n---\n\nMade with ♥ by tkovs :wave: [Get in touch!](https://www.linkedin.com/in/tkovs/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkovs%2Fpomodoro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftkovs%2Fpomodoro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftkovs%2Fpomodoro/lists"}