{"id":21006205,"url":"https://github.com/derlin/reading-stats","last_synced_at":"2025-06-27T20:37:14.121Z","repository":{"id":151664440,"uuid":"502306262","full_name":"derlin/reading-stats","owner":"derlin","description":"A react app to visualize my reading stats. I try to read every day for 10 minutes since May 2020!","archived":false,"fork":false,"pushed_at":"2025-06-15T18:07:07.000Z","size":57997,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-15T19:01:27.518Z","etag":null,"topics":["danfojs","plotlyjs","react","reading","visualization"],"latest_commit_sha":null,"homepage":"https://derlin.github.io/reading-stats/","language":"JavaScript","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/derlin.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,"zenodo":null}},"created_at":"2022-06-11T09:34:36.000Z","updated_at":"2025-06-15T18:03:29.000Z","dependencies_parsed_at":"2024-01-27T19:43:23.105Z","dependency_job_id":"444a9f2e-b2ec-4d92-bd74-34cc896bf161","html_url":"https://github.com/derlin/reading-stats","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/derlin/reading-stats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derlin%2Freading-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derlin%2Freading-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derlin%2Freading-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derlin%2Freading-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/derlin","download_url":"https://codeload.github.com/derlin/reading-stats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/derlin%2Freading-stats/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262329924,"owners_count":23294805,"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":["danfojs","plotlyjs","react","reading","visualization"],"created_at":"2024-11-19T08:49:55.112Z","updated_at":"2025-06-27T20:37:14.095Z","avatar_url":"https://github.com/derlin.png","language":"JavaScript","readme":"# My reading statistics\n\n⮕ The App is available at ✨ https://derlin.github.io/reading-stats/ ✨\n\n\n**Table of Contents**\n\n\u003c!-- TOC start --\u003e\n- [Context](#context)\n- [Running the App](#running-the-app)\n  * [Start a development server](#start-a-development-server)\n  * [Build the App](#build-the-app)\n- [Continuous Deployment](#continuous-deployment)\n- [About the code](#about-the-code)\n- [I need you!](#i-need-you)\n\u003c!-- TOC end --\u003e\n\n## Context\n\nIn May 2020, I made a commitment to read for at least 10 minutes every day, and this challenge has had a big impact on my life.\nI have gained self-worth and perspective, I sleep better, and I feel overall happier and more productive.\n\n---\n\n\u003cdiv align=center\u003e\n\n**If you want to know more, I describe my journey here:**\n\n⮕ On my blog: ✨✨✨ [I challenged myself to read every day, and it changed my life 📚](\nhttps://blog.derlin.ch/i-challenged-myself-to-read-every-day-and-it-changed-my-life) ✨✨✨\n\n⮕ On dev.to: ✨ [I challenged myself to read every day, and it changed my life 📚](\nhttps://dev.to/derlin/i-challenged-myself-to-read-every-day-and-it-changed-my-life-2oef) ✨\n\n\u003c/div\u003e\n\n---\n\n\nOne of the most important piece when trying to forge new habits is **Monitoring your progress**:\nbeing able to prove your achievements (or to be reminded of your failures 😉) is the best way to stay motivated.\nMay it be a full-featured habit tracker app or simply an X mark on a calendar, as long as you have a way to \"officialize\" your progress.\n\nThis is why I track my reading habits thoroughly using different tools:\n\n1. I start a timer every time I read using the [Boosted](https://www.boostedproductivity.com) app (one book = one task).\n   Knowing that a clock is ticking helps me focus on the reading, and ignore distractions\n2. I keep a list of books read (along with some notes) using a custom-made Android app called MyBooks,\n   which saves the data as a JSON file in DropBox (I wouldn't remember half of the books I read without it 😆)\n3. I maintain two lists on [GoodReads](https://www.goodreads.com/user/show/101290348-lucy): *want-to-read* and *read*\n4. I publish all my stats online: https://derlin.github.io/reading-stats/.\n\nThis repository is the source code of point 4.\n\n## Running the App\n\nThis project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).\nYou can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).\n\n### Start a development server\n\nIn the project directory,run: `npm start`. At starts the app in the development mode.\nOpen [http://localhost:3000](http://localhost:3000) to view it in your browser.\nNote that the page will reload automatically when you make changes.\n\n### Build the App\n\nRun `npm run build` to build the app for production and output the result into the `build` folder.\nIt correctly bundles React in production mode and optimizes the build for the best performance.\nThe build is minified and the filenames include the hashes. You can then deploy the folder as-is!\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n\n## Continuous Deployment\n\nThe App is hosted on GitHub Pages, and automatically redeployed on every new push to the *main* branch, given the build succeeds\n(see .github/workflows/deploy.yaml).\n\n## About the code\n\nThe code is a React App that heavily uses [Danfo.js](https://danfo.jsdata.org) to manipulate data in the form of DataFrames.\nDanfo.js is currently the best alternative to the excellent Python Pandas library.\nThe plots are created using [Plotly](https://plotly.com/javascript/).\n\nI am using pure Javascript instead of Typescript mostly because of Danfo.js: I couldn't find good type maps.\n\nThe most interesting folder is `src/data`:\n\n1. `all.json` contains one entry for each interval of time I read. It is a nearly exact mapping of the CSV file I export from\n   the [Boosted](https://www.boostedproductivity.com) app (just a tiny bit of filtering and cleanup).\n2. `meta.json` contains the metadata about all the books I read. They are extracted from GoodReads using [goodreads-metadata-fetcher](\n   https://github.com/derlin/goodreads-metadata-fetcher), yet another library I developed. The JSON format matches the one I use in\n   my Android App [\"MyBooks\"](https://github.com/derlin/mybooks-android).\n3. `Data.js` contains all the code that manipulate data: it loads the files 1 and 2, and creates meaningful Danfo.js DataFrames that I can\n   use to create the texts and plots of the interface.\n\nThis was my first try at React, and I am a bit disappointed with the performances (especially the load time).\n\n\n## I need you!\n\nAs someone pointed out in [dev.to](https://dev.to/derlin/i-challenged-myself-to-read-every-day-and-it-changed-my-life-2oef),\nit would be interesting to make this little app more generic (and better). I would be thrilled to start a project with any interested\nparty.\n\nIf you are interested, open an issue or leave a comment!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderlin%2Freading-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderlin%2Freading-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderlin%2Freading-stats/lists"}