What I built
I built a demo hub where users can experiment with data science by graphing data sets in the browser then downloading them. Web Monetized browsers won't see the Ads on the page and can also experiment with additional graphing tools.
Note: This project is in the demo phase. In the future, Iβd like to build out the graphing tools to handle more sophisticated data sets. As well as add a login/dashboard feature. π
Why I built it
While researching what to build for the Grant For the Web Hackathon I initially thought of creating something with a JavaScript framework since I'd be interacting with the browser API. However, my journey here on Dev.to is to learn more about Python and what we can do with it. So I thought about how I could incorporate Web Monetization with Python. After some digging, I found this cool project created by Mozilla called Pyodide!
"Pyodide is an experimental project from Mozilla to create a full Python data science stack that runs entirely in the browser."
~ Michael Droettboom
Some of you may be thinking what's wrong with just using JavaScript? JavaScript is great but can you imagine a world where you can use mature data science libraries in the browser to quickly create data science tools and machine learning models? Not to mention being able to share those resources over the web? AND being able to make some money in the process?! π€―ππΎ
Pyodide is currently in its infancy and there are caveats and performance drawbacks but I'm excited to see where it goes!
Submission Category:
Creative Catalyst
Exciting Experiments
Demo
Link to Code
ari-hacks / the-hub
ππ A hub where users can experiment with graphing and Python in the browser (https://pyodide-experiment.herokuapp.com/)
Data Hub π
About
A demo hub where users can experiment with data science by graphing data sets in the browser then downloading them. Web Monetized browsers won't see the ads on the page and can also experiment with additional graphing tools.
This Project is a Grant For the Web x DEV Hackathon Runner-Up Winner ππ
βοΈ Blog Post
Features
- csv upload
- Enhanced Plots with Plotly
- Web Monetization enabled
- Image download
Testing Data
Plot | Input File |
---|---|
Pie | Comparison of trending operating systems |
Scatter/Line | Trends of funny zoom backgrounds |
Time Series | Comparison of trending noodles |
Geo Map | International earthquake data |
Heat Map | Random Data Set |
3-D | Random Data set |
Set up
Requirements
- Python 3.7
- Pipenv
- Browser with coil wallet (No Sign in required for testing)
-
Get Latest Pyodide Downloaded (pyodide.js)Using CDN - Bookmarklet : For testing coil without an account
Local development
After the above requirements have been met:
-
Clone thisβ¦
How I built it
Stack
- Web Monetization Api - Exclusive Content
- Web Monetization Api - Removing Ads
- Pyodide
- Python | JavaScript | HTML | CSS
Additional Resources/Info
- Mozilla
- Test Web Monetization
- Webassembly.org
- UI Template
- Data Sets for Testing
- More on Pyodide
Top comments (2)
This looks 100% static, you should host on github pages, netlify, vercel (formerly zeit), or something like that!
What was your experience with pyodide? Looks heavy so I have written it off. I should really just try it out though as it really is some cool tech.
Hey Waylon! I was originally going to host on Heroku but I've been wanting to check out Netlify - thanks for the suggestion I'm going to try and spin that up this week if time permits. π
There are definitely performance drawbacks but it was fun to learn and build with.
Today I found this cool project called PyMedPhys(Open Source! ππΎ ) that is using it in production! I'm hoping to see more tools like this as Pyodide matures.