Skip to content

Commit e1653dd

Browse files
author
Donald Fountain
committed
chore: 🚀 Initial repository setup and commit
1 parent beea3d9 commit e1653dd

133 files changed

Lines changed: 4961 additions & 4144 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.
File renamed without changes.

.internal-files/README-pending.md

Whitespace-only changes.

.internal-files/example-github-sub-issue-script.ps1

Lines changed: 0 additions & 528 deletions
This file was deleted.

.internal-files/github-project-setup-methodology.md

Lines changed: 0 additions & 439 deletions
This file was deleted.

.internal-files/greptile-macroscope.md

Lines changed: 0 additions & 97 deletions
This file was deleted.
Lines changed: 83 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +1,113 @@
1-
# [PROJECT/AREA/SCOPE NAME] Architecture
1+
# Architecture
22

3-
<!--
4-
Purpose: System design, structure, patterns, and key decisions
5-
Audience: AI agents needing to understand how this is organized/built
6-
Update Frequency: When architectural patterns emerge or change
7-
-->
8-
9-
## Overview
10-
11-
<!-- High-level architectural summary in 2-3 paragraphs -->
12-
13-
[PROJECT/AREA/SCOPE NAME] is architected as...
14-
15-
<!-- Describe the fundamental structure, organization, or design approach -->
16-
17-
## Core Components
18-
19-
<!-- For projects: technical components. For life areas: organizational areas. For repos: code modules -->
20-
21-
### [Component/Area 1]
22-
**Purpose:** [What this does]
23-
**Location:** [Where this lives - path, directory, section]
24-
**Key Characteristics:** [Important details about this component]
25-
26-
### [Component/Area 2]
27-
**Purpose:** [What this does]
28-
**Location:** [Where this lives - path, directory, section]
29-
**Key Characteristics:** [Important details about this component]
30-
31-
### [Component/Area 3]
32-
**Purpose:** [What this does]
33-
**Location:** [Where this lives - path, directory, section]
34-
**Key Characteristics:** [Important details about this component]
35-
36-
## Structure
37-
38-
<!-- Directory/file structure, organizational hierarchy, or system layout -->
3+
## Repository Structure
394

405
```
41-
[project-root]/
42-
├── [directory-1]/ # [Purpose]
43-
│ ├── [subdirectory]/ # [Purpose]
44-
│ └── [file-pattern] # [Purpose]
45-
├── [directory-2]/ # [Purpose]
46-
│ └── [subdirectory]/ # [Purpose]
47-
└── [directory-3]/ # [Purpose]
6+
sharepoint-web-part/
7+
├── assets/ # Screenshots, repo banner, documentation images
8+
├── demo-corp-intranet/ # Main SPFx solution (production demo)
9+
│ ├── src/
10+
│ │ ├── assets/ # Web part graphics (hero, icons, cards)
11+
│ │ └── webparts/ # Web part implementations
12+
│ │ ├── heroBanner/
13+
│ │ ├── quickLinks/
14+
│ │ └── featureCards/
15+
│ ├── config/ # Build configuration
16+
│ └── sharepoint/solution/ # Packaged .sppkg output
17+
├── docs/ # Documentation and templates
18+
├── project/ # Initial Hello World test (archived)
19+
└── work-logs/ # Development milestone history
20+
└── 01-github-and-project-setup/
4821
```
4922

50-
<!--
51-
Adapt this to scope:
52-
- Projects: File system structure
53-
- Life areas: Organizational structure (how information/tasks are organized)
54-
- Repos: Code architecture and module layout
55-
-->
56-
57-
## Design Patterns and Principles
23+
## Web Part Architecture
5824

59-
<!-- Architectural decisions, design patterns used, principles followed -->
25+
### Design Pattern: HTML/CSS/JS (No Framework)
6026

61-
### Key Patterns
27+
**Rationale:**
6228

63-
- **[Pattern 1]:** [Description and rationale]
64-
- **[Pattern 2]:** [Description and rationale]
65-
- **[Pattern 3]:** [Description and rationale]
29+
- Simple for clients to customize
30+
- No React learning curve
31+
- Minimal build complexity
32+
- Property panes provide no-code configuration
6633

67-
<!-- Example: "Event-driven architecture for decoupled component communication" -->
34+
### Component Structure
6835

