58ca4e68db
- 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
307 lines
10 KiB
HTML
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>
|