Skip to content

Add Real-World Project: File-Organizer Bot #238

Description

@abderrahim-lectures

Add a new Real-World Projects lesson: Build a File-Organizer Bot (backlog idea #63 — "File-organizer bot (sorts Downloads folder by type/date automatically)").

Scope

  • docs/projects/file-organizer/index.md — new lesson matching the house skeleton (see docs/projects/scrape-analyze/index.md as the closest sibling in structure). This is the first pure filesystem-automation project in the library, so it establishes the conventions for this category.
  • examples/file-organizer/ — a real, runnable CLI (organizer.py) built on stdlib pathlib/shutil/json: an extension-to-category config, a --dry-run mode that only prints planned moves, a real move mode with collision handling, a JSON operations log of every real move, and an --undo command that reverses the last run using that log. Includes generate_sample.py to create a safe throwaway messy folder to test against, a notebook.ipynb, and a README.md.
  • Registration: src/data/projects.ts, docs/projects/index.mdx, src/pages/index.tsx (English only — no i18n changes).
  • Colab/Kaggle/Binder badges in "Where to run this", pointed at this PR's branch (to be updated to main once merged) — the notebook creates and organizes a small sample folder inside the notebook's own ephemeral filesystem, clearly labeled as a demo, since a hosted notebook has no access to the student's real Downloads folder.

Safety note

Since this project touches real files, the lesson must be explicit and careful about safety: always test with --dry-run first, try it on a throwaway sample folder before pointing it at a real Downloads folder, and rely on the JSON operations log + --undo as a real safety net rather than a hand-wavy afterthought.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:capstoneCapstone project content, examples, or architecturetopic:automationAutomation & scripting projectstopic:cli-toolsCLI tools & dev tooling projectstype:content

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions