Got project files everywhere? Arduino sketches scattered across your PC? Random STL files you can't find? Fear not, fellow maker! This tool will transform your chaotic project folders into a well-organized maker's paradise!
- 🛠️ Hardware+Software projects
- 🔧 Arduino/PlatformIO development
- 💾 Code snippet management
- 🗂️ Project organization
- 📁 Multi-project workspaces
- Smart Project Detection: Automatically identifies Arduino, PlatformIO projects
- Code Snippet Organization: Keep your valuable code bits organized
- Project Lifecycle: Track projects from idea to completion
- Simple Configuration: Easy to set up and use
- Windows Friendly: Works great with WSL!
-
Install WSL on Windows
- Press
Windows + X
to open the Power User menu - Click on "Windows Powershell (Admin)"
- Run:
wsl --install
- Restart when prompted
- Press
-
Create Your Linux User
- After restart, WSL will ask for a username and password
- Remember these credentials!
-
Get Project Forge Running
- Press
Windows + X
and click "Windows Powershell" (not admin) - Copy and paste these commands one by one:
- Press
sudo apt update
sudo apt install python3 python3-pip python3-yaml git
git clone https://github.com/Kalougear/ProjectForge.git
cd ProjectForge
python3 -m project_forge
🚀 Quick Access Tip: Next time, just open Windows Powershell and run:
cd ~/ProjectForge
python3 -m project_forge
Quick setup in one go:
# Complete setup
sudo apt update && sudo apt install python3 python3-pip python3-yaml git
git clone https://github.com/Kalougear/ProjectForge.git
cd ProjectForge
python3 -m project_forge
Remember: Use WSL paths! (/mnt/c/Users/...
)
One-line setup:
sudo apt update && sudo apt install python3 python3-pip git && pip3 install PyYAML && git clone https://github.com/Kalougear/ProjectForge.git && cd ProjectForge && python3 -m project_forge
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python3 git && \
pip3 install PyYAML && \
git clone https://github.com/Kalougear/ProjectForge.git && \
cd ProjectForge && \
python3 -m project_forge
Windows Path → Linux/WSL Path
---------------- --------------
C:\Users\Name\Projects → /mnt/c/Users/Name/Projects
D:\Maker_Projects → /mnt/d/Maker_Projects
# WSL not installing?
wsl --install --no-distribution
wsl --install -d Ubuntu
# Still problems?
# Windows + X → PowerShell (Admin):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
# Python not found?
sudo apt install --reinstall python3
# pip issues?
sudo apt install --reinstall python3-pip
# Check where you are
pwd
# Check if script is there
ls project_forge.py
# Check Python
python3 --version
YourPath/
├── ONGOING/ # Active projects
├── IDEAS/ # Future projects
├── HOLD/ # Paused projects
├── DONE/ # Completed projects
├── Test_Lab/ # Test code
└── Code_Vault/ # Code snippets
Each project gets:
Project_Name/
├── software/ # All your code
├── hardware/ # Schematics, PCB files
├── cad/ # 3D models, STLs
├── _docs/ # Documentation
└── builds/ # Build outputs
-
"Command not found"
# Make sure you're in the right directory: cd /path/to/where/you/put/project_forge.py
-
Path Not Found
# Make sure to use WSL paths: ❌ C:\Projects ✅ /mnt/c/Projects
-
Python Issues
# Install Python & pip: sudo apt update sudo apt install python3 python3-pip
# Start the program:
python3 project_forge.py
# You'll see this menu:
==================================================
Project|Forge
==================================================
1. Create new project
2. Organize existing project
3. Move project between statuses
4. List all projects
5. Exit
Select option: 1
Enter project name: My_Arduino_Project
# Pro tip: Use underscores for spaces!
Select status:
1. ONGOING: Active projects # Choose this for new projects
2. IDEAS: Future plans
3. HOLD: Paused projects
4. DONE: Completed projects
5. Test_Lab # Good for quick tests
6. Code_Vault # For code snippets
Select option: 2
Select type:
1. Full Project # Choose this for complete projects
2. Code Snippets # For single files/small code bits
Enter path: /mnt/c/Users/YourName/Desktop/messy_project
# Remember to use WSL paths!
Select option: 3
# Just follow the prompts - it's easy!
Before (Messy Desktop):
Desktop/
├── led_code.ino
├── schematic.pdf
├── case_v1.stl
└── notes.txt
After Running Tool:
ONGOING/Arduino_LED_Project/
├── software/
│ └── src/
│ └── led_code.ino # Your code, safe and sound
├── hardware/
│ └── schematics/
│ └── schematic.pdf # Hardware docs organized
├── cad/
│ └── 3dprint/
│ └── case_v1.stl # 3D files in the right place
└── _docs/
└── notes/
└── notes.txt # Documentation where it belongs
Turn this:
random_folder/
├── uart_code.cpp
├── old_uart.cpp
└── uart.h
Into this:
Code_Vault/
└── UART_Handler/
└── UART_Handler.cpp # Clean, organized, reusable!
~/Desktop/robot_mess/
├── main_v1.cpp
├── main_final.cpp
├── main_final_GOOD.cpp
├── robot_test.ino
├── servo.h
├── old_servo.h
├── config_backup.h
├── platformio.ini
├── random_todo.txt
├── notes_jan15.txt
├── meeting_notes.md
├── schematic_v1.pdf
├── schematic_FINAL.pdf
├── pcb_design.kicad_pcb
├── gerbers.zip
├── BOM_v2.xlsx
├── parts_list.csv
├── robot_case.f3d
├── case_v1.stl
├── case_v2.stl
├── case_final.stl
├── IMG_001.jpg
├── wiring_diagram.jpg
└── project_photo.jpg
$ python3 project_forge.py
Select option: 2 # Organize existing project
Select type: 1 # Full Project
# Providing paths
Enter source: ~/Desktop/robot_mess
Enter name: Robot_Arm_Project
-
Project Analysis
Analyzing project structure... - Found PlatformIO config (platformio.ini) - Found Arduino sketches (.ino) - Detected 23 files to organize
-
Smart Detection
Detected project types: ✓ PlatformIO project ✓ Arduino sketches ✓ CAD files present ✓ Hardware documentation
-
File Analysis
Analyzing files: - Found multiple main file versions - Found scattered documentation - Found CAD iterations - Found hardware design files
-
Organization Actions
Performing organization: → Moving source files to software/ → Consolidating documentation to _docs/ → Organizing CAD files → Structuring hardware files
(See detailed structure in previous example)
-
Code Management
Software cleanup: ✓ Detected main version files ✓ Created archive for old versions ✓ Preserved build configurations ✓ Organized libraries
-
Documentation Organization
Documentation cleanup: ✓ Gathered scattered notes ✓ Organized by type (notes, images) ✓ Maintained date context ✓ Structured for easy access
-
Hardware Files
Hardware file organization: ✓ Separated schematics versions ✓ Organized production files ✓ Structured BOMs and parts lists
-
CAD Files
CAD file management: ✓ Separated source and output files ✓ Organized STL versions ✓ Maintained original CAD files
Organization Complete!
Files Processed: 23
├── Software Files: 8
├── Documentation: 6
├── Hardware Files: 5
└── CAD Files: 4
Structure Compliance: 100%
File Naming: Standardized
Version Control Ready: Yes
Robot_Arm_Project/ # Your organized project
│
├── 📂 software/ # All code in one place
│ ├── 📂 src/ # Current source code
│ │ ├── 📜 Main.cpp # Main program
│ │ ├── 📜 Robot.ino # Arduino sketch
│ │ └── 📜 Config.h # Configuration
│ │
│ ├── 📂 libs/ # Project libraries
│ │ ├── 📜 ServoLib.cpp # Servo control
│ │ └── 📜 ServoHandler.h # Servo headers
│ │
│ ├── 📂 archive/ # Old versions, safe but out of the way
│ │ ├── 📜 Main_v1.cpp
│ │ └── 📜 Main_backup.cpp
│ │
│ └── 📜 platformio.ini # Build configuration
│
├── 📂 hardware/ # All hardware files
│ ├── 📂 schematics/
│ │ ├── 📜 Schematic_v2.pdf # Current version
│ │ └── 📜 Schematic_v1.pdf # Previous version
│ │
│ ├── 📂 pcb/ # PCB design files
│ │ └── 📜 MainBoard.kicad_pcb
│ │
│ └── 📂 production/ # Manufacturing files
│ ├── 📂 gerber/
│ │ └── 📦 Gerbers.zip
│ └── 📂 assembly/
│ └── 📊 BOM.xlsx
│
├── 📂 cad/ # 3D design files
│ ├── 📂 models/ # Source files
│ │ └── 📜 RobotCase.f3d # Fusion 360 file
│ │
│ └── 📂 3dprint/ # Print files
│ └── 📂 stl/
│ ├── 📜 Case.stl
│ └── 📜 Mount.stl
│
├── 📂 _docs/ # All documentation
│ ├── 📂 notes/ # Project notes
│ │ ├── 📝 BuildNotes.txt
│ │ └── 📝 TODO.md
│ │
│ ├── 📂 images/ # Project images
│ │ ├── 📸 Prototype.jpg
│ │ └── 📸 Wiring.jpg
│ │
│ └── 📂 diagrams/ # Technical diagrams
│ └── 📊 Pinout.svg
│
├── 📜 README.md # Project documentation
└── 📜 project.yaml # Project metadata
Files Organized: 23 total
│
├── 📊 By Category
│ ├── Software: 35% (8 files)
│ ├── Hardware: 22% (5 files)
│ ├── CAD: 17% (4 files)
│ └── Docs: 26% (6 files)
│
└── 📈 Results
├── Structure: 100% compliant
├── Naming: Standardized
├── Versions: Tracked
└── Ready for: Git, Sharing, Team Work
- Always use
/mnt/c/...
style paths - Copy-paste paths from Windows Explorer and add
/mnt/c/
at start - Use Tab completion in WSL to verify paths
- Use descriptive project names
- Start with ONGOING or Test_Lab
- Move to DONE when complete
- Use Code_Vault for useful snippets
The tool automatically:
- Detects project type
- Preserves build settings
- Keeps libraries intact
- Organizes supporting files
- Project templates
- Backup features
- Git integration
- Project health checks
-
"Where should I put my project?"
- ONGOING: For active projects
- Test_Lab: For quick tests
- Code_Vault: For useful code bits
-
"What happens to my original files?"
- They stay where they are
- Tool creates organized copy
- Original files untouched
-
"I messed up the organization!"
- Just run again with a new project name
- Original files are safe
- Try different organization patterns
Love organizing? Got ideas? Contributions welcome!
- Fork the repo
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.
- Inspired by every maker's need for organization
- Built with ❤️ for the maker community
- Thanks to all contributors!
Got project files everywhere? Arduino sketches scattered across your PC? Random STL files you can't find? Fear not, fellow maker! This tool will transform your chaotic project folders into a well-organized maker's paradise!
- 🛠️ Hardware+Software projects
- 🔧 Arduino/PlatformIO development
- 💾 Code snippet management
- 🗂️ Project organization
- 📁 Multi-project workspaces
- Smart Project Detection: Automatically identifies Arduino, PlatformIO projects
- Code Snippet Organization: Keep your valuable code bits organized
- Project Lifecycle: Track projects from idea to completion
- Simple Configuration: Easy to set up and use
- Windows Friendly: Works great with WSL!
-
Install WSL on Windows
- Press
Windows + X
to open the Power User menu - Click on "Windows Powershell (Admin)"
- Run:
wsl --install
- Restart when prompted
- Press
-
Create Your Linux User
- After restart, WSL will ask for a username and password
- Remember these credentials!
-
Get Project Forge Running
- Press
Windows + X
and click "Windows Powershell" (not admin) - Copy and paste these commands one by one:
- Press
sudo apt update
sudo apt install python3 python3-pip python3-yaml git
git clone https://github.com/Kalougear/ProjectForge.git
cd ProjectForge
python3 -m project_forge
🚀 Quick Access Tip: Next time, just open Windows Powershell and run:
cd ~/ProjectForge
python3 -m project_forge
Quick setup in one go:
# Complete setup
sudo apt update && sudo apt install python3 python3-pip python3-yaml git
git clone https://github.com/Kalougear/ProjectForge.git
cd ProjectForge
python3 -m project_forge
Remember: Use WSL paths! (/mnt/c/Users/...
)
One-line setup:
sudo apt update && sudo apt install python3 python3-pip git && pip3 install PyYAML && git clone https://github.com/Kalougear/ProjectForge.git && cd ProjectForge && python3 -m project_forge
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python3 git && \
pip3 install PyYAML && \
git clone https://github.com/Kalougear/ProjectForge.git && \
cd ProjectForge && \
python3 -m project_forge
Windows Path → Linux/WSL Path
---------------- --------------
C:\Users\Name\Projects → /mnt/c/Users/Name/Projects
D:\Maker_Projects → /mnt/d/Maker_Projects
# WSL not installing?
wsl --install --no-distribution
wsl --install -d Ubuntu
# Still problems?
# Windows + X → PowerShell (Admin):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
# Python not found?
sudo apt install --reinstall python3
# pip issues?
sudo apt install --reinstall python3-pip
# Check where you are
pwd
# Check if script is there
ls project_forge.py
# Check Python
python3 --version
YourPath/
├── ONGOING/ # Active projects
├── IDEAS/ # Future projects
├── HOLD/ # Paused projects
├── DONE/ # Completed projects
├── Test_Lab/ # Test code
└── Code_Vault/ # Code snippets
Each project gets:
Project_Name/
├── software/ # All your code
├── hardware/ # Schematics, PCB files
├── cad/ # 3D models, STLs
├── _docs/ # Documentation
└── builds/ # Build outputs
-
"Command not found"
# Make sure you're in the right directory: cd /path/to/where/you/put/project_forge.py
-
Path Not Found
# Make sure to use WSL paths: ❌ C:\Projects ✅ /mnt/c/Projects
-
Python Issues
# Install Python & pip: sudo apt update sudo apt install python3 python3-pip
# Start the program:
python3 project_forge.py
# You'll see this menu:
==================================================
Project|Forge
==================================================
1. Create new project
2. Organize existing project
3. Move project between statuses
4. List all projects
5. Exit
Select option: 1
Enter project name: My_Arduino_Project
# Pro tip: Use underscores for spaces!
Select status:
1. ONGOING: Active projects # Choose this for new projects
2. IDEAS: Future plans
3. HOLD: Paused projects
4. DONE: Completed projects
5. Test_Lab # Good for quick tests
6. Code_Vault # For code snippets
Select option: 2
Select type:
1. Full Project # Choose this for complete projects
2. Code Snippets # For single files/small code bits
Enter path: /mnt/c/Users/YourName/Desktop/messy_project
# Remember to use WSL paths!
Select option: 3
# Just follow the prompts - it's easy!
Before (Messy Desktop):
Desktop/
├── led_code.ino
├── schematic.pdf
├── case_v1.stl
└── notes.txt
After Running Tool:
ONGOING/Arduino_LED_Project/
├── software/
│ └── src/
│ └── led_code.ino # Your code, safe and sound
├── hardware/
│ └── schematics/
│ └── schematic.pdf # Hardware docs organized
├── cad/
│ └── 3dprint/
│ └── case_v1.stl # 3D files in the right place
└── _docs/
└── notes/
└── notes.txt # Documentation where it belongs
Turn this:
random_folder/
├── uart_code.cpp
├── old_uart.cpp
└── uart.h
Into this:
Code_Vault/
└── UART_Handler/
└── UART_Handler.cpp # Clean, organized, reusable!
~/Desktop/robot_mess/
├── main_v1.cpp
├── main_final.cpp
├── main_final_GOOD.cpp
├── robot_test.ino
├── servo.h
├── old_servo.h
├── config_backup.h
├── platformio.ini
├── random_todo.txt
├── notes_jan15.txt
├── meeting_notes.md
├── schematic_v1.pdf
├── schematic_FINAL.pdf
├── pcb_design.kicad_pcb
├── gerbers.zip
├── BOM_v2.xlsx
├── parts_list.csv
├── robot_case.f3d
├── case_v1.stl
├── case_v2.stl
├── case_final.stl
├── IMG_001.jpg
├── wiring_diagram.jpg
└── project_photo.jpg
$ python3 project_forge.py
Select option: 2 # Organize existing project
Select type: 1 # Full Project
# Providing paths
Enter source: ~/Desktop/robot_mess
Enter name: Robot_Arm_Project
-
Project Analysis
Analyzing project structure... - Found PlatformIO config (platformio.ini) - Found Arduino sketches (.ino) - Detected 23 files to organize
-
Smart Detection
Detected project types: ✓ PlatformIO project ✓ Arduino sketches ✓ CAD files present ✓ Hardware documentation
-
File Analysis
Analyzing files: - Found multiple main file versions - Found scattered documentation - Found CAD iterations - Found hardware design files
-
Organization Actions
Performing organization: → Moving source files to software/ → Consolidating documentation to _docs/ → Organizing CAD files → Structuring hardware files
(See detailed structure in previous example)
-
Code Management
Software cleanup: ✓ Detected main version files ✓ Created archive for old versions ✓ Preserved build configurations ✓ Organized libraries
-
Documentation Organization
Documentation cleanup: ✓ Gathered scattered notes ✓ Organized by type (notes, images) ✓ Maintained date context ✓ Structured for easy access
-
Hardware Files
Hardware file organization: ✓ Separated schematics versions ✓ Organized production files ✓ Structured BOMs and parts lists
-
CAD Files
CAD file management: ✓ Separated source and output files ✓ Organized STL versions ✓ Maintained original CAD files
Organization Complete!
Files Processed: 23
├── Software Files: 8
├── Documentation: 6
├── Hardware Files: 5
└── CAD Files: 4
Structure Compliance: 100%
File Naming: Standardized
Version Control Ready: Yes
Robot_Arm_Project/ # Your organized project
│
├── 📂 software/ # All code in one place
│ ├── 📂 src/ # Current source code
│ │ ├── 📜 Main.cpp # Main program
│ │ ├── 📜 Robot.ino # Arduino sketch
│ │ └── 📜 Config.h # Configuration
│ │
│ ├── 📂 libs/ # Project libraries
│ │ ├── 📜 ServoLib.cpp # Servo control
│ │ └── 📜 ServoHandler.h # Servo headers
│ │
│ ├── 📂 archive/ # Old versions, safe but out of the way
│ │ ├── 📜 Main_v1.cpp
│ │ └── 📜 Main_backup.cpp
│ │
│ └── 📜 platformio.ini # Build configuration
│
├── 📂 hardware/ # All hardware files
│ ├── 📂 schematics/
│ │ ├── 📜 Schematic_v2.pdf # Current version
│ │ └── 📜 Schematic_v1.pdf # Previous version
│ │
│ ├── 📂 pcb/ # PCB design files
│ │ └── 📜 MainBoard.kicad_pcb
│ │
│ └── 📂 production/ # Manufacturing files
│ ├── 📂 gerber/
│ │ └── 📦 Gerbers.zip
│ └── 📂 assembly/
│ └── 📊 BOM.xlsx
│
├── 📂 cad/ # 3D design files
│ ├── 📂 models/ # Source files
│ │ └── 📜 RobotCase.f3d # Fusion 360 file
│ │
│ └── 📂 3dprint/ # Print files
│ └── 📂 stl/
│ ├── 📜 Case.stl
│ └── 📜 Mount.stl
│
├── 📂 _docs/ # All documentation
│ ├── 📂 notes/ # Project notes
│ │ ├── 📝 BuildNotes.txt
│ │ └── 📝 TODO.md
│ │
│ ├── 📂 images/ # Project images
│ │ ├── 📸 Prototype.jpg
│ │ └── 📸 Wiring.jpg
│ │
│ └── 📂 diagrams/ # Technical diagrams
│ └── 📊 Pinout.svg
│
├── 📜 README.md # Project documentation
└── 📜 project.yaml # Project metadata
Files Organized: 23 total
│
├── 📊 By Category
│ ├── Software: 35% (8 files)
│ ├── Hardware: 22% (5 files)
│ ├── CAD: 17% (4 files)
│ └── Docs: 26% (6 files)
│
└── 📈 Results
├── Structure: 100% compliant
├── Naming: Standardized
├── Versions: Tracked
└── Ready for: Git, Sharing, Team Work
- Always use
/mnt/c/...
style paths - Copy-paste paths from Windows Explorer and add
/mnt/c/
at start - Use Tab completion in WSL to verify paths
- Use descriptive project names
- Start with ONGOING or Test_Lab
- Move to DONE when complete
- Use Code_Vault for useful snippets
The tool automatically:
- Detects project type
- Preserves build settings
- Keeps libraries intact
- Organizes supporting files
- Project templates
- Backup features
- Git integration
- Project health checks
-
"Where should I put my project?"
- ONGOING: For active projects
- Test_Lab: For quick tests
- Code_Vault: For useful code bits
-
"What happens to my original files?"
- They stay where they are
- Tool creates organized copy
- Original files untouched
-
"I messed up the organization!"
- Just run again with a new project name
- Original files are safe
- Try different organization patterns
Love organizing? Got ideas? Contributions welcome!
- Fork the repo
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.
- Inspired by every maker's need for organization
- Built with ❤️ for the maker community
- Thanks to all contributors!
Made with 🛠️ by [SKTech] - For Makers, By Makers!
77c58e0e3047179eb5f50897ae60a3aa69e8ec8c