Skip to content

Commit 31db890

Browse files
committed
Add comprehensive CLI usage reference and argument parsing
1 parent 5695555 commit 31db890

3 files changed

Lines changed: 707 additions & 66 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ start-it-cli
6363

6464
The CLI then guides the project setup interactively.
6565

66+
For the full command reference, flags, output-directory options, and non-interactive examples, see [USAGE.md](./docs/USAGE.md).
67+
6668
## Example Flows
6769

6870
### Backend Example

docs/USAGE.md

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
# Usage Reference
2+
3+
This document covers the command-line usage patterns for `start-it-cli`, including interactive, partially guided, and non-interactive generation.
4+
5+
## Basic Usage
6+
7+
Run the CLI in fully guided mode:
8+
9+
```bash
10+
start-it-cli
11+
```
12+
13+
Or provide the project name up front:
14+
15+
```bash
16+
start-it-cli my-app
17+
```
18+
19+
## Output Directory
20+
21+
Use `--path`, `--dir`, or `--directory` to choose the base directory where the project folder will be created:
22+
23+
```bash
24+
start-it-cli my-app --path ~/projects
25+
```
26+
27+
This creates:
28+
29+
```text
30+
~/projects/my-app
31+
```
32+
33+
## Core Flags
34+
35+
```text
36+
--name, --project-name <name>
37+
--path, --dir, --directory <path>
38+
--app-type <backend|frontend|ai-ml|dsa-specific>
39+
--stack <stack>
40+
--profile <exam|startup|production>
41+
--domain <label>
42+
--app-name <name>
43+
--yes, --non-interactive
44+
--help
45+
```
46+
47+
## Interactive vs Non-Interactive
48+
49+
### Fully Interactive
50+
51+
```bash
52+
start-it-cli
53+
```
54+
55+
The CLI asks for everything.
56+
57+
### Partially Guided
58+
59+
```bash
60+
start-it-cli fire_extinguisher_ms --app-type backend --stack python-fastapi
61+
```
62+
63+
The provided values are used directly, and the remaining values are prompted for.
64+
65+
### Non-Interactive Defaults
66+
67+
```bash
68+
start-it-cli fire_extinguisher_ms --app-type backend --stack python-fastapi --yes
69+
```
70+
71+
Any missing values are filled from defaults instead of prompting.
72+
73+
## Stack Selection
74+
75+
If you provide `--stack` without `--app-type`, the CLI infers the app type automatically when possible.
76+
77+
Example:
78+
79+
```bash
80+
start-it-cli ui-console --stack react-vite --yes
81+
```
82+
83+
## Backend Flags
84+
85+
```text
86+
--databases <csv>
87+
--security-preset <none|bcrypt|argon2|bcrypt-jwt|argon2-jwt>
88+
--logging <value>
89+
--monitoring <none|health-only|prometheus-ready>
90+
--testing <value>
91+
```
92+
93+
Example:
94+
95+
```bash
96+
start-it-cli fire_extinguisher_ms \
97+
--app-type backend \
98+
--stack python-fastapi \
99+
--path ~/services \
100+
--profile production \
101+
--databases postgresql,redis \
102+
--security-preset bcrypt-jwt \
103+
--logging structlog \
104+
--monitoring prometheus-ready \
105+
--testing pytest-httpx
106+
```
107+
108+
## Frontend Flags
109+
110+
```text
111+
--routing <none|react-router>
112+
--next-router <app-router|pages-router>
113+
--styling <plain-css|tailwind>
114+
--ui-addon <none|shadcn-ui>
115+
--state-management <none|context|zustand>
116+
--data-fetching <fetch|tanstack-query>
117+
--testing <value>
118+
```
119+
120+
Example:
121+
122+
```bash
123+
start-it-cli ops-console \
124+
--stack react-vite \
125+
--profile startup \
126+
--styling tailwind \
127+
--ui-addon shadcn-ui \
128+
--state-management zustand \
129+
--data-fetching tanstack-query \
130+
--testing vitest-rtl \
131+
--yes
132+
```
133+
134+
## AI / ML Flags
135+
136+
```text
137+
--serving-mode <value>
138+
--execution-mode <value>
139+
--runtime-mode <value>
140+
--model-packaging <value>
141+
--tracking <value>
142+
--validation <value>
143+
--logging <value>
144+
--testing <value>
145+
```
146+
147+
Example:
148+
149+
```bash
150+
start-it-cli model-serving \
151+
--stack python-fastapi-serving \
152+
--profile production \
153+
--serving-mode realtime-plus-batch \
154+
--model-packaging mlflow-ready \
155+
--tracking mlflow \
156+
--validation pydantic-plus-pandera \
157+
--logging structlog \
158+
--testing pytest-httpx \
159+
--yes
160+
```
161+
162+
## DSA Flags
163+
164+
```text
165+
--track <competitive-programming|interview-prep>
166+
--input-mode <stdin-stdout|function-first>
167+
--testing <manual-cases|ctest|pytest>
168+
```
169+
170+
Example:
171+
172+
```bash
173+
start-it-cli algo-lab \
174+
--stack dsa-python \
175+
--track interview-prep \
176+
--input-mode function-first \
177+
--testing pytest \
178+
--yes
179+
```
180+
181+
## Help
182+
183+
Print the command reference:
184+
185+
```bash
186+
start-it-cli --help
187+
```

0 commit comments

Comments
 (0)