sawyerh / highlights

Code for converting, importing, processing, and displaying Kindle, Instapaper, and Safari Books highlights

Home Page:http://highlights.sawyerh.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

Hello πŸ‘‹ You're at the root of a monorepo.

This repo contains all of the code for my personal reading highlight system. You can read more about this project in this blog post.

Directory Structure

β”œβ”€β”€ aws       # Email importer and AI/LLM features
β”œβ”€β”€ firebase  # Database and backend
β”œβ”€β”€ packages  # Reading export converters
β”‚   β”œβ”€β”€ highlights-email-to-json
β”‚   β”œβ”€β”€ kindle-clippings-to-json
β”‚   β”œβ”€β”€ kindle-email-to-json
β”‚   └── safari-books-csv-to-json
└── web       # Frontend

Installation

Pre-requisites

  • Node.js 18+
  • Python 3.10+
  • poetry

Setup top-level dependencies

To setup developer tooling, like linting and formatting:

make init

Then, each individual directory has its own README with setup instructions.

System context

C4Context
  Person(me, "Me")

  Boundary(aws, "AWS") {
    System(ai, "Search & Summarization", "S3, Lambda")
    System(email, "Email importer", "SES, S3, Lambda")
  }

  Boundary(vercel, "Vercel") {
    System(web, "Web app", "Next.js")
  }

  Boundary(google, "Firebase") {
    SystemDb(db, "Database", "Firestore")
    System(functions, "Data enricher", "Cloud Functions")
    System(api, "API", "Cloud Functions")
  }

  System(ga, "Google Analytics")

  Rel(me, email, "Emails export")
  Rel(email, db, "Creates records")
  Rel(api, db, "Reads")
  Rel(web, api, "Get volumes and highlights")
  Rel(web, ai, "Search")
  Rel(web, ga, "Track")
  BiRel(db, functions, "Triggers updates")
  UpdateRelStyle(db, functions, $offsetX="-45", $offsetY="-20")

  UpdateLayoutConfig($c4ShapeInRow="4", $c4BoundaryInRow="4")

About

Code for converting, importing, processing, and displaying Kindle, Instapaper, and Safari Books highlights

http://highlights.sawyerh.com


Languages

Language:TypeScript 46.4%Language:Python 20.6%Language:JavaScript 16.9%Language:HTML 13.3%Language:CSS 1.2%Language:Makefile 1.0%Language:Shell 0.6%