Skip to content

Commit 0161b72

Browse files
authored
Initial commit
0 parents  commit 0161b72

97 files changed

Lines changed: 12638 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 372 additions & 0 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# ============================================================
2+
# Next.js / Node
3+
# ============================================================
4+
node_modules/
5+
.next/
6+
out/
7+
.env
8+
.env.local
9+
.env.*.local
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
14+
# ============================================================
15+
# .NET / C#
16+
# ============================================================
17+
**/bin/
18+
**/obj/
19+
*.user
20+
*.suo
21+
*.userosscache
22+
*.sln.docstates
23+
.vs/
24+
publish/
25+
*.nupkg
26+
*.snupkg
27+
TestResults/
28+
coverage/
29+
30+
# ============================================================
31+
# Azure / Bicep
32+
# ============================================================
33+
.azure/
34+
*.bicepparam.local
35+
36+
# ============================================================
37+
# Misc
38+
# ============================================================
39+
.DS_Store
40+
Thumbs.db
41+
*.log
42+
*.tmp
43+
44+
# JetBrains Rider
45+
*.sln.iml
46+
.idea

AGENTS.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# TemplateApp — Agent Instructions
2+
3+
## Project Setup
4+
5+
Run this once when you first clone the template, before doing anything else.
6+
7+
1. Ask the user for the following values:
8+
- Project name in **PascalCase** (e.g. `AcmePlatform`) — replaces `TemplateApp`
9+
- Project name in **lowercase, no spaces** (e.g. `acmeplatform`) — replaces `templateapp`
10+
- ADO service connection name — replaces `templateapp-azure-sc`
11+
- Keycloak hostname — replaces `keycloak.example.com`
12+
- Azure region — replaces `australiaeast`
13+
- Resource group names for uat and prod — replaces `templateapp-uat-rg` / `templateapp-prod-rg`
14+
- New git remote URL for the project repository
15+
16+
2. Perform **case-sensitive** find-and-replace across the entire repo for each value above.
17+
18+
3. Rename files and update references:
19+
- Rename `backend/TemplateApp.sln``<YourName>.sln`
20+
- Rename `backend/src/TemplateApp.Api/``backend/src/<YourName>.Api/`
21+
- Rename `backend/src/TemplateApp.Api/TemplateApp.Api.csproj``<YourName>.Api.csproj`
22+
- Rename `backend/tests/TemplateApp.Api.Tests/` and its `.csproj` accordingly
23+
- Update the project paths inside the `.sln` file to match the new names
24+
25+
4. Confirm all substitutions were made and list every changed file.
26+
27+
5. Update `README.md` with the new project name and ask the user for a one-paragraph description of the project, then write it in.
28+
29+
6. Remove the **Project Setup** and **Before Any Other Work** sections from both `CLAUDE.md` and `AGENTS.md` — they are one-time instructions and should not remain in the adapted project.
30+
31+
7. Clean up git history so the new project starts fresh:
32+
- Stage all current files and squash the entire template history into a single initial commit:
33+
```bash
34+
git checkout --orphan fresh-start
35+
git add -A
36+
git commit -m "Initial commit"
37+
git branch -D main
38+
git branch -m main
39+
```
40+
- Update the remote origin to the new project URL and push:
41+
```bash
42+
git remote set-url origin <new-remote-url>
43+
git push -u origin main
44+
```
45+
46+
---
47+
48+
## Before Any Other Work
49+
50+
Check that `TemplateApp` and `templateapp` no longer appear in the codebase. If they do, stop and ask the user to run the Project Setup above before continuing.
51+
52+
---
53+
54+
## Code Style
55+
56+
Follow `.editorconfig` at the repo root for all formatting decisions — indent size, line endings, charset, C# naming conventions, and C# language feature preferences. Do not override or duplicate its rules.
57+
58+
---
59+
60+
## Documentation
61+
62+
### Backend (C#)
63+
64+
All public classes, methods, and properties must have XML doc comments:
65+
66+
```csharp
67+
/// <summary>Brief description of what this does.</summary>
68+
/// <param name="paramName">What the parameter is.</param>
69+
/// <returns>What is returned.</returns>
70+
```
71+
72+
Internal and private members: add a comment only when the intent is not obvious from the name and types alone.
73+
74+
### Frontend (TypeScript)
75+
76+
All exported functions, components, and hooks must have JSDoc comments:
77+
78+
```ts
79+
/**
80+
* Brief description of what this does.
81+
* @param paramName - what the parameter is
82+
* @returns what is returned
83+
*/
84+
```
85+
86+
Inline comments for non-obvious logic only — do not comment self-evident code.
87+
88+
---
89+
90+
## Testing
91+
92+
### Backend
93+
94+
- **Framework:** xUnit
95+
- **Location:** `backend/tests/TemplateApp.Api.Tests/` (rename after project setup)
96+
- **Attributes:** `[Fact]` for single cases, `[Theory]` + `[InlineData]` for parameterised cases
97+
- **Naming:** `MethodName_ExpectedBehaviour_Condition`
98+
- **Pattern:** use `WebApplicationFactory` integration tests for controllers and middleware; plain unit tests for pure logic classes
99+
100+
### Frontend
101+
102+
- **Framework:** Vitest + React Testing Library (set up if not already present)
103+
- **Location:** colocate tests alongside source files as `ComponentName.test.tsx`, or group in a `__tests__/` folder in the same directory
104+
- **Naming:** `describe` block per component or function; `it('does x when y')`
105+
106+
---
107+
108+
## Commits
109+
110+
After making code changes, create commits that group changes in functionally meaningful ways. Each commit should represent one coherent unit of work (e.g. a new feature, a bug fix, a refactor) — not one commit per file, and not all changes lumped into one commit.

