Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kuroji-fusky/pacopanda-drawing-stats

A case study and data analysis project that collects drawings from a furry artist Paco Panda
https://github.com/kuroji-fusky/pacopanda-drawing-stats

data-science data-visualization fastapi furries furry furry-fandom pandas python

Last synced: 17 days ago
JSON representation

A case study and data analysis project that collects drawings from a furry artist Paco Panda

Awesome Lists containing this project

README

        

![Banner for Paco Panda Drawing Stats](https://user-images.githubusercontent.com/94678583/208869784-c68b5483-8e18-4d01-9163-d502b4cb40c5.png)


Paco Drawing Stats





CodeFactor Grade

> [!IMPORTANT]
> Machine Learning/AI is not utilized in this project! It's nothing but simple math
> to parse collected data.

A data analysis and case study created by Kuroji Fusky that collects
and parses drawing data from a furry artist and illustrator [Paco Panda][paco].

## How it works

The main gist of the project is that it uses a web scraper to get new
drawing submission from his socials; then cleans up the data and adds it to the
database. And using that to build this website and the underlying APIs on it!

It uses a combination of [BeautifulSoup4]()
and [Selenium WebDriver](https://www.selenium.dev/) to scrap drawing data from Paco's
socials and adds it to a Redis database that pushes the image binary and the JSON data
along with it.

Once we got the scraped data, it uses FastAPI to provide a REST API and does the data science
stuff on the fly.

## Setup and Installation

### Prerequisites

- Node.js 20 or higher (LTS recommended)
- Python 3.11 or higher
- Yarn
- Docker

### Installation

WIP

```console
cd client
yarn install

cd server
python -m venv venv

# Linux
source venv/Scripts/activate

# Windows
.\venv\Scripts\activate

pip install -r requirements.txt
```

### Docker

TBA

## API

> [!NOTE]
> Currently, the public APIs only accept `GET` requests. Any
> other request method will respond with `405 Method Not Allowed`
> or `403 Forbidden`.
>
> `👑` - only allowed to be pushed with an auth token

### Endpoints

- `GET /status`
- `GET /stats{?filters}`
- `GET /artworks`
- `GET /artwork{/title}`
- `GET /characters`
- `GET /character{?names}`
- `POST /new/character/` 👑
- `POST /new/artwork/` 👑

## About this project

The project began on October 31st 2021. 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) appearances, including 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.)

## License

[Apache License, Version 2.0](https://opensource.org/license/apache-2-0)

[paco]: https://twitter.com/panda_paco