Support Custom Folder Configuration for File Arrangement
Description: Currently, the script arrangeit.py contains a hardcoded dictionary (directory) that maps specific file extensions to folders (e.g., .py files go to a "Programming Files" folder). While this approach works, it lacks flexibility for users who may want to define their own folder structure or add new file types.
To enhance flexibility and customization, this issue proposes modifying the script to load folder mappings from an external configuration file (such as config.json). This would allow users to easily update, add, or remove folder categories and file extensions without altering the Python code itself.
Proposed solution :
1: I will move the current folder-extension mappings from the hardcoded dictionary to a separate config.json file.
2: I will be updating the script to read folder mappings from the configuration file at runtime, dynamically adjusting the folder arrangement based on the file extensions specified by the user.
3: I will provide a default config.json file for basic usage while allowing users to modify it for custom arrangements.
Benefits :
Increased Flexibility: Users can modify the folder and extension mappings without touching the Python code. They can easily tailor the organization to fit their personal or project-specific needs.
Ease of Updates: Adding new file types or folders becomes a simple task of updating the config.json file, instead of making code changes.
Scalability: This approach supports future enhancements, where different configuration files could be used for different directory structures (e.g., project-specific configurations).
User-Friendly: Non-technical users can modify how files are organized by simply editing a JSON file, without needing to understand or alter the underlying code.
Improved Maintainability: By separating logic from configuration, the codebase becomes cleaner and more maintainable, making it easier to extend or debug.
Assign this issue to me @DhanushNehru and also provide hacktoberfest2024 label to me