CLAUDE.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# TemplateApp — Agent Instructions
2+
3+
## Project Setup
4+
5+
Run this once when you first clone the template, before doing anything else.
6+
7+
1. Ask the user for the following values:
8+
- Project name in **PascalCase** (e.g. `AcmePlatform`) — replaces `TemplateApp`
9+
- Project name in **lowercase, no spaces** (e.g. `acmeplatform`) — replaces `templateapp`
10+
- ADO service connection name — replaces `templateapp-azure-sc`
11+
- Keycloak hostname — replaces `keycloak.example.com`
12+
- Azure region — replaces `australiaeast`
13+
- Resource group names for uat and prod — replaces `templateapp-uat-rg` / `templateapp-prod-rg`
14+
- New git remote URL for the project repository
15+
16+
2. Perform **case-sensitive** find-and-replace across the entire repo for each value above.
17+
18+
3. Rename files and update references:
19+
- Rename `backend/TemplateApp.sln``<YourName>.sln`
20+
- Rename `backend/src/TemplateApp.Api/``backend/src/<YourName>.Api/`
21+
- Rename `backend/src/TemplateApp.Api/TemplateApp.Api.csproj``<YourName>.Api.csproj`
22+
- Rename `backend/tests/TemplateApp.Api.Tests/` and its `.csproj` accordingly
23+
- Update the project paths inside the `.sln` file to match the new names
24+
25+
4. Confirm all substitutions were made and list every changed file.
26+
27+
5. Update `README.md` with the new project name and ask the user for a one-paragraph description of the project, then write it in.
28+
29+
6. Remove the **Project Setup** and **Before Any Other Work** sections from both `CLAUDE.md` and `AGENTS.md` — they are one-time instructions and should not remain in the adapted project.
30+
31+
7. Clean up git history so the new project starts fresh:
32+
- Stage all current files and squash the entire template history into a single initial commit:
33+
```bash
34+
git checkout --orphan fresh-start
35+
git add -A
36+
git commit -m "Initial commit"
37+
git branch -D main
38+
git branch -m main
39+
```
40+
- Update the remote origin to the new project URL and push:
41+
```bash
42+
git remote set-url origin <new-remote-url>
43+
git push -u origin main
44+
```
45+
46+
---
47+
48+
## Before Any Other Work
49+
50+
Check that `TemplateApp` and `templateapp` no longer appear in the codebase. If they do, stop and ask the user to run the Project Setup above before continuing.
51+
52+
---
53+
54+
## Code Style
55+
56+
Follow `.editorconfig` at the repo root for all formatting decisions — indent size, line endings, charset, C# naming conventions, and C# language feature preferences. Do not override or duplicate its rules.
57+
58+
---
59+
60+
## Documentation
61+
62+
### Backend (C#)
63+
64+
All public classes, methods, and properties must have XML doc comments:
65+
66+
```csharp
67+
/// <summary>Brief description of what this does.</summary>
68+
/// <param name="paramName">What the parameter is.</param>
69+
/// <returns>What is returned.</returns>
70+
```
71+
72+
Internal and private members: add a comment only when the intent is not obvious from the name and types alone.
73+
74+
### Frontend (TypeScript)
75+
76+
All exported functions, components, and hooks must have JSDoc comments:
77+
78+
```ts
79+
/**
80+
* Brief description of what this does.
81+
* @param paramName - what the parameter is
82+
* @returns what is returned
83+
*/
84+
```
85+
86+
Inline comments for non-obvious logic only — do not comment self-evident code.
87+
88+
---
89+
90+
## Testing
91+
92+
### Backend
93+
94+
- **Framework:** xUnit
95+
- **Location:** `backend/tests/TemplateApp.Api.Tests/` (rename after project setup)
96+
- **Attributes:** `[Fact]` for single cases, `[Theory]` + `[InlineData]` for parameterised cases
97+
- **Naming:** `MethodName_ExpectedBehaviour_Condition`
98+
- **Pattern:** use `WebApplicationFactory` integration tests for controllers and middleware; plain unit tests for pure logic classes
99+
100+
### Frontend
101+
102+
- **Framework:** Vitest + React Testing Library (set up if not already present)
103+
- **Location:** colocate tests alongside source files as `ComponentName.test.tsx`, or group in a `__tests__/` folder in the same directory
104+
- **Naming:** `describe` block per component or function; `it('does x when y')`
105+
106+
---
107+
108+
## Commits
109+
110+
After making code changes, create commits that group changes in functionally meaningful ways. Each commit should represent one coherent unit of work (e.g. a new feature, a bug fix, a refactor) — not one commit per file, and not all changes lumped into one commit.

0 commit comments

Comments
 (0)