Skip to content

mgierschdev/safari-browsing-insights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

browsingHistory

1. What this repository is

A single Jupyter notebook that analyzes Safari browsing history and generates charts; it is not a packaged library or service. Evidence: notebookBH.ipynb.

2. Why it exists

To generate personal browsing history statistics (daily counts and URL distribution) from a Safari History database export. Evidence: notebookBH.ipynb.

A pie chart last 7 days visits (Aggregated by url)

Image of Yaktocat

Number of websites visited (Aggregated by day)

Visit count

Count of visits last 7 days (Aggregated by url)

Count visit

3. Quickstart

Prerequisites:

  • Python with Jupyter, pandas, seaborn, and matplotlib (imports in notebookBH.ipynb).
  • A local export of Safari History as CSV (the notebook expects a visits.csv).

Run locally:

  • Open notebookBH.ipynb in Jupyter and follow the steps to copy Safari history and generate charts.

Run tests:

  • None.

Troubleshooting:

  • Update the data_path in notebookBH.ipynb to match your local export location.

4. Architecture at a glance

flowchart TD
  SafariDB[Safari History.db] --> CSV[visits.csv]
  CSV --> Notebook[Jupyter notebook]
  Notebook --> Charts[Charts/plots]
Loading

The notebook copies or reads Safari history data, loads it into pandas, and produces plots. Evidence: notebookBH.ipynb.

5. Core components

  • notebookBH.ipynb: the full workflow (copy history, clean URLs, generate charts).
  • README.md: repository description.

6. Interfaces

  • Notebook execution via Jupyter; inputs are local history data and outputs are plots.

7. Configuration

  • File paths are set in the notebook (e.g., data_path in notebookBH.ipynb).
  • No .env files or runtime profiles are present.

Secrets and injection:

  • None configured.

8. Dependencies and external services

  • Python packages: pandas, seaborn, matplotlib (imports in notebookBH.ipynb).
  • No external services are configured.

9. Quality and safety

Tests:

  • None.

CI:

  • None.

Linting/formatting:

  • None.

Static analysis/security:

  • None.

Verification:

  • test -f browsingHistory/notebookBH.ipynb

10. Sensitive information review

Status: Needs attention

Reviewed areas:

  • notebookBH.ipynb
  • README.md
  • LICENSE.md

Findings:

  • notebookBH.ipynb contains logic to copy and analyze personal Safari history and previously contained actual browsing URLs in output cells.

Actions taken:

  • Cleared notebook outputs to remove embedded browsing history data.

Notes:

  • The notebook still references local paths (e.g., user home directory) and should be run only on data you are permitted to analyze.

11. What’s missing

Documentation:

  • P2/S: No explicit setup steps for Safari History export. Next action: document how to export History.db to CSV.

Tests:

  • P2/S: No automated tests. Next action: add a minimal data validation step in the notebook.

Security:

  • P1/S: Personal data handling guidance is missing. Next action: add a privacy note and redaction steps.

Reliability:

  • P2/S: No error handling for missing files. Next action: add file existence checks in the notebook.

Operations:

  • P2/S: No reproducibility notes. Next action: document expected input CSV schema.

Developer experience:

  • P2/S: No environment specification. Next action: add a requirements.txt or environment.yml.

12. How this repository is useful

It provides a concrete example of turning Safari browsing history into summary charts using pandas and seaborn. Evidence: notebookBH.ipynb.

13. Automation hooks

Project type: Jupyter notebook analysis Primary domain: Browsing history analytics Core entities: History CSV, charts Extension points: Add support for other browsers or additional metrics in notebookBH.ipynb. Areas safe to modify: Visualization parameters and filters. Areas requiring caution and why: Any cell that handles personal browsing data. Canonical commands:

  • build: None
  • run: Open notebookBH.ipynb in Jupyter
  • test: None

About

Personal Safari browsing history analysis (not a general tool)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published