Inspiration
I've noticed that there are multiple youtube videos online for many topics however its not curated and sorted based on Animation etc.
What it does
A website that curates educational resources for every grade/board and sorts it based on animation etc. etc. with progress tracking (WIP)
How we built it
A devserver was made in Python and FastAPI which is used by site mods/admins to actually add data, a Golang webserver using Gin was also made which acts as the backend handling authentication and WIP progress tracking and personalization (not yet implemented, in WIP)
Challenges we ran into
- Initially there were a lot of problems with the scraper due to the lack of caching needing an innovative caching technology to handle it. This uses messagepack to cache Youtube Data API responses to avoid getting hit by ratelimits
- The Gin webserver, especially handling even the basic progress tracking we have right now needed a lot of time to properly handle edge cases such as users going backwards in progress of their videos
- For lots of the devserver, I wanted to use "internal HTTP calls to itself" but this, as I soon figured out, had several bugs (an infinite loop as well) and in the end needed the addition of
internal_http_callquery parameter to actually work. - The actual fetching of data in rural villages, JSON is not that suitable as it is much larger (over 50-60% in my tests) and so the
messagepackencoding was adopted to reduce data usage in mobile networks - I accidentally lost lots of the data I had been trying to fetch for this project by accident :(, so the data present in the current iteration is very minimal and only for demonstration purposes
- Actually making the video :)
Accomplishments that we're proud of
- A full working devserver with good UX
- Fully working
What we learned
- The Youtube Data API has very few good libraries, we actually made our own library on top of the official library to handle caching and pagination for us.
- Nginx and nginx-mine-types
- Github Issue Templates
What's next for Shiksha360
Improve the site/remove debug footnotes and add/actually curate the content. Maybe use AI to automate some of the scraping, our scraper already has scraper tags right now but it could be much better, especially with playlists.
Personalize the website based on the videos they have watched
Log in or sign up for Devpost to join the conversation.