bsodium / moneytor Goto Github PK
View Code? Open in Web Editor NEWVisualize your monthly earnings in real time using Wakatime's API
Home Page: https://moneytor.bsodium.fr/
Visualize your monthly earnings in real time using Wakatime's API
Home Page: https://moneytor.bsodium.fr/
You are required to install a request interceptor browser extension such as Requestly before using this app.
Skip to the Recommended solution
section for more info.
At this time, Moneytor being a pretty small project, it is not a priority to have a fully fledged user system, as backend hosting services are not free. This implies that all the data displayed on the website is fetched by the client from the Wakatime API directly, and is not stored on any third party server.
However, such an architecture has some drawbacks, one of them being that Wakatime does not authorize CORS requests, and therefore blocks all requests whose origin is not registered on their side.
I have tried solving this issue in the cleanest way possible, and believe me, the lack of effort on my side is not the issue here.
Setting up OAuth2 on a backendless architecture, as recommended by the official Wakatime documentation is both stupid and pointless, since it would require the app to store sensitive data (such as the app secret) on the client side, which poses a huge security risk. I still did try to implement such a solution, but it appears as if requesting a refresh token is not possible from a browser, so I had to give up on this idea.
Another approach would be to use the Wakatime API key, usually provided to IDE plugins such as vscode-wakatime. While this does indeed simplify the process of authenticating the user, it does not solve the CORS issue, which again cannot be solved by the client side.
A reliable, though not very elegant solution is to intercept and modify all requests made by the client to the Wakatime API, and add the required headers to them. This can be achieved by using a browser extension such as Requestly. The recommended configuration is available here
It is absolutely necessary that you do enable this extension before accessing the app, as you will not be able to authenticate otherwise.
No fixes are planned for this issue for the time being. I might reconsider this decision in the future, but for now, I am not willing to spend any money on hosting services for this project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.