A powerful command-line tool for quickly scaffolding new projects with predefined templates for multiple programming languages. This tool creates project structures with common files, build configurations, and best practices for each supported language.
- Features
- Supported Languages and Templates
- Installation
- Usage
- Template Details
- Requirements
- Configuration
- Uninstallation
- File Structure
- Version Management
- Troubleshooting
- Contributing
- License
- Changelog
- π Quick Project Setup: Create new projects in seconds with predefined templates
- π Multi-Language Support: Templates for C, C++, Python, JavaScript, Frontend (HTML/CSS/JS), Rust, and Go
- π Organized Structure: Each template includes appropriate directory structure and starter files
- π§ Build System Ready: Includes Makefiles, package.json, Cargo.toml, and other build configurations
- π Git Integration: Automatically initializes Git repository
- π GitHub Integration: Optional automatic GitHub repository creation and push
- βοΈ Easy Installation: Simple setup script for system-wide availability
- π Version Management: Intelligent version checking to avoid overwriting newer installations
| Language | Template Includes |
|---|---|
| C | Makefile, includes/, srcs/, main.c, .gitignore |
| C++ | Makefile, include/, src/, main.cpp, .gitignore |
| Python | package structure, requirements.txt, tests/, .gitignore |
| JavaScript | package.json, index.js, lib/, .gitignore |
| Frontend | index.html, style.css, script.js, assets/, .gitignore |
| Rust | Cargo.toml, src/main.rs, .gitignore |
| Go | go.mod, main.go, .gitignore |
./setup.sh install- Clone or download this repository
- Run the setup script:
chmod +x setup.sh createproj generate_template.sh ./setup.sh install
- Restart your terminal or source your shell configuration:
source ~/.bashrc # or ~/.zshrc
The installer will:
- Copy scripts to
~/bin/ - Add
~/binto your PATH - Create backups of your shell configuration
- Generate templates in
~/.createproj_templates/
createproj --lang <language> <project-name>createproj --lang <language> <project-name> --githubCreate a C project:
createproj --lang c my-c-toolCreate a Python project with GitHub repo:
createproj --lang python my-python-script --githubCreate a Rust project:
createproj --lang rust my-rust-appCreate a frontend project:
createproj --lang frontend my-website| Option | Description |
|---|---|
--lang <language> |
Specify the project language (c, cpp, python, js, frontend, rust, go) |
--github |
Create and push to a GitHub repository (requires GitHub CLI) |
-h, --help |
Show help menu |
project_name/
βββ includes/
β βββ includes.h
β βββ typedefs.h
βββ srcs/
β βββ main.c
βββ extLibs/
βββ obj/
βββ Makefile
βββ README.md
βββ .gitignore
project_name/
βββ project_name/
β βββ __init__.py
β βββ main.py
βββ tests/
β βββ test_main.py
βββ requirements.txt
βββ README.md
βββ .gitignore
project_name/
βββ src/
β βββ main.rs
βββ Cargo.toml
βββ README.md
βββ .gitignore
- Bash shell
- Git
- GitHub CLI (
gh): Required for--githubflag# Install GitHub CLI # Ubuntu/Debian: sudo apt install gh # macOS: brew install gh # Then authenticate: gh auth login
Templates are stored in ~/.createproj_templates/. You can customize any template by editing the files in the respective language directory.
- Create a new directory in
~/.createproj_templates/ - Add your template files
- Update
generate_template.shto include your new template
To remove the tool completely:
./setup.sh uninstallThis will:
- Remove scripts from
~/bin/ - Clean PATH modifications from shell configuration
- Create backups before making changes
project-init/
βββ setup.sh # Installation/uninstallation script
βββ createproj # Main project creation script
βββ generate_template.sh # Template generation script
βββ README.md # This file
The tool includes intelligent version management:
- Each script contains a version number
- Installation checks for newer versions before overwriting
- Prevents accidental downgrades
Command not found after installation:
# Reload your shell configuration
source ~/.bashrc # or ~/.zshrc
# Or restart your terminalGitHub integration fails:
# Install and authenticate GitHub CLI
gh auth loginTemplate not found:
# Regenerate templates
./generate_template.shRun createproj --help for usage information and examples.
Contributions are welcome! Here's how you can help improve this project:
- π Report Bugs: Open an issue describing the bug with steps to reproduce
- π‘ Suggest Features: Propose new languages, templates, or functionality
- π Improve Documentation: Help make the README clearer or add examples
- π§ Add Templates: Create templates for new languages or frameworks
- π Code Improvements: Optimize existing code or add new features
- Fork the repository on GitHub
- Create a feature branch from main:
git checkout -b feature/your-feature-name
- Make your changes:
- Add or modify templates in
generate_template.sh - Update version numbers in scripts if needed
- Test your changes thoroughly
- Add or modify templates in
- Update documentation if needed
- Commit your changes with clear, descriptive messages
- Push to your fork and create a pull request
- Describe your changes in the pull request description
- Follow existing code style and patterns
- Test new templates thoroughly
- Update the README if adding new features
- Ensure all scripts remain POSIX-compliant where possible
- Add appropriate error handling
- New Language Templates: Java, PHP, TypeScript, Swift, Kotlin
- Framework Templates: React, Vue, Django, Flask, Express
- Advanced Features: Custom template repositories, interactive setup
- Platform Support: Windows PowerShell compatibility
- Documentation: Video tutorials, advanced usage examples
We appreciate all contributions, big and small! π
This project is open source. Feel free to use, modify, and distribute.
- Initial release
- Support for C, C++, Python, JavaScript, Frontend, Rust, and Go
- GitHub integration
- Intelligent installation system
- Version management
