Back to projects

Data Engineering

Enlyghten

A searchable data pipeline for exploring 300+ philosophers across 25+ categories.

Enlyghten interface
Role
Full-stack data engineer
Timeline
Personal project

Overview

Enlyghten turns a large collection of semi-structured Wikipedia pages into a clean, searchable knowledge product. The project combines scheduled scraping, an API, a relational database, and a Next.js interface so the dataset can be explored instead of sitting as disconnected raw pages.

The challenge

The source material was inconsistent and changed over time. The pipeline needed to collect data repeatedly, preserve a useful structure, and expose it through a UI that made filtering and discovery fast for a human reader.

The approach

I separated ingestion from presentation. A Python scraper collects and normalizes philosopher data, FastAPI exposes a typed service layer, PostgreSQL stores the structured records, and the Next.js frontend provides browsing and filtering. GitHub Actions re-runs the scraper every two days so the project stays maintainable after the first import.

Architecture

Ingestion

Python scraping and normalization for 300+ philosopher records from Wikipedia.

API layer

FastAPI endpoints provide filtered, structured access to the dataset.

Storage

PostgreSQL keeps the normalized records queryable and easy to extend.

Delivery

A Next.js interface supports browsing and category-based discovery.

Automation

GitHub Actions schedules a fresh scrape every two days.

Outcomes

  • Structured data on 300+ philosophers across 25+ categories.
  • Created a repeatable pipeline instead of a one-time data import.
  • Delivered both a public API-backed experience and a searchable frontend.

What I learned

  • Data quality and normalization decisions matter as much as the scraping code.
  • Separating ingestion, storage, and presentation makes scheduled refreshes easier to reason about.

Technologies

Python
FastAPI
PostgreSQL
Next.js
Docker
GitHub Actions