{"id":51106738,"url":"https://github.com/zivl/msc-thesis-research","last_synced_at":"2026-06-24T14:31:12.387Z","repository":{"id":366782783,"uuid":"1277238479","full_name":"zivl/msc-thesis-research","owner":"zivl","description":"my thesis research final work, in a digital, explorable, version","archived":false,"fork":false,"pushed_at":"2026-06-23T09:20:06.000Z","size":1835,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-23T10:23:48.422Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zivl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-22T17:57:27.000Z","updated_at":"2026-06-23T09:20:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zivl/msc-thesis-research","commit_stats":null,"previous_names":["zivl/msc-thesis-research"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zivl/msc-thesis-research","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zivl%2Fmsc-thesis-research","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zivl%2Fmsc-thesis-research/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zivl%2Fmsc-thesis-research/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zivl%2Fmsc-thesis-research/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zivl","download_url":"https://codeload.github.com/zivl/msc-thesis-research/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zivl%2Fmsc-thesis-research/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34737397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-24T14:31:11.662Z","updated_at":"2026-06-24T14:31:12.375Z","avatar_url":"https://github.com/zivl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# msc-thesis-research\n\nMy MSc thesis research final work — **\"Is This Safe or Not? Mobile Apps Classification on\nAndroid\"** (Ziv Levy, under the supervision of Dr. David Movshovitz, IDC Herzliya, 2014) — as a\ndigital, explorable static website.\n\nThe site is built with [Astro](https://astro.build) + the\n[Starlight](https://starlight.astro.build) documentation theme and deploys to GitHub Pages.\n\n---\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org) 18+ (developed on Node 24)\n- [Yarn](https://classic.yarnpkg.com) 1.x\n\n## Install\n\n```bash\nyarn install\n```\n\n## Preview locally\n\n```bash\nyarn dev\n```\n\nThen open the URL printed in the terminal (the site is served under the\n`/msc-thesis-research` base path, e.g. \u003chttp://localhost:4321/msc-thesis-research/\u003e).\n\n## Build (production output)\n\n```bash\nyarn build      # output written to ./dist\nyarn preview    # preview the built site locally\n```\n\n## Deploy to GitHub Pages\n\nDeployment is automated by [`.github/workflows/deploy.yml`](.github/workflows/deploy.yml):\n\n1. In the GitHub repository, go to **Settings → Pages** and set **Source = GitHub Actions**.\n2. Push to the `master` branch (or run the workflow manually from the **Actions** tab).\n3. The workflow builds the site with Astro and publishes it to\n   \u003chttps://zivl.github.io/msc-thesis-research/\u003e.\n\nThe production URL is configured in [`astro.config.mjs`](astro.config.mjs) via `site` +\n`base`. If you fork/rename the repo, update those two values.\n\n---\n\n## Switching the visual theme\n\nThe site ships **three swappable themes**, implemented as CSS-variable override files in\n[`src/styles/`](src/styles):\n\n| File | Look |\n| --- | --- |\n| `theme-classic.css` | **Default.** Clean academic white, Georgia serif body, minimal colour |\n| `theme-modern.css` | Inter sans-serif, subtle navy accent, generous whitespace |\n| `theme-dark.css` | Dark background, high contrast, easy on the eyes for long reading |\n\nTo switch, edit the `customCss` array in [`astro.config.mjs`](astro.config.mjs) so that exactly\n**one** theme file is uncommented (keep `base.css` first, always on), then restart `yarn dev`:\n\n```js\ncustomCss: [\n  \"./src/styles/base.css\",            // shared (always on)\n  \"./src/styles/theme-classic.css\",   // ← active theme\n  // \"./src/styles/theme-modern.css\",\n  // \"./src/styles/theme-dark.css\",\n],\n```\n\n(`theme-classic` and `theme-modern` also honour Starlight's light/dark toggle; `theme-dark`\nforces the dark scheme regardless of the toggle.)\n\n---\n\n## Project layout\n\n```text\nastro.config.mjs            site config: base path, sidebar nav, math, active theme\nsrc/content/docs/*.md       the thesis content, one file per chapter (verbatim)\nsrc/styles/                 base.css + the three theme override files\npublic/images/              all figures (see \"How the content was produced\")\n.github/workflows/deploy.yml  GitHub Pages CI\nscripts/                    one-off tooling used to produce the content (see below)\n```\n\n## How the content was produced (reproducibility)\n\nThe source document is `Final Work - Ziv Levy_david_comments.docx`. The thesis prose was\ntranscribed **verbatim** — no wording, punctuation or ordering was changed; reviewer comments\nwere ignored.\n\n- **Text \u0026 tables** were extracted with [`pandoc`](https://pandoc.org):\n  ```bash\n  pandoc \"Final Work - Ziv Levy_david_comments.docx\" -f docx -t gfm+pipe_tables \\\n    --wrap=none --extract-media=./_pandoc_media -o _full.md\n  ```\n  then split into per-chapter pages by [`scripts/migrate_content.py`](scripts/migrate_content.py).\n- **5 figures were EMF** (a Windows vector format browsers can't display). They were converted\n  to PNG with [Inkscape](https://inkscape.org): `inkscape in.emf --export-type=png --export-dpi=200 ...`.\n- **8 figures were native Microsoft Word charts** that pandoc cannot extract. They were\n  regenerated from the data embedded in the `.docx` by\n  [`scripts/generate_charts.py`](scripts/generate_charts.py) (matplotlib). The data is exact;\n  only the visual styling differs from the original Word charts.\n- **LaTeX math** is rendered with KaTeX (`remark-math` + `rehype-katex`).\n\nThese scripts are kept for provenance; they are not needed to build or run the site.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzivl%2Fmsc-thesis-research","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzivl%2Fmsc-thesis-research","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzivl%2Fmsc-thesis-research/lists"}