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
- 01Load
Python ETL creates the PostgreSQL schema and bulk-loads cleaned MyAnimeList tables.
- 02Model
SQL normalizes dimensions, tokenizes genres and studios, and prepares indexed query paths.
- 03Serve
Express routes call parameterized SQL for browse, detail, recommendations, compatibility, trends, and studios.
- 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.