Git Product home page Git Product logo

lauslim12 / japanese-duolingo-visualizer Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 1.0 795 KB

独学で日本語を勉強しています。これはDuolingo統計の進歩。Developed with Python, Poetry, GitHub Actions/Pages.

Home Page: https://lauslim12.github.io/japanese-duolingo-visualizer/

License: MIT License

HTML 43.06% Python 56.94%
automation chartjs cron duolingo github-actions http javascript poetry python web

japanese-duolingo-visualizer's People

Contributors

lauslim12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

japanese-duolingo-visualizer's Issues

Deprecate `number_of_learned_words`

I want to deprecate this metric because I think it's not necessary for the visualizer to have it because you cannot measure your language learning progression by number of words anyways. You can learn more words naturally and not just through Duolingo, so it's kind of like defeating the purpose of this visualizer because it will show inaccurate numbers.

Tasks:

  • Adjust the Duolingo Fetcher so that it doesn't get the number of words.
  • Change the Synchronizer function in main.py so that it doesn't do the overcomplicated if statements that we're using at the moment. Because we already deleted the number_of_learned_words, synchronization shouldn't require any if statements. Transforming the response from Duolingo API to our expected format should be enough.
  • Probably would have to adjust the tests as well depending on the changes.
  • Create script, backfill data, and adjust the existing data store, delete all of the number_of_learned_words properties in the array of objects.
  • In the existing web visualizer, delete the graph for number_of_learned_words and adjust the JSDoc.

Bonus:

  • Perhaps implementing Pydantic is also a good idea to have an additional safety when accessing dataclasses.
  • Just use 1 endpoint ({BASE_URL}/2017-06-30/users/{uid}/xp_summaries?startDate=1970-01-01), but if this is the case, we have to calculate the streak manually. We have to find a good algorithm for this. Probably going to be difficult to keep them in sync, so I think it's better if we just use two endpoints to reduce the complexity. We need the normal endpoint to get the User ID anyways.
  • Next step after this is done is probably to refactor the codebase into a better one by using functional-style programming instead of Object Oriented Programming like the current state.

BreakingAPIChange

os: 6.4.12-arch1-1
command: poetry run python3 main.py

[JDV] Japanese Duolingo Visualizer script has successfully logged in to your account.
[JDV] Japanese Duolingo Visualizer script logged in to your account with JWT method.
[JDV] BreakingAPIChange: API response does not conform to the schema. Perhaps the response from the server may have been changed.
[JDV] Japanese Duolingo Visualizer script has finished running.

image

Product Enhancements

Product Enhancements

Things to be done:

  • Create contributing documents: CONTRIBUTING.md, CODE_OF_CONDUCT.md, and CHANGELOG.md.

Done:

  • Tests (#2).
  • CI/CD for black, isort, mypy, pytest (#2).
  • Website implementation with design and graph visualization (#3).
  • Better API endpoint for daily progression, with faster speed and lesser payload (#4).
  • Time graph, which is a feature to draw a graph to visualize time spent in Duolingo (#5).
  • Synchronization of essential data (#6).
  • Visualize number of sessions (lessons/practices/extras) in a graph (#6).
  • Human-readable time format (XX hours YY minutes) (#7).
  • Show the login/authentication method to the user (#8).
  • Separate the methods for logging in and fetching the user's data (#9).
  • Diagram and development guidelines (#10).
  • Simplify synchronization, part of #11 (#12).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.