Skip to content

Commit a091ef3

Browse files
committed
Update website
1 parent e2b7777 commit a091ef3

7 files changed

Lines changed: 603 additions & 74 deletions

File tree

DEVLOG.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# Devlog
2+
3+
This devlog covers the work done after the `v2.1.3` release of Project Creator.
4+
5+
## After v2.1.3
6+
7+
### 2026-04-19 to 2026-04-29
8+
9+
After the last release, I turned Project Creator from a mostly functional CLI into a much more complete project scaffolding tool.
10+
11+
## What Changed
12+
13+
### Documentation overhaul
14+
15+
- Rewrote the main `README.md` into a more useful project overview
16+
- Added a full software guide in `docs/Documentation.md`
17+
- Added a polished documentation landing page in `docs/index.html`
18+
- Added `CONTRIBUTING.md` so template contributions are easier
19+
- Added `CHANGELOG.md` to track release history more clearly
20+
21+
### CLI improvements
22+
23+
- Expanded the CLI into a clearer numbered project scaffolding flow
24+
- Added support for multiple setup modes:
25+
- Manual Setup
26+
- Load Templates
27+
- Empty Repository
28+
- Added support for:
29+
- `web`
30+
- `venv`
31+
- `api`
32+
- `firm`
33+
- `docs`
34+
- `tests`
35+
- Added generation of `.env.example`
36+
- Added generation of `blueprint.json`
37+
- Improved Git initialization and push behavior
38+
- Switched the generated Git branch flow to `main`
39+
40+
### Template system
41+
42+
- Added bundled starter templates:
43+
- `basic-web`
44+
- `npm-package`
45+
- `python-pypi`
46+
- Added template documentation for the bundled templates
47+
- Added support for downloading templates from GitHub
48+
- Added external template loading through `source:https://...`
49+
50+
### Project structure cleanup
51+
52+
- Expanded the repo layout to separate docs, templates, and CLI code more clearly
53+
- Marked the old GUI version as discontinued and moved it into an archive-style folder
54+
- Cleaned up older release-era code and documentation so the project feels more consistent
55+
56+
## Why It Mattered
57+
58+
The biggest improvement was making the project feel like a real reusable tool instead of just a small script.
59+
60+
Before this stretch of work, the project was mostly about creating folders and doing a basic Git push. After this stretch, it can:
61+
62+
- scaffold different kinds of projects
63+
- generate starter files
64+
- download templates from GitHub
65+
- document itself properly
66+
- present itself more cleanly to new users
67+
68+
## Challenges
69+
70+
- Keeping the CLI simple while adding more setup options
71+
- Making template downloads feel reliable
72+
- Making Git automation less fragile
73+
- Writing documentation that explains the tool clearly without overwhelming people
74+
75+
## Current Status
76+
77+
Project Creator now has:
78+
79+
- a clearer CLI workflow
80+
- better docs
81+
- reusable templates
82+
- a more complete release structure
83+
84+
## Next Ideas
85+
86+
- add more templates
87+
- improve validation for project names
88+
- make generated metadata files optional
89+
- keep polishing the docs and release notes

README.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,16 @@ Not every folder is created every time. The final layout depends on the mode and
8484

8585
## Documentation
8686

