ThoreBor / Anki_Leaderboard

Anki 2.1 Add-On
https://ankiweb.net/shared/info/41708974
MIT License
48 stars 11 forks source link

About taking over the development of the Leaderboard #238

Open shigeyukey opened 1 month ago

shigeyukey commented 1 month ago

Hello, I am developer Shige. I develop add-ons for gamification learning on Patreon and simple repair of broken add-ons (Free). So far I have developed about 30+ Add-ons and fixed 41+ Add-ons.

I think I can maintain the server and simple repair the add-on, what do you think? For example, I might be able to log in to your pythonAnywhere server and do season updates, etc. However, I too do not have enough development resources, so I probably cannot do advanced work (I am not a professional programmer).

skifli commented 1 month ago

Hey, just saying here that I would also be willing to help if needs be; this add-on has been a great source of motivation for me. Either way, good luck.

ThoreBor commented 1 month ago

Hi, thanks for the interest!

If somebody wants to continue this project, they would have to host the API themselves and start with a new database. In the privacy policy, I stated that I wouldn't share personal data with third-parties, so I can't and won't give anyone access to the database. All data will be deleted on the 14th.

But this is honesty also an advantage for whoever wants to take this over because the project grew a lot over the years and I kept adding features that I didn't plan for originally, leading to a weird database structure (and a lot of ugly code that I would like to rewrite but don't have the time). Some time ago, I stared with a complete rewrite of the API. I put it on GitHub in case anyone finds it useful (api3.py). It uses a different database structure, mysql instead of sqlite, and in general uses Django more as intended compared to before (I think). This would, however, require some changes in the add-on code, that I didn't get around to.

I used Django and the free tier on pythonanywhere and had no problems with that, so I'd recommend using that, but you could of course also use other services and/or rewrite the API in another language.

If you have some questions, I'd be happy to help, but it might take some time for me to reply. I'm not a professional programmer, so I apologize it advance for some of the code. I learned a lot over the years, but it has become too much work for me and I lost some motivation.

shigeyukey commented 1 month ago

Thank you, it is very clear.

All data will be deleted on the 14th.

I also thought there would be security issues, so I think that would be best too.

I put it on GitHub in case anyone finds it useful (api3.py).

Thank you, I will look into it later.

I used Django and the free tier on pythonanywhere and had no problems with that,

I was worried about how much money it would cost to maintain the server, so that's good news.

I learned a lot over the years, but it has become too much work for me and I lost some motivation.

In my opinion, since the development of add-ons is volunteer, there is no problem to restart it if you feel like it after finishing the development this time. (Though I don't think you have any plans to do so now)


About development, I have never built a server, so the initial setup of pythonanywhere is difficult. Several things I can't figure out, even after trying to look into it, so any tips would be very helpful.

1. There seems to be nothing “from .config import praw_config, smtp_config” and “Leaderboard.db”. I wonder how these are created?

2. My guess was to create a private repository on Github and send updates to pythonanywhere from there. Is there such a repository?

3. There is a issue with seasons not starting, so I think it might be necessary to set up to start a season. What kind of routine work would be required to maintain the add-on?

These are not exact details, just simple tips are fine.

Edit : I think I roughly solved these problems. (maybe?)

shigeyukey commented 2 weeks ago

I succeeded in running the new server, and so far it seems to be working fine. Without your advice and source code this would never have been possible, thank you very much!🙏