Files
noentropy/HACKATHON_REVIEW.md
glitchySid 3c038e3a3c first commit
a tool that automatically organize your messy folders
2025-12-20 15:32:38 +05:30

4.2 KiB

Hackathon Review: noentropy

Overall Assessment

Score: 8.5/10

noentropy is a highly effective and impressive hackathon project. Its core concept of using a Large Language Model (LLM) to automate the tedious task of file organization is both innovative and genuinely useful. The project is well-scoped for a hackathon, demonstrating a complete and functional loop from analyzing files to executing a plan.

Strengths

  • High "Wow" Factor: Demonstrates a practical and intelligent use of AI that solves a common problem. It's the kind of project that gets people excited.
  • Practical Usefulness: This isn't just a technical demo; it's a tool that people would actually want to use to manage their cluttered "Downloads" folders.
  • Solid Technical Foundation: The choice of Rust with tokio for asynchronous API calls is a good one, showing technical competence. The interaction with the Gemini API is direct and effective.
  • Complete End-to-End Loop: The program successfully scans files, communicates with an external API, parses the response, and acts on it.

Suggested Improvements for a Winning Edge

This project is already strong, but the following improvements could elevate it from a great project to a potential winner.

High-Impact Improvements

  1. Configuration File for Categories:

    • Problem: The file categories (Images, Documents, etc.) are currently hardcoded in the prompt. This is inflexible.
    • Solution: Create a config.toml file where users can define their own categories and maybe even provide rules (e.g., "all .jpg files go to Photos"). This would make the tool dramatically more powerful and personalizable.
  2. Dry-Run Mode:

    • Problem: Users, especially first-time users, will be hesitant to run a tool that automatically moves their files without knowing what it's going to do.
    • Solution: Add a --dry-run command-line flag. In this mode, the tool should print out the proposed file movements without actually touching any files. For example: [DRY RUN] Would move 'report.pdf' to 'Documents/'.
  3. Interactive Mode:

    • Problem: The current process is fully automated. What if the AI makes a mistake?
    • Solution: Add an --interactive flag. After getting the plan from Gemini, the tool could present the plan to the user and ask for confirmation for each move or for categories of moves. Move 5 files to 'Images'? [Y/n].

Technical & Robustness Improvements

  1. Correct the Model Name:

    • In src/gemini.rs, the model gemini-3-flash-preview is likely a typo. It should probably be gemini-1.5-flash-preview or another valid, available model.
  2. Robust API Response Parsing:

    • Problem: The code manually traverses the JSON response from Gemini. If the API response structure changes even slightly, the program will crash.
    • Solution: Define Rust structs that mirror the entire Gemini API response and use serde to deserialize into them. This is far more resilient to API changes.
  3. Eliminate .expect():

    • Problem: The code uses .expect() in several places (e.g., for environment variables and creating directories). This can cause the program to panic unexpectedly.
    • Solution: Replace .expect() calls with proper Result handling and provide more user-friendly error messages. For example, if the DOWNLOAD_FOLDER isn't set, print a clear message telling the user how to set it.
  4. More Context for the LLM:

    • Problem: Sending only filenames might not be enough for accurate categorization. Is resume.pdf a document or something else?
    • Solution: To improve accuracy, consider sending more metadata to Gemini. The prompt could include file size, creation date, or even the first few lines of text for file types like .txt or .md. (This would require more complex file handling but would make the AI's job easier).

Feature Expansion

  1. Recursive Folder Processing:
    • Add a --recursive or -r flag to allow the tool to organize files in subdirectories as well, not just the top-level directory.

By implementing a few of these suggestions, particularly the high-impact ones, noentropy could be a truly standout project. Great work!