87-
For the full software documentation, see [`docs/Documentation.md`](docs/Documentation.md).
87+
The full software guide now lives on the documentation site:
88+
89+
[`Project Creator Documentation`](https://devx-dragon.github.io/project-creator/docs/)
90+
91+
If you are browsing the repo locally, the source markdown is still in [`docs/documentation.md`](docs/documentation.md).
8892

8993
## Contributing
9094

91-
If you want to add or improve templates, read [`CONTRIBUTING.md`](CONTRIBUTING.md) first.
95+
Template contribution guidance now lives on the contribution site:
96+
97+
[`Project Creator Contributing`](https://devx-dragon.github.io/project-creator/contributing/)
98+
99+
If you are browsing the repo locally, the published markdown copy is in [`docs/contributing.md`](docs/contributing.md), and the root guide stays in [`CONTRIBUTING.md`](CONTRIBUTING.md).

docs/Documentation.md

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -251,75 +251,4 @@ When `api` is enabled:
251251

252252
When `firm` is enabled:
253253

254-
- `firmware/<project-name>.ino`
255-
256-
### Docs and tests
257-
258-
When selected:
259-
260-
- `docs/`
261-
- `tests/`
262-
263-
## 11. Error Handling
264-
265-
The CLI is designed to keep going where possible, but there are a few important failure points:
266-
267-
- Missing required system tools cause an immediate exit.
268-
- Git push can fail if the remote is empty, unavailable, or authentication is not configured.
269-
- Cloud template downloads can fail if the GitHub API is unavailable or the repository layout does not match expectations.
270-
- External source mode depends on the repository exposing a `templates/` directory.
271-
272-
Most runtime errors are caught and printed to the console instead of crashing with a full traceback.
273-
274-
## 12. Implementation Notes
275-
276-
The key functions in [`src/prj_creator/main.py`](../src/prj_creator/main.py) are:
277-
278-
- `check_system_health()`
279-
- Verifies `git`, `python`, and `pip` are available
280-
281-
- `fix_terminal()`
282-
- Applies Windows console fixes for UTF-8 and ANSI color output
283-
284-
- `get_next_num()`
285-
- Scans the current directory and computes the next folder number
286-
287-
- `download_remote_folder()`
288-
- Recursively downloads a GitHub repository folder
289-
290-
- `handle_git_logic()`
291-
- Writes `.gitignore`, initializes Git, commits, and pushes
292-
293-
- `generate_env_example()`
294-
- Writes `.env.example` based on selected features
295-
296-
- `run_wizard()`
297-
- Drives the interactive CLI flow
298-
299-
- `handle_external_source()`
300-
- Loads a template from a `source:` repository URL
301-
302-
## 13. Behavior Summary
303-
304-
At a high level, Project Creator does three things:
305-
306-
1. Creates a numbered project folder.
307-
2. Scaffolds files and directories based on your chosen mode.
308-
3. Optionally turns the folder into a Git repository and pushes it.
309-
310-
That makes it suitable for quickly starting a new repo without repeating the same setup work every time.
311-
312-
## 14. Current Limitations
313-
314-
The current implementation has a few practical limitations worth knowing:
315-
316-
- The project name is converted by replacing spaces with hyphens only. It does not perform deep sanitization.
317-
- `handle_external_source()` expects a `source:` string in a very specific format.
318-
- Cloud template mode assumes the GitHub repository structure matches the hardcoded `templates/` layout.
319-
- The code checks for `python` on `PATH`, which is fine on many systems but can vary by platform installation.
320-
321-
These are not necessarily bugs, but they are important implementation details for users and contributors.
322-
323-
## 15. License
324-
325-
See [`LICENSE`](../LICENSE).
254+
-

docs/contributing.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Contributing Templates
2+
3+
Thanks for helping improve Project Creator.
4+
5+
This repo accepts template contributions through pull requests, especially for the `templates/` folder that powers the cloud template workflow.
6+
7+
## What To Contribute
8+
9+
You can open a pull request with:
10+
11+
- A new template folder
12+
- An improvement to an existing template
13+
- Fixes to generated starter files
14+
- Small documentation updates that help explain a template
15+
16+
## Template Folder Rules
17+
18+
Please keep each template self-contained inside `templates/`.
19+
20+
Recommended layout:
21+
22+
```text
23+
templates/
24+
your-template-name/
25+
files...
26+
```
27+
28+
Guidelines:
29+
30+
- Use lowercase names with hyphens if possible
31+
- Keep the folder name descriptive
32+
- Include only the files needed for that template
33+
- Make sure the template works when copied into a fresh project folder
34+
- Avoid committing secrets, tokens, or machine-specific files
35+
36+
## Good Template Examples
37+
38+
A template may contain things like:
39+
40+
- starter HTML, CSS, and JavaScript files
41+
- a Python app skeleton
42+
- an Arduino or firmware scaffold
43+
- documentation or test folders
44+
- placeholder config files
45+
46+
## Before You Open a Pull Request
47+
48+
Please check that:
49+
50+
- The template opens and runs correctly after being downloaded
51+
- File paths are correct
52+
- File names are consistent
53+
- The template does not depend on local-only setup
54+
- The README or documentation needs are covered if the template has special steps
55+
56+
## Pull Request Tips
57+
58+
- Add a short description of what the template is for
59+
- Include screenshots if the template has a visual result
60+
- Mention any special setup or dependencies
61+
- Say whether the template is new or an update to an existing one
62+
63+
## Reporting Problems
64+
65+
If a template is broken or downloads incorrectly, open an issue or a pull request with:
66+
67+
- The template name
68+
- What you expected to happen
69+
- What actually happened
70+
- Any error message you saw
71+
72+
## Code Style
73+
74+
If you are editing project code as part of your contribution:
75+
76+
- Keep changes focused
77+
- Follow the existing Python style
78+
- Avoid unrelated cleanup in the same pull request
79+
80+
## Thank You
81+
82+
Template contributions help keep Project Creator useful for more kinds of projects. Small, well-made templates are especially welcome.

0 commit comments

Comments
 (0)