Files
boc/landvex-site/developers/index.html
T
Bernt 58ca4e68db feat(boc): Complete Business Operations Center v1.0
- Go backend API with full CRUD for all modules (CRM, Sales, Finance, HR, Legal, Marketing, Support, Purchase, Inventory, Projects, Automation, Analytics)
- Rust analytics service with parallel report generation
- C runtime with POSIX shared memory IPC
- PostgreSQL schema with 30+ tables, full migrations
- Redis cache, sessions, pub/sub
- Kafka event streaming with Zookeeper
- WebSocket hub for real-time updates
- Automation engine with cron jobs, workflows, event triggers
- JWT authentication, multi-tenant from start
- Docker Compose with all services
- Nginx reverse proxy with rate limiting
- Integration tests passing
- Feature gap analysis against Fortnox/Odoo/Visma

Refs: BOC-001
2026-07-12 12:41:35 +00:00

307 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QUIXZOOM API — Infrastructure Intelligence for Developers</title>
<meta name="description" content="Build on the world's infrastructure intelligence network. Real-time APIs for observations, alerts, and analytics.">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #333; }
.container { max-width: 1000px; margin: 0 auto; padding: 0 2rem; }
.hero {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
color: white;
padding: 100px 0 60px;
text-align: center;
}
.hero h1 {
font-size: 3rem;
font-weight: 800;
margin-bottom: 1rem;
}
.hero p {
font-size: 1.25rem;
opacity: 0.9;
margin-bottom: 2rem;
}
.btn {
display: inline-block;
padding: 1rem 3rem;
border-radius: 8px;
text-decoration: none;
font-weight: 600;
font-size: 1.1rem;
transition: all 0.2s;
}
.btn-primary {
background: #e94560;
color: white;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(233, 69, 96, 0.3);
}
.code-example {
background: #1a1a2e;
color: #e2e8f0;
padding: 4rem 0;
}
.code-example h2 {
text-align: center;
font-size: 2rem;
margin-bottom: 2rem;
color: white;
}
.code-block {
background: #0f172a;
border-radius: 12px;
padding: 2rem;
overflow-x: auto;
font-family: 'Monaco', 'Menlo', monospace;
font-size: 0.9rem;
line-height: 1.8;
}
.code-block .comment { color: #64748b; }
.code-block .keyword { color: #c084fc; }
.code-block .string { color: #4ade80; }
.code-block .function { color: #60a5fa; }
.features {
padding: 4rem 0;
}
.features h2 {
text-align: center;
font-size: 2rem;
margin-bottom: 2rem;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.feature-card {
background: #f8f9fa;
padding: 2rem;
border-radius: 12px;
}
.feature-card h3 {
margin-bottom: 1rem;
color: #1a1a2e;
}
.feature-card ul {
list-style: none;
}
.feature-card li {
padding: 0.5rem 0;
padding-left: 1.5rem;
position: relative;
}
.feature-card li::before {
content: "→";
position: absolute;
left: 0;
color: #e94560;
}
.endpoints {
background: #f8f9fa;
padding: 4rem 0;
}
.endpoints h2 {
text-align: center;
font-size: 2rem;
margin-bottom: 2rem;
}
.endpoint-list {
display: grid;
gap: 1rem;
}
.endpoint-item {
background: white;
padding: 1.5rem;
border-radius: 8px;
display: flex;
align-items: center;
gap: 1rem;
}
.method {
padding: 0.25rem 0.75rem;
border-radius: 4px;
font-weight: 600;
font-size: 0.85rem;
font-family: monospace;
}
.method.get { background: #dbeafe; color: #1e40af; }
.method.post { background: #dcfce7; color: #166534; }
.endpoint-path {
font-family: monospace;
font-size: 0.95rem;
}
.endpoint-desc {
color: #666;
margin-left: auto;
}
.cta {
background: #1a1a2e;
color: white;
padding: 4rem 0;
text-align: center;
}
.cta h2 {
font-size: 2rem;
margin-bottom: 1rem;
}
.cta p {
opacity: 0.9;
margin-bottom: 2rem;
}
footer {
background: #111;
color: white;
padding: 2rem 0;
text-align: center;
}
footer p {
opacity: 0.5;
}
</style>
</head>
<body>
<section class="hero">
<div class="container">
<h1>Build on Real-World Intelligence</h1>
<p>Real-time APIs for observations, alerts, and infrastructure analytics.</p>
<a href="#docs" class="btn btn-primary">View Documentation →</a>
</div>
</section>
<section class="code-example">
<div class="container">
<h2>Get Started in Minutes</h2>
<div class="code-block">
<span class="comment">// Submit a Reality Alert™ observation</span>
<span class="keyword">const</span> response = <span class="keyword">await</span> <span class="function">fetch</span>(<span class="string">'https://api.quixzoom.com/v1/reality-alerts'</span>, {
method: <span class="string">'POST'</span>,
headers: {
<span class="string">'Authorization'</span>: <span class="string">'Bearer YOUR_API_KEY'</span>,
<span class="string">'Content-Type'</span>: <span class="string">'application/json'</span>
},
body: <span class="function">JSON.stringify</span>({
images: [<span class="string">'https://example.com/photo.jpg'</span>],
location: { lat: 59.3293, lng: 18.0686 },
description: <span class="string">'Large pothole on Main Street'</span>
})
});
<span class="keyword">const</span> alert = <span class="keyword">await</span> response.<span class="function">json</span>();
<span class="comment">// { id: 'RA-A1B2C3D4', severity: 'medium', reward: 2.50 }</span>
</div>
</div>
</section>
<section class="features container">
<h2>API Features</h2>
<div class="feature-grid">
<div class="feature-card">
<h3>🔍 Observations</h3>
<ul>
<li>Submit visual observations</li>
<li>Retrieve mission results</li>
<li>Batch uploads supported</li>
<li>Metadata and geotagging</li>
</ul>
</div>
<div class="feature-card">
<h3>🚨 Alerts</h3>
<ul>
<li>Real-time alert streams</li>
<li>Filter by severity, location</li>
<li>Webhook notifications</li>
<li>Resolution tracking</li>
</ul>
</div>
<div class="feature-card">
<h3>📊 Analytics</h3>
<ul>
<li>Trend analysis</li>
<li>Heat maps</li>
<li>Custom reports</li>
<li>Export to CSV/JSON</li>
</ul>
</div>
<div class="feature-card">
<h3>🔧 Management</h3>
<ul>
<li>Create and manage missions</li>
<li>Contributor management</li>
<li>Billing and usage</li>
<li>Organization settings</li>
</ul>
</div>
</div>
</section>
<section class="endpoints">
<div class="container">
<h2>API Endpoints</h2>
<div class="endpoint-list">
<div class="endpoint-item">
<span class="method get">GET</span>
<span class="endpoint-path">/v1/health</span>
<span class="endpoint-desc">API health check</span>
</div>
<div class="endpoint-item">
<span class="method get">GET</span>
<span class="endpoint-path">/v1/products</span>
<span class="endpoint-desc">List products</span>
</div>
<div class="endpoint-item">
<span class="method post">POST</span>
<span class="endpoint-path">/v1/reality-alerts</span>
<span class="endpoint-desc">Submit observation</span>
</div>
<div class="endpoint-item">
<span class="method get">GET</span>
<span class="endpoint-path">/v1/reality-alerts</span>
<span class="endpoint-desc">List alerts</span>
</div>
<div class="endpoint-item">
<span class="method get">GET</span>
<span class="endpoint-path">/v1/reality-alerts/:id</span>
<span class="endpoint-desc">Get alert details</span>
</div>
<div class="endpoint-item">
<span class="method post">POST</span>
<span class="endpoint-path">/v1/reality-alerts/:id/resolve</span>
<span class="endpoint-desc">Resolve alert</span>
</div>
<div class="endpoint-item">
<span class="method get">GET</span>
<span class="endpoint-path">/v1/reality-alerts/stats/overview</span>
<span class="endpoint-desc">Statistics</span>
</div>
</div>
</div>
</section>
<section class="cta">
<div class="container">
<h2>Ready to Build?</h2>
<p>Get your API key and start integrating infrastructure intelligence.</p>
<a href="#signup" class="btn btn-primary">Get API Key →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 QUIXZOOM by Landvex</p>
</div>
</footer>
</body>
</html>