Castro Galante - Analítica Universitaria
University labor market analytics platform for Argentina, providing insights on formal employment, salaries, and opportunities by discipline, region, gender and institutional management. Features a dashboard with combinable filters, rankings, discipline comparison, and temporal evolution of indicators. Developed as a final practical project for Python at UTN.

Data on the labor market insertion of university graduates in Argentina exists but is fragmented, inaccessible, and not designed for interactive exploration. A student, teacher, or researcher who wants to understand what happens with formal employment for graduates from their discipline, region, or institution type has no direct tool to do so. The UTN final Python project was the opportunity to turn that problem into a real product.
A full stack platform that transforms a CSV dataset of individual records enriched with an Excel dictionary into an interactive dashboard with combinable filters by year, management type, gender, region, discipline, and field. The FastAPI backend with Pandas calculates KPIs, time series, rankings, and comparisons in real time. The React frontend with Recharts visualizes all indicators dynamically responding to filters. A composite opportunity index combining formal employment (55%) and median salary (45%), normalized over the filtered subset, ranks disciplines comparatively.
- 01
Optimizing the loading and processing of a large CSV dataset with Pandas so API endpoints respond in real time without reloading data on each request, using a single load strategy at server startup with FastAPI Lifespan
- 02
Designing a composite opportunity index that is comparable across disciplines within the filtered subset, normalizing both dimensions over the active subset rather than the full dataset
- 03
Implementing combinable filters in the backend that accept multiple values per dimension and apply them sequentially without duplicating logic across different dashboard endpoints
- 04
Building the discipline comparator with parallel time series evolution using Recharts, synchronizing two independent data series on the same time axis with scales that preserve readability
- 01
Starting from a notebook analysis is a valid starting point for a real product: the transition from exploration to API requires thinking about separation of concerns, not just porting code
- 02
Pandas in production requires explicit memory decisions: dtype mappings, usecols, category dtype for categorical columns, and single load with Lifespan make the difference between a slow API and one that responds in milliseconds
- 03
A composite index normalized over the filtered subset produces more useful rankings than one calculated over the full dataset, because it reflects the real context of the user's query
- 04
FastAPI with automatic Swagger documentation is a real advantage for academic projects: the /docs endpoint serves as living documentation that any evaluator can explore without additional configuration
