Personal Data Science Portfolio

Architecture & Tech Stack

  • Framework: Quarto (Static Site Generator for Data Science).
  • Content: Jupyter Notebooks (.ipynb), Markdown (.md), and Python scripts.
  • Hosting: Dockerized Nginx serving static HTML assets.

Build & Run Commands

  • Preview locally: quarto preview
  • Render static site: quarto render (Outputs to _site/)
  • Build Docker image: docker build -t ds-portfolio:latest .
  • Run locally: docker run -p 8080:80 ds-portfolio:latest

Workflow for Adding Content

  1. Jupyter Notebooks: Drop .ipynb files directly into the posts/ or projects/ directory. Quarto will execute and render the cells during the build process.
  2. Dashboards: Use Quarto Dashboards or embed interactive Python applications (e.g., Streamlit, Dash) via HTML iframes.
  3. Navigation: Update _quarto.yml to reflect new pages or let Quarto auto-generate navigation based on directory structure.

Containerization Contract

When modifying the Dockerfile or build process, adhere to these rules: 1. Statelessness: The final container must serve purely static assets. 2. Standard Ports: The web server must expose port 80. 3. Portability: Make no assumptions about the target hosting environment, orchestrator, or hardware architecture.