docs: add architecture and veins documentation
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- System overview, artery hierarchy, build flow, room config diagrams - Veins docs: Jira, Slack, Google OAuth - Shunts docs: MercadoPago mock - DOT source files with generated SVGs - HTML viewers with navigation and full-screen mode Solves: - Freelance work standardization - Missing infrastructure replication (shunts) - Reliable testing environment (BDD -> Gherkin -> Tests)
This commit is contained in:
206
docs/architecture/index.html
Normal file
206
docs/architecture/index.html
Normal file
@@ -0,0 +1,206 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Soleprint - Architecture</title>
|
||||
<link rel="stylesheet" href="styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>Soleprint</h1>
|
||||
<p class="subtitle">Cada paso deja huella / Each step leaves a mark</p>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<!-- What it solves -->
|
||||
<section class="findings-section">
|
||||
<h2>What Soleprint Solves</h2>
|
||||
<div class="findings-grid">
|
||||
<article class="finding-card">
|
||||
<h3>Freelance Work Standardization</h3>
|
||||
<p>Generalizing and homogenizing freelance work across projects. Instead of setting up different environments, testing approaches, and connector patterns for each client, Soleprint provides a consistent framework. Build once, reuse everywhere.</p>
|
||||
</article>
|
||||
<article class="finding-card">
|
||||
<h3>Missing Infrastructure Replication</h3>
|
||||
<p>When working with large corps where you can't access their Jira, Slack, payment systems, or internal APIs directly - Soleprint's shunts let you mock those systems locally. Test against fake MercadoPago, fake Jira tickets, fake webhooks without needing real credentials.</p>
|
||||
</article>
|
||||
<article class="finding-card">
|
||||
<h3>Reliable Testing Environment</h3>
|
||||
<p>Figure out what tests to write by actually running flows in a controlled environment. BDD -> Gherkin -> Tests workflow. Instead of guessing what to test, you explore the actual behavior first, document it, then generate tests from that documentation.</p>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- System Overview -->
|
||||
<section class="graph-section" id="overview">
|
||||
<div class="graph-header-row">
|
||||
<h2>System Overview</h2>
|
||||
<a href="graph.html?g=01-system-overview" class="view-btn">View Full</a>
|
||||
</div>
|
||||
<a href="graph.html?g=01-system-overview" class="graph-preview">
|
||||
<img src="01-system-overview.svg" alt="System Overview" />
|
||||
</a>
|
||||
<div class="graph-details">
|
||||
<p>The four systems that make up Soleprint.</p>
|
||||
<h4>Systems</h4>
|
||||
<ul>
|
||||
<li><strong>Soleprint</strong>: Core coordinator hub (port 12000)</li>
|
||||
<li><strong>Artery</strong>: Connectors to external services - "Todo lo vital"</li>
|
||||
<li><strong>Atlas</strong>: Actionable documentation - "Documentacion accionable"</li>
|
||||
<li><strong>Station</strong>: Tools and monitors - "Centro de control"</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Artery Hierarchy -->
|
||||
<section class="graph-section" id="artery">
|
||||
<div class="graph-header-row">
|
||||
<h2>Artery Hierarchy</h2>
|
||||
<a href="graph.html?g=02-artery-hierarchy" class="view-btn">View Full</a>
|
||||
</div>
|
||||
<a href="graph.html?g=02-artery-hierarchy" class="graph-preview">
|
||||
<img src="02-artery-hierarchy.svg" alt="Artery Hierarchy" />
|
||||
</a>
|
||||
<div class="graph-details">
|
||||
<p>How connectors evolve from simple to complex.</p>
|
||||
<h4>Connector Types</h4>
|
||||
<table class="details-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
<th>Example</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Vein</td>
|
||||
<td>Stateless API connector</td>
|
||||
<td>Jira, Slack, Google</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Shunt</td>
|
||||
<td>Fake connector for testing</td>
|
||||
<td>MercadoPago mock</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pulse</td>
|
||||
<td>Vein + Room + Depot</td>
|
||||
<td>Jira for AMAR project</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Plexus</td>
|
||||
<td>Full app (backend + frontend + DB)</td>
|
||||
<td>WhatsApp with chat UI</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Build Flow -->
|
||||
<section class="graph-section" id="build">
|
||||
<div class="graph-header-row">
|
||||
<h2>Build Flow</h2>
|
||||
<a href="graph.html?g=03-build-flow" class="view-btn">View Full</a>
|
||||
</div>
|
||||
<a href="graph.html?g=03-build-flow" class="graph-preview">
|
||||
<img src="03-build-flow.svg" alt="Build Flow" />
|
||||
</a>
|
||||
<div class="graph-details">
|
||||
<p>How source is built into runnable instances.</p>
|
||||
<h4>Commands</h4>
|
||||
<table class="details-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Output</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>python build.py dev</code></td>
|
||||
<td>gen/standalone/</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>python build.py dev --cfg amar</code></td>
|
||||
<td>gen/amar/</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>python build.py dev --all</code></td>
|
||||
<td>both</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Room Config -->
|
||||
<section class="graph-section" id="room">
|
||||
<div class="graph-header-row">
|
||||
<h2>Room Configuration</h2>
|
||||
<a href="graph.html?g=04-room-config" class="view-btn">View Full</a>
|
||||
</div>
|
||||
<a href="graph.html?g=04-room-config" class="graph-preview">
|
||||
<img src="04-room-config.svg" alt="Room Configuration" />
|
||||
</a>
|
||||
<div class="graph-details">
|
||||
<p>How rooms are configured in cfg/.</p>
|
||||
<h4>Room Structure</h4>
|
||||
<ul>
|
||||
<li><strong>config.json</strong>: Framework branding, terminology</li>
|
||||
<li><strong>data/</strong>: veins.json, shunts.json, depots.json</li>
|
||||
<li><strong>soleprint/</strong>: Docker config for this room</li>
|
||||
<li><strong>databrowse/, tester/, monitors/, models/</strong>: Room-specific extensions</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Tech Stack -->
|
||||
<section class="tech-section">
|
||||
<h2>Technology Stack</h2>
|
||||
<div class="tech-grid">
|
||||
<div class="tech-column">
|
||||
<h3>Core</h3>
|
||||
<ul>
|
||||
<li>Python 3.11+</li>
|
||||
<li>FastAPI</li>
|
||||
<li>Jinja2</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tech-column">
|
||||
<h3>Tools</h3>
|
||||
<ul>
|
||||
<li>modelgen</li>
|
||||
<li>tester (Playwright)</li>
|
||||
<li>datagen</li>
|
||||
<li>databrowse</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tech-column">
|
||||
<h3>Veins</h3>
|
||||
<ul>
|
||||
<li>Jira</li>
|
||||
<li>Slack</li>
|
||||
<li>Google (OAuth)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="tech-column">
|
||||
<h3>Infrastructure</h3>
|
||||
<ul>
|
||||
<li>Docker</li>
|
||||
<li>Woodpecker CI</li>
|
||||
<li>Nginx</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
<p>Soleprint - Development Workflow Platform</p>
|
||||
<p class="date">Generated: <time datetime="2025-01">January 2025</time></p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user