Skip to content

italoiung/smarter-student

Repository files navigation

smarter-student

Project description

A Puppeteer instance with an authenticated Chrome user's data to navigate the student's logged-in dashboard. It'll crawl mostly ULife pages and auto-generate Obsidian documents for each subject and its lessons. The subjects' documents are gonna include each subject's criteria and calendar, besides relevant notes. The lessons' documents will contain a brief summary.

For now, all it does is retrieve the content of an AMP summary that's present at the bottom of every lesson.

Technologies used

  • Bun
  • Puppeteer
  • Chrome browser

Instalation

Remember that you must have installed a Chrome browser before running this project.

Copy the .env.example file and rename it to .env, then specify you Chrome data directory and the destination for the .md generated documents.

CHROME_EXECUTABLE_PATH=/usr/bin/google-chrome
CHROME_DATA_DIR=/home/YourUser/.config/google-chrome
OBSIDIAN_VAULT_DIR=/home/YourUser/Documents

To install dependencies:

bun install

To run:

bun run index.ts

Roadmap

  • Open school homepage, wait for logged-in dashboard and then navigate to the virtual classroom environment.
  • Set up entities to handle each navigation step and intercept its network requests
  • Scrape summary at the bottom of every lesson and then write its content in a markdown file
  • Scrape only text and images from each lesson and then add to the markdown file
  • Remove irrelevant modules from lesson
    • Add to lesson video embeds and their provided transcriptions
    • Improve lesson formatting using with better detection for headings and lists
  • Add subject index using its lessons' headings
    • Add subject's calendar to index
    • Add brief summary to index
  • Recursively crawl over bibliographical references and other relevant external links
  • Generate richer summary using AI
  • Download static files

About

Puppeteer based virtual classroom crawler

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published