{"id":16358358,"url":"https://github.com/linguini1/typetracker","last_synced_at":"2026-04-28T21:33:25.262Z","repository":{"id":122591654,"uuid":"440588462","full_name":"linguini1/typeTracker","owner":"linguini1","description":"Analyzes typing data from Keybr.com and displays it graphically according to user preference. Involves polynomial interpolation using Numpy and graph visuals using Matplotlib. Console interface or CLI usage available.","archived":false,"fork":false,"pushed_at":"2023-01-06T19:43:16.000Z","size":169,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-21T11:14:04.351Z","etag":null,"topics":["command-line","data-visualization","graphing","keyboard","keybr","matplotlib","numpy","polynomial-interpolation","python","statistics","typing","typing-practice"],"latest_commit_sha":null,"homepage":"","language":"Python","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/linguini1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2021-12-21T16:51:14.000Z","updated_at":"2022-09-03T11:54:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d8f5933-8626-4b8b-b28d-0b9186a02753","html_url":"https://github.com/linguini1/typeTracker","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"3e834c25a43e803e83855b28df67bfc4d9775908"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/linguini1/typeTracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linguini1%2FtypeTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linguini1%2FtypeTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linguini1%2FtypeTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linguini1%2FtypeTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linguini1","download_url":"https://codeload.github.com/linguini1/typeTracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linguini1%2FtypeTracker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32400863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"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":["command-line","data-visualization","graphing","keyboard","keybr","matplotlib","numpy","polynomial-interpolation","python","statistics","typing","typing-practice"],"created_at":"2024-10-11T02:05:24.563Z","updated_at":"2026-04-28T21:33:25.247Z","avatar_url":"https://github.com/linguini1.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"left\" src=\"https://i.ibb.co/NsS0wDk/type-Tracker-Cap.png\" width=\"75\" height=\"75\" style=\"padding: 10px\"/\u003e\n\u003ch1\u003eTypeTracker\u003c/h1\u003e\n\u003ch3\u003eMatteo Golin\u003c/h3\u003e\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-indigo.svg)](https://opensource.org/licenses/MIT)\n\nTypeTracker is a data analysis software that allows for easy interpretation of statistics provided by \n[Keybr][1].\n\n\n## Downloading Keybr Stats\n- Go to [Keybr.com][1].\n- Create an account where your data will be saved.\n- Start typing to collect your data!\n- Click on [\"Profile\"][2] and scroll to the bottom of the page.\n- Click download data and save the file to the 'resources' folder of this repository.\n- DO NOT change the file name, leave it as 'typing-data.json'.\n\n## Software Usage\nThis software can be used via a user interface in the console window, or can be used via commandline arguments.\n\nUsers may pick from a set of different data types to plot on the X or Y axis to analyze their data in many ways.\nAdditionally, the user can choose a date range from which their data will be pulled, so not all data is plotted every\ntime. Finally, the user can pick the degree of the polynomial used to interpret the trend of their data.\n\nThe same data cannot be plotted on the X or Y, and at least one of the upper or lower values of the data range must be\nfound in the data from Keybr.\n\n### Command Line Usage\nThe following command will show the documentation for command line arguments.\n```\npy interface.py -h\n```\n\n### Example Plot\nThe following image shows an example plot of my typing speed when I first started using Keybr.com. It plots my average \nWPM against the date it was recorded, including a quadratic interpolation trend-line.\n![Example Plot](./docs/examplePlot.png)\n\n### Console Interface Usage\n- When the program is run, the user's all-time statistics will be displayed.\n- The user will be prompted to select which values should be plotted along the X and Y axes.\n- The user will be prompted to enter a range of dates from which data will be selected.\n- Finally, the user will be prompted to select the degree of the polynomial that will be used to interpolate the data.\n  - It is recommended to use a degree of either 1 or 2, 1 for a trend line and 2 for a curve of best fit.\n\nThe graph will then be displayed until the user closes it, at which point they can press 'Enter' to continue plotting\ndata, or type 'Q' to quit.\n\n## Installation\nPython 3.10.0 or later must be installed.\nThis software makes use of the following modules:\n- Matplotlib\n- Numpy\n\n\u003c!--Links--\u003e\n[1]: https://www.keybr.com/\n[2]: https://www.keybr.com/profile","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinguini1%2Ftypetracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinguini1%2Ftypetracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinguini1%2Ftypetracker/lists"}