I'm putting this project on hold as I usually go on and off working on this data viz project all by myself. And plus, despite starting this project 2 years ago, there hasn't been any significant changes in terms of working on the website - so I'm leaving it be for now, maybe I'll work on this in the forseeable future.
Paco Panda Drawing Stats
Paco Panda Drawing Stats is a data analysis and data visualization project that collects and parses drawing data from a furry artist and illustrator Paco Panda.
Initially made simply out of curiosity - it has expanded to provide its own REST and GraphQL APIs, and utilizes Supabase as the database.
This project is structured as a monorepo, it uses Yarn workspaces and Turborepo to install and manage dependencies in each subdirectory and remotely cache builds on the cloud via Turborepo.
Written in TypeScript and Python - it utilizes the ES Module syntax, with some
files utilize the
.cjs file type for Prettier, Tailwind CSS configs.
.github- CI/CD Workflow stuff
.husky- Pre-commit hooks for lint-staging
api- An API written in Fastify
website- The website written in Nuxt
types- Shared TypeScript declarations
parinton- Local scraper and parser library for manipulating public drawing data with Python
Setup and Installation
- Node.js 18 or higher (LTS recommended)
- Python 3.10 or higher
- Yarn Package Manager
- WSL/Git Bash
Install Node dependencies with Yarn:
Running Redis locally with Docker
For testing and not cost any compute instances; play it safe by self-hosting a Redis database with Docker (make sure you have Docker installed!)
docker-compose up -f redis-stack.yml
Note Section WIP
About this project
The project began on October 31, 2021, and the possible inspiration from this project is through McBroken (basically a McDonald's broken ice cream machine site) and it'd be interesting to see in all of his drawings to see said data, and its various datasets.
This project collects the following:
- The title and date of the piece
- Number of character(s) species and names
- Media type (either drawn digital or traditional)
- Programs/mediums used (i.e. Photoshop, Procreate, etc.)
- The source where I got the data (i.e. FurAffinity, DeviantArt, InkBunny, Weasyl, etc.)
Previously, I have to manually source it through FurAffinity and DeviantArt for his draft drawings (including his Art & Biro comics). Unfortunately, drawings from Twitter won't be counted in order to ease the load on my end and the dataset as well since all the data gathered will be hard coded to the site.
Why did you create this project?
Believe it or not, it's not my intention to impress him in general.
During the early stages of this project - I have limited backend knowledge and I needed help with @thatITfox for setting up a Flask web server, and now currently working with Redis stuff!
Isn't this taking it too far?
As someone who admires his art, yes… to some extent. Well, sure - it may feel like I watch him on every step, but I only use them for analytical and informational purposes; parsing drawing data on his Twitter profile would be difficult and will require more work.
It's more of a serious yet passion side-project of mine to show various kinds of drawing data from his.
Are the images/drawings stored in the database?
No, most image requests are coming from FurAffinity since they use Cloudflare as their CDN under the hood to cache media types.
Paco Panda Drawing Stats' source code is open source and is licensed under MIT.