69-
### Design Principles
70-
71-
1. **[Principle 1]:** [What and why]
72-
2. **[Principle 2]:** [What and why]
73-
3. **[Principle 3]:** [What and why]
74-
75-
<!-- Example: "KISS principle: Prefer simple, terminal-ready solutions over complex frameworks" -->
76-
77-
## Integration Points
78-
79-
<!-- How this connects to other systems, projects, areas, or external services -->
80-
81-
### Internal Integrations
82-
- **[System/Project/Area]:** [How they connect, what's shared]
83-
- **[System/Project/Area]:** [How they connect, what's shared]
84-
85-
### External Integrations
86-
- **[Service/API/Tool]:** [Purpose, authentication, usage patterns]
87-
- **[Service/API/Tool]:** [Purpose, authentication, usage patterns]
88-
89-
## Data Flow
90-
91-
<!-- How information/data moves through the system -->
36+
Each web part follows the same pattern:
9237

9338
```
94-
[Source] → [Processing/Transformation] → [Destination]
39+
webpart-name/
40+
├── WebPartName.ts # TypeScript main file
41+
├── WebPartName.module.scss # Styles
42+
├── loc/ # Localization
43+
│ ├── mystrings.d.ts
44+
│ └── en-us.js
45+
└── WebPartName.manifest.json # Metadata
9546
```
9647

97-
<!-- Describe the primary data flows, pipelines, or information movement patterns -->
48+
### Data Flow
9849

99-
## Architectural Decisions
50+
1. **Property Pane → Properties Object** - User configures via UI
51+
2. **Properties → Render Logic** - TypeScript processes configuration
52+
3. **Render Logic → DOM** - HTML string injection with styles
53+
4. **Assets → require()** - Images bundled via Webpack
10054

101-
<!-- Record significant architectural decisions with rationale -->
55+
## Build System
10256

103-
### [Decision 1]: [Title]
104-
**Date:** YYYY-MM-DD
105-
**Decision:** [What was decided]
106-
**Rationale:** [Why this decision was made]
107-
**Alternatives Considered:** [What else was considered and why rejected]
108-
**Implications:** [What this means for the system]
57+
**Heft-based SPFx v1.22+**
10958

110-
### [Decision 2]: [Title]
111-
**Date:** YYYY-MM-DD
112-
**Decision:** [What was decided]
113-
**Rationale:** [Why this decision was made]
114-
**Alternatives Considered:** [What else was considered and why rejected]
115-
**Implications:** [What this means for the system]
59+
```
60+
Source Code (TypeScript + SCSS)
61+
62+
Compilation
63+
64+
JavaScript Bundles + CSS
65+
66+
Packaging
67+
68+
.sppkg (SharePoint Package)
69+
70+
App Catalog Deployment
71+
72+
Available in Web Part Picker
73+
```
11674

117-
## Constraints and Limitations
75+
## Deployment Architecture
11876

119-
<!-- Technical, organizational, or resource constraints affecting architecture -->
77+
```
78+
Local Development
79+
↓ (heft start)
80+
Workbench Testing
81+
↓ (heft package-solution --production)
82+
.sppkg Package
83+
↓ (Upload to App Catalog)
84+
Tenant-wide Deployment
85+
↓ (Add to SharePoint Page)
86+
Published Intranet Page
87+
```
12088

121-
- **[Constraint 1]:** [Description and impact]
122-
- **[Constraint 2]:** [Description and impact]
123-
- **[Constraint 3]:** [Description and impact]
89+
## Configuration Management
12490

125-
<!-- Example: "Token budget requires on-demand file access patterns instead of loading entire vault" -->
91+
- **Development:** `config/serve.json` (tenant domain)
92+
- **Build:** `config/package-solution.json` (version, ID)
93+
- **Dependencies:** `package.json` (npm packages)
94+
- **TypeScript:** `tsconfig.json` (compilation settings)
12695

127-
## Future Considerations
96+
## Asset Management
12897

129-
<!-- Planned evolution, scalability considerations, known technical debt -->
98+
**Two Asset Locations:**
13099

131-
### Planned Improvements
132-
- [Architectural improvement or refactoring planned]
133-
- [Architectural improvement or refactoring planned]
100+
1. **Repository Assets** (`/assets/`) - Documentation images, banner
101+
2. **Web Part Assets** (`/demo-corp-intranet/src/assets/`) - Graphics used by web parts (bundled in .sppkg)
134102

135-
### Scalability Considerations
136-
- [How this will scale or evolve]
137-
- [What might need to change as this grows]
103+
Assets in `src/assets/` are webpack-bundled and content-hashed for CDN caching.
138104

139-
### Known Technical Debt
140-
- [Shortcuts taken, areas needing refactoring]
141-
- [Shortcuts taken, areas needing refactoring]
105+
## Documentation Architecture
142106

143-
<!--
144-
SCOPE ADAPTATIONS:
107+
**Three-Tier Documentation:**
145108

146-
Projects: Technical architecture, system design, code patterns
147-
Life Areas: Organizational architecture, information structure, workflow patterns
148-
Repositories: Code architecture, module design, dependency structure
109+
1. **Hudu (Published)** - Operational procedures for Dev/Ops teams
110+
2. **Repository** - Technical reference, architecture decisions
111+
3. **Code Comments** - Inline implementation notes
149112

150-
This file should answer "How is this built/organized?" at a level that guides
151-
decision-making without requiring constant reference to implementation details.
152-
-->
113+
Cross-references link all three tiers for comprehensive coverage.

0 commit comments

Comments
 (0)