NextGraph integration (WIP), broker banner, and feature-based architecture

- Add NextGraph data layer with @ng-org/orm, SHEX shapes (Event, UserProfile,
  Participation), session management, and FestipodDataContext with dual-mode
  operation (connected via NextGraph or local seed data)
- Add BrokerBanner and NgStatus components showing connection status
- Refactor to feature-based architecture: organize code by business domain
  (event, user, home, auth, workshop, meeting, notification) instead of
  technical layer. Modules only import from shared/, never from each other
- Collocate BDD features and step definitions with their modules: event-specific
  steps in event/steps/, user steps in user/steps/, shared generic steps remain
  in shared/steps/
- Set up multi-layer BDD structure (frontend/backend/e2e steps per module)
- Add project documentation (AGENTS.md, .project/knowledge/)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sylvain Duchesne
2026-03-11 12:19:45 +01:00
parent c9bc957d2a
commit 901fd659df
128 changed files with 5738 additions and 2885 deletions
+18 -6
View File
@@ -11,11 +11,23 @@ interface StepDefinition {
lineNumber: number;
}
const stepFiles = [
'features/step_definitions/navigation.steps.ts',
'features/step_definitions/form.steps.ts',
'features/step_definitions/screen.steps.ts',
];
import { Glob } from 'bun';
// Discover all step definition files: shared + module-specific
function discoverStepFiles(): string[] {
const files: string[] = [];
// Shared steps
for (const f of new Glob('src/shared/steps/**/*.steps.ts').scanSync('.')) {
files.push(f);
}
// Module steps
for (const f of new Glob('src/modules/*/steps/**/*.steps.ts').scanSync('.')) {
files.push(f);
}
return files.sort();
}
const stepFiles = discoverStepFiles();
function extractStepDefinitions(): StepDefinition[] {
const definitions: StepDefinition[] = [];
@@ -115,7 +127,7 @@ export const stepDefinitions: StepDefinitionInfo[] = ${JSON.stringify(definition
${findFunctionCode}
`;
await Bun.write('src/data/stepDefinitions.ts', output);
await Bun.write('src/shared/data/stepDefinitions.ts', output);
console.log(`Generated ${definitions.length} step definitions`);
}