Skip to content

Commit 847faf9

Browse files
committed
chore: add project context documentation for better navigation and understanding
1 parent aa67689 commit 847faf9

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

CONTEXT.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Project Context
2+
3+
This file contains essential information about the project structure, configuration, and workflows to assist AI agents and developers in navigating the codebase.
4+
5+
## 🏢 Project Overview
6+
**inovex elements** is a monorepo containing a collection of enterprise-grade Web Components built with **StencilJS**. Ideally libraries are framework-agnostic but this repository also includes wrapper libraries for **React**, **Angular**, and **Vue** to ensure seamless integration.
7+
8+
- **Monorepo Tool:** [Nx](https://nx.dev)
9+
- **Package Manager:** [pnpm](https://pnpm.io) (utilizing workspaces)
10+
- **Core Technology:** [StencilJS](https://stenciljs.com)
11+
12+
## 📂 Repository Structure
13+
14+
The project code is located in the `packages/` directory:
15+
16+
| Package | Description | Framework / Tech |
17+
| :--- | :--- | :--- |
18+
| **`elements`** | **Core** library containing the Stencil web components. | StencilJS, TypeScript, SCSS |
19+
| **`elements-angular`** | Angular wrappers for `elements`. | Angular |
20+
| **`elements-react`** | React wrappers for `elements`. | React |
21+
| **`elements-vue`** | Vue wrappers for `elements`. | Vue 3 |
22+
| **`storybook`** | Component documentation and playground. | Storybook |
23+
| **`landingpage`** | The public website for inovex elements. | Next.js |
24+
| **`ui-patterns`** | Higher-level UI patterns and compositions. | React (mostly) |
25+
| **`*-example`** | Example applications demonstrating usage. | Angular, React, Vue |
26+
27+
## 🚀 Key Commands
28+
29+
Run these commands from the root directory using `pnpm`.
30+
31+
### Development
32+
- **`pnpm start:storybook`**: Starts the Storybook development server (documentation & component playground).
33+
- **`pnpm start:landingpage`**: Starts the landing page development server.
34+
- **`pnpm start:ui-patterns-playground`**: Starts the UI patterns playground.
35+
36+
### Build & Quality
37+
- **`pnpm build`**: Builds all projects in the monorepo (using Nx).
38+
- **`pnpm test`**: Runs unit and E2E tests for all projects (configured for CI).
39+
- **`pnpm lint`**: Lints affected projects.
40+
- **`pnpm lint:fix`**: Lints and auto-fixes issues.
41+
- **`pnpm format`**: Checks code formatting (Prettier).
42+
- **`pnpm format:fix`**: Fixes code formatting.
43+
- **`pnpm qc`**: **Quality Control** - runs `lint:ci`, `format`, `build`, and `test` sequentially. Run this before pushing!
44+
45+
### Maintenance
46+
- **`pnpm clean`**: Cleans all build artifacts (`node_modules`, `dist`, `.nx`, etc.).
47+
48+
## 🛠️ Technology Stack & Configuration
49+
50+
- **TypeScript**: Used throughout the repository.
51+
- **SCSS**: Used for styling components in `packages/elements`.
52+
- **Playwright**: Used for End-to-End (E2E) testing.
53+
- **Jest**: Used for unit testing (Stencil default).
54+
- **Prettier & ESLint**: Enforced code style and quality.
55+
56+
## 🧭 Navigation Tips for AI Agents
57+
58+
1. **Component Logic**: Look in `packages/elements/src/components/<component-name>/`.
59+
- `*.tsx`: Component logic (Stencil).
60+
- `*.scss`: Styles.
61+
- `readme.md`: Generated documentation (do not edit manually unless specified).
62+
2. **Wrappers**: If working on framework-specific issues, check `packages/elements-{react,angular,vue}`.
63+
3. **Docs**: Stored in `packages/storybook` or `packages/elements/*/readme.md`.
64+
4. **Workflows**: CI/CD pipelines are defined in `.github/workflows/`.

0 commit comments

Comments
 (0)