Back to projects

Database systems / Final project

Anime Analytics

A full-stack analytics app over MyAnimeList data with PostgreSQL ETL, Express APIs, and React dashboards.

Thumbnail artwork: Naruto Minimalist Wallpaper by greenmapple17 , licensed under CC BY-NC-ND 3.0 . Displayed unmodified and scaled for layout.

System artifact

ETL to analytics UI

  1. 01Load

    Python ETL creates the PostgreSQL schema and bulk-loads cleaned MyAnimeList tables.

  2. 02Model

    SQL normalizes dimensions, tokenizes genres and studios, and prepares indexed query paths.

  3. 03Serve

    Express routes call parameterized SQL for browse, detail, recommendations, compatibility, trends, and studios.

  4. 04Explore

    React pages render search, profiles, comparisons, trend charts, and studio quality views.

}

Problem

Anime recommendation and comparison questions need joins across anime metadata, users, lists, genres, studios, and ratings without turning the frontend into a query layer.

Approach

We built a normalized PostgreSQL 16 schema on AWS RDS, Python ETL scripts for cleaned MyAnimeList CSVs, an Express backend with one parameterized SQL file per route, and a Vite/React frontend for browse, detail, profile, compare, trends, and studio views.

Result

The repo documents the full setup path, 12 backend routes, smoke tests, API docs, and a backend Vitest/Supertest suite with enforced coverage above 80 percent.