{"id":26222252,"url":"https://github.com/walles/catiplicator","last_synced_at":"2026-04-13T18:33:14.561Z","repository":{"id":149403344,"uuid":"153002475","full_name":"walles/catiplicator","owner":"walles","description":"Multiplication teaching app for children (or whoever wants to learn)","archived":false,"fork":false,"pushed_at":"2019-01-23T14:44:56.000Z","size":19378,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-12T21:35:34.544Z","etag":null,"topics":["android","educational"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/walles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-10-14T17:54:33.000Z","updated_at":"2019-01-23T14:44:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"38173286-4dd4-45e1-8129-07ab654eba92","html_url":"https://github.com/walles/catiplicator","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/walles/catiplicator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walles%2Fcatiplicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walles%2Fcatiplicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walles%2Fcatiplicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walles%2Fcatiplicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/walles","download_url":"https://codeload.github.com/walles/catiplicator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/walles%2Fcatiplicator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31766473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"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":["android","educational"],"created_at":"2025-03-12T16:51:39.733Z","updated_at":"2026-04-13T18:33:14.555Z","avatar_url":"https://github.com/walles.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multiplication Trainer\n\n# Installing\n[Get it on Google Play](https://play.google.com/store/apps/details?id=com.gmail.walles.johan.catiplicator),\nor [build it from source and install it over USB](https://developer.android.com/studio/).\n\n# Releasing a new Version\n* Update `VersionName` and `VersionCode` in `/app/build.gradle`\n* Commit this change\n* `git push`\n* `git tag \u003cnew version name\u003e`, do `git tag | cat` for inspiration\n* In Android Studio, do *Build* / *Generate Signed APK...*\n* Upload the new APK to [Google Play](https://play.google.com/apps/publish)\n* `git push --tags`\n\n## Design\n* :white_check_mark: Welcome screen when starting\n* :white_check_mark: Each run requires the user to press a button saying: \"Level N\"\n* :white_check_mark: Each level consists of 10 different challenges\n* :white_check_mark: Challenges are picked by the app so that the player succeeds 80% of the time\n* :white_check_mark: On player faults, the app lowers the player level by 1.00\n* :white_check_mark: On player successes, the app raises the player level by 0.25\n* :white_check_mark: Free text answers\n* On a wrong answer the player is shown an explanation\n  * As an NxM grid?\n  * For 5x3, show `5x1=5`, `5x2=10`, `5x3=15`, iterate the lowest number?\n  * For 5x3, show `5=5`, `5+5=10`, `5+5+5=15`?\n  * Specific tips on certain challenges?\n* On correct answer, flash screen in green + sound effect / speech\n* After each round the user is presented with stats and praise,\n  especially if they beat a problem they initially failed on\n* :white_check_mark: The presented level never goes down. Internally the level might though.\n* :white_check_mark: Challenges are rated by difficulty, not by which table they have\n* :white_check_mark: The app keeps track of failed challenges:\n  * One failure is compensated by two successes\n  * Two or more failures are compensated by three successes\n* Recently failed challenges should come up more often, it's better that the user\n  learns one challenge properly than practices many\n* When the user becomes good enough, start timing the rounds!\n* Everything is cat themed\n\n## Credits\n* Launch screen cat: \u003chttps://www.pexels.com/photo/adorable-angry-animal-animal-portrait-208984/\u003e\n* In-game cat: \u003chttps://www.pexels.com/photo/brown-tabby-kitten-1097288/\u003e\n* Level-finished cat: \u003chttps://www.pexels.com/photo/beige-cat-with-gold-colored-crown-1314550/\u003e\n* Correct-answer ding: \u003chttps://freesound.org/people/xtrgamr/sounds/441630/\u003e\n* Level-finished cheer: \u003chttps://www.freesoundeffects.com/free-track/happykids-426842/\u003e\n* Level-finished applause: \u003chttps://www.freesoundeffects.com/free-track/clapping-426830/\u003e\n* Music: \u003chttps://www.bensound.com/royalty-free-music/track/sweet\u003e\n* Icon kitten outline: \u003chttps://pixabay.com/sv/kattunge-sitter-silhouette-katt-1129027/\u003e\n\n## TODO Misc\n* Ensure we're made for tablets according to Google Play\n* Add meow sound effect when starting a new level\n* Show progress bar during the level\n* Set up CI on pushes, running at least the JUnit tests\n* If the player defeats a previously-failed question, say so in the\n  level-finished screen\n* Use Comic Sans as a font everywhere?\n\n### DONE\n* Create a Game Activity\n* Add suitable layout to the Game Activity\n* Set a good font size for Game Activity\n* Fix Game Activity text alignment (for both `TextView` and `EditText`)\n* Move text up when keyboard appears\n* Start keyboard automatically in the Game Activity\n* Add random challenges\n* Show toast with correct or wrong\n* Accept result when enough digits typed, no need for pressing Return\n* Add a level-starting screen with a start button\n* Finish the level after 10 questions\n* Add a level summary screen\n* Enable player to start a new level after the summary screen\n* Maintain user state throughout the app\n* Add failed challenges to user state\n* Add `Timber` and start logging\n* Create a challenge suggester that suggests challenges based on:\n  * level context (what we've used in the current round), avoid repetition\n  * player context (skill level, failures)\n* On success, play encouraging sound effect\n* On failure, open a dialog saying:\n  \"The answer is 5*4=20, type it here: 5x4=__\". Close the dialog when the\n  user has typed the correct answer\n* Pause a bit after each completed answer to give the user time to\n  understand whether they passed or failed\n* Add applause sound to level-finished screen. One for 10/10, another\n  one for 9/10 or less\n* Put cat picture as background for level-launching screen\n* Put cat picture as background for in-game screen\n* Put cat picture as background for level-finished screen\n* Test what happens when skill level goes above difficulty of available\n  assignments. Manually tested, but still...\n* Fix app orientation to portrait\n* Localize into Swedish\n* Test cat pictures, text and speech bubbles on multiple resolutions\n* Test cat pictures, text and speech bubbles on multiple aspect ratios\n* Fill in `credits.txt`\n* Rename to \"Catiplicator\"\n* Add music to the game activity\n* Add music to the launch screen\n* Add music to the finished screen\n* Try using `SoundPool` to play sound effects, validate on Melvin's tablet\n* Add an icon\n* Add God Rays from the x in the icon\n* Ignore back button presses in the \"Here's the correct answer, type it\n  here\" dialog.\n* Don't close \"Type correct answer here\" dialog if user clicks outside\n  of it.\n* Back button in the Level-Finished activity should ask user whether to\n  quit the whole thing.\n* Create a Feature Graphics\n* Set a license\n* Publish on Google Play\n* Update `README.md` with a link to Google Play\n* Make a less boring feature graphic\n* Add tablet screenshots\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalles%2Fcatiplicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwalles%2Fcatiplicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwalles%2Fcatiplicator/lists"}