Inspiration
Starting a new programming project often means repeating the same setup steps—creating folders, adding configuration files, and setting up version control. I wanted to remove that friction and build a tool that could automate project scaffolding while helping me deepen my understanding of modern C++ and how executables interact with the file system.
What it does
ForgeCLI is a C++ command-line tool that scaffolds new projects instantly. Given a project name, it creates a structured directory layout and generates essential starter files such as a .gitignore, allowing developers to begin coding immediately without manual setup.
How I built it
ForgeCLI was built entirely in C++ using the Standard Template Library. I used std::filesystem to handle directory and file creation at runtime and designed the program as an interactive CLI that guides users through the setup process. Git and GitHub were used for version control and project management.
Challenges I ran into
One of the biggest challenges was understanding how executables create and manage files outside of their own directory. Handling file paths correctly and ensuring folders were created in the intended locations required careful testing and debugging. Designing a clear and user-friendly command-line flow was also a challenge.
Accomplishments that I'm proud of
I successfully built a functional CLI tool in C++ that automates a real-world developer workflow. Completing a working project that interacts with the file system and generates usable project structures was a major milestone for me.
What I learned
Through this project, I gained hands-on experience with C++ file system operations, CLI tool design, and executable behavior. I also learned how to structure a small utility project in a way that is modular, maintainable, and practical.
What's next for Untitled
Planned improvements include adding customizable templates, support for multiple programming languages, and expanded configuration options to make the tool more flexible and cross-platform.
Built With
- adding-configuration-files
- and-setting-up-version-control.-i-wanted-a-simple
- c++
- command-line-interface-(cli)
- git
- standard-template-library-(stl)
- std/filesystem
- visual-studio