Spaces:
Configuration error
Configuration error
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Deaf Enrich Platform - Architecture</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| .gradient-bg { | |
| background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%); | |
| } | |
| .card-hover { | |
| transition: all 0.3s ease; | |
| } | |
| .card-hover:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .hand-icon { | |
| animation: wave 2.5s infinite; | |
| transform-origin: 70% 70%; | |
| } | |
| @keyframes wave { | |
| 0% { transform: rotate(0deg); } | |
| 10% { transform: rotate(14deg); } | |
| 20% { transform: rotate(-8deg); } | |
| 30% { transform: rotate(14deg); } | |
| 40% { transform: rotate(-4deg); } | |
| 50% { transform: rotate(10deg); } | |
| 60% { transform: rotate(0deg); } | |
| 100% { transform: rotate(0deg); } | |
| } | |
| .repo-structure li { | |
| position: relative; | |
| padding-left: 1.5rem; | |
| } | |
| .repo-structure li:before { | |
| content: "📁"; | |
| position: absolute; | |
| left: 0; | |
| } | |
| .repo-structure li.file:before { | |
| content: "📄"; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50 font-sans"> | |
| <!-- Header --> | |
| <header class="gradient-bg text-white"> | |
| <div class="container mx-auto px-6 py-16"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <h1 class="text-4xl font-bold">Deaf Enrich Platform</h1> | |
| <p class="mt-4 text-xl opacity-90">From Idea → Deploy → Production - A Deaf-centered FastAPI ecosystem</p> | |
| </div> | |
| <div class="text-6xl hand-icon">👋</div> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- Main Content --> | |
| <main class="container mx-auto px-6 py-12"> | |
| <!-- Vision Section --> | |
| <section class="mb-16"> | |
| <div class="text-center mb-12"> | |
| <h2 class="text-3xl font-bold text-gray-800 mb-4">Project Vision</h2> | |
| <p class="text-xl text-gray-600 max-w-3xl mx-auto"> | |
| A Deaf-centered full-stack platform powered by FastAPI, built to scale—from solo creators to institutions. | |
| </p> | |
| </div> | |
| <div class="grid md:grid-cols-3 gap-8"> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-blue-500 text-3xl mb-4"><i class="fas fa-language"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">Sign Language Models</h3> | |
| <p class="text-gray-600">Advanced AI models for ASL interpretation and translation</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-purple-500 text-3xl mb-4"><i class="fas fa-closed-captioning"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">Captioning & Video</h3> | |
| <p class="text-gray-600">Seamless video integrations with automatic captioning</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-green-500 text-3xl mb-4"><i class="fas fa-briefcase"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">Employment Matching</h3> | |
| <p class="text-gray-600">Connecting Deaf professionals with inclusive employers</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-yellow-500 text-3xl mb-4"><i class="fas fa-store"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">Business Support</h3> | |
| <p class="text-gray-600">Resources and tools for Deaf-owned businesses</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-red-500 text-3xl mb-4"><i class="fas fa-vr-cardboard"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">VR/AR Readiness</h3> | |
| <p class="text-gray-600">Immersive experiences designed for the Deaf community</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-indigo-500 text-3xl mb-4"><i class="fas fa-plug"></i></div> | |
| <h3 class="text-xl font-semibold mb-2">API-First Design</h3> | |
| <p class="text-gray-600">Real-time communication with robust API endpoints</p> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Tech Stack Section --> | |
| <section class="mb-16"> | |
| <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">01. Tech Stack</h2> | |
| <div class="overflow-x-auto"> | |
| <table class="min-w-full bg-white rounded-lg overflow-hidden"> | |
| <thead class="bg-gray-100"> | |
| <tr> | |
| <th class="py-3 px-6 text-left font-semibold text-gray-700">Layer</th> | |
| <th class="py-3 px-6 text-left font-semibold text-gray-700">Tech Choice</th> | |
| <th class="py-3 px-6 text-left font-semibold text-gray-700">Why</th> | |
| </tr> | |
| </thead> | |
| <tbody class="divide-y divide-gray-200"> | |
| <tr> | |
| <td class="py-4 px-6">Backend API</td> | |
| <td class="py-4 px-6 font-medium">FastAPI + Pydantic + Uvicorn</td> | |
| <td class="py-4 px-6 text-gray-600">Fast, modern, async, type-safe</td> | |
| </tr> | |
| <tr class="bg-gray-50"> | |
| <td class="py-4 px-6">Frontend</td> | |
| <td class="py-4 px-6 font-medium">Next.js or SvelteKit</td> | |
| <td class="py-4 px-6 text-gray-600">SEO, accessibility, smooth UX</td> | |
| </tr> | |
| <tr> | |
| <td class="py-4 px-6">AI Models</td> | |
| <td class="py-4 px-6 font-medium">Hugging Face / Transformers</td> | |
| <td class="py-4 px-6 text-gray-600">ASL, translation, transcription models</td> | |
| </tr> | |
| <tr class="bg-gray-50"> | |
| <td class="py-4 px-6">Database</td> | |
| <td class="py-4 px-6 font-medium">PostgreSQL (Neon Tech)</td> | |
| <td class="py-4 px-6 text-gray-600">Scalable, cloud-native</td> | |
| </tr> | |
| <tr> | |
| <td class="py-4 px-6">Cache</td> | |
| <td class="py-4 px-6 font-medium">Redis</td> | |
| <td class="py-4 px-6 text-gray-600">Fast, transient state for real-time updates</td> | |
| </tr> | |
| <tr class="bg-gray-50"> | |
| <td class="py-4 px-6">Queue</td> | |
| <td class="py-4 px-6 font-medium">Celery or Kafka via Astra Streaming</td> | |
| <td class="py-4 px-6 text-gray-600">Job handling, async AI tasks</td> | |
| </tr> | |
| <tr> | |
| <td class="py-4 px-6">Storage</td> | |
| <td class="py-4 px-6 font-medium">Cloudflare R2 / S3-compatible</td> | |
| <td class="py-4 px-6 text-gray-600">ASL video uploads, transcriptions</td> | |
| </tr> | |
| <tr class="bg-gray-50"> | |
| <td class="py-4 px-6">DevOps</td> | |
| <td class="py-4 px-6 font-medium">Docker + GitHub Actions + Vercel / GCP</td> | |
| <td class="py-4 px-6 text-gray-600">Clean deploy, CI/CD ready</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| </section> | |
| <!-- Repo Structure Section --> | |
| <section class="mb-16"> | |
| <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">02. Repo Structure (Mono-Repo Layout)</h2> | |
| <div class="bg-white rounded-xl shadow-lg p-8"> | |
| <div class="flex"> | |
| <div class="w-full"> | |
| <ul class="repo-structure space-y-2 text-gray-700"> | |
| <li>/deaf-enrich-platform/ | |
| <ul class="ml-6 mt-2 space-y-2"> | |
| <li>apps/ | |
| <ul class="ml-6 mt-2 space-y-2"> | |
| <li>api/ <span class="text-gray-500"># FastAPI app</span></li> | |
| <li>web/ <span class="text-gray-500"># Frontend (Next.js or SvelteKit)</span></li> | |
| <li>workers/ <span class="text-gray-500"># Background jobs (Celery or FastAPI tasks)</span></li> | |
| </ul> | |
| </li> | |
| <li>shared/ | |
| <ul class="ml-6 mt-2 space-y-2"> | |
| <li>schemas/ <span class="text-gray-500"># Pydantic models, shared types</span></li> | |
| <li>utils/ <span class="text-gray-500"># Common helpers</span></li> | |
| <li>ai/ <span class="text-gray-500"># AI utilities (Hugging Face, transformers)</span></li> | |
| </ul> | |
| </li> | |
| <li>infra/ | |
| <ul class="ml-6 mt-2 space-y-2"> | |
| <li>docker/ <span class="text-gray-500"># Dockerfiles, Compose, Cloud configs</span></li> | |
| <li>terraform/ <span class="text-gray-500"># Infrastructure as code (if using GCP/AWS)</span></li> | |
| </ul> | |
| </li> | |
| <li>tests/ | |
| <ul class="ml-6 mt-2 space-y-2"> | |
| <li>e2e/ <span class="text-gray-500"># End-to-end and unit tests</span></li> | |
| </ul> | |
| </li> | |
| <li class="file">.env</li> | |
| <li class="file">.pre-commit-config.yaml</li> | |
| <li>.github/</li> | |
| <li class="file">README.md</li> | |
| <li class="file">Makefile / Taskfile <span class="text-gray-500"># For dev tasks</span></li> | |
| </ul> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Development Flow Section --> | |
| <section class="mb-16"> | |
| <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">03. Development Flow (Idea → Deploy → Production)</h2> | |
| <div class="grid md:grid-cols-3 gap-8"> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-blue-500 text-3xl mb-4"><i class="fas fa-lightbulb"></i></div> | |
| <h3 class="text-xl font-semibold mb-4">Idea</h3> | |
| <ul class="space-y-2 text-gray-600"> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Define ASL-powered user journeys</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Map personas (students, job seekers, educators)</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Prototype with Replit/Vercel</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Integrate Hugging Face ASL models</span> | |
| </li> | |
| </ul> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-green-500 text-3xl mb-4"><i class="fas fa-code"></i></div> | |
| <h3 class="text-xl font-semibold mb-4">Build</h3> | |
| <ul class="space-y-2 text-gray-600"> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>FastAPI core APIs with OAuth2</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Real-time logging with Axiom</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>i18n support (ASL/English)</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Deaf-first UX principles</span> | |
| </li> | |
| </ul> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="text-purple-500 text-3xl mb-4"><i class="fas fa-rocket"></i></div> | |
| <h3 class="text-xl font-semibold mb-4">Grow</h3> | |
| <ul class="space-y-2 text-gray-600"> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Add analytics & gamification</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>GPT-guided business flows</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>OpenAPI docs with Swagger</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="mr-2">•</span> | |
| <span>Dockerized deployments</span> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- AI Modules Section --> | |
| <section class="mb-16"> | |
| <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">04. Must-Have AI/Deaf-Specific Modules</h2> | |
| <div class="grid md:grid-cols-2 gap-8"> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-blue-100 p-3 rounded-full mr-4"> | |
| <i class="fas fa-robot text-blue-500 text-xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">ASL Avatar-to-Text and Text-to-Avatar</h3> | |
| </div> | |
| <p class="text-gray-600">Bidirectional translation between sign language avatars and text, enabling seamless communication.</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-purple-100 p-3 rounded-full mr-4"> | |
| <i class="fas fa-universal-access text-purple-500 text-xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Deaf-first UX</h3> | |
| </div> | |
| <p class="text-gray-600">Visual-first interface with big buttons, minimal text, and voice-off by default for optimal accessibility.</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-green-100 p-3 rounded-full mr-4"> | |
| <i class="fas fa-closed-captioning text-green-500 text-xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">CaptionBot</h3> | |
| </div> | |
| <p class="text-gray-600">Upload any video to get automated captions with synchronized ASL interpretation via AI models.</p> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover"> | |
| <div class="flex items-center mb-4"> | |
| <div class="bg-yellow-100 p-3 rounded-full mr-4"> | |
| <i class="fas fa-magic text-yellow-500 text-xl"></i> | |
| </div> | |
| <h3 class="text-xl font-semibold">Business Wizard</h3> | |
| </div> | |
| <p class="text-gray-600">Interactive AI prompts guide Deaf creators through starting and growing their own businesses.</p> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Deployment Section --> | |
| <section> | |
| <h2 class="text-3xl font-bold text-center text-gray-800 mb-12">05. Deployment Targets</h2> | |
| <div class="grid md:grid-cols-2 gap-8"> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover border-l-4 border-blue-500"> | |
| <h3 class="text-xl font-semibold mb-4 flex items-center"> | |
| <i class="fas fa-flask text-blue-500 mr-3"></i> Dev & MVP | |
| </h3> | |
| <ul class="space-y-3 text-gray-600"> | |
| <li class="flex items-start"> | |
| <span class="bg-blue-100 text-blue-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>Replit for rapid prototyping</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="bg-blue-100 text-blue-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>Hugging Face Spaces for micro-inference</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="bg-blue-100 text-blue-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>Vercel for frontend previews</span> | |
| </li> | |
| </ul> | |
| </div> | |
| <div class="bg-white rounded-xl shadow-lg p-6 card-hover border-l-4 border-purple-500"> | |
| <h3 class="text-xl font-semibold mb-4 flex items-center"> | |
| <i class="fas fa-server text-purple-500 mr-3"></i> Production | |
| </h3> | |
| <ul class="space-y-3 text-gray-600"> | |
| <li class="flex items-start"> | |
| <span class="bg-purple-100 text-purple-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>Vercel for frontend hosting</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="bg-purple-100 text-purple-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>GCP Cloud Run for FastAPI backend</span> | |
| </li> | |
| <li class="flex items-start"> | |
| <span class="bg-purple-100 text-purple-600 rounded-full p-1 mr-3"> | |
| <i class="fas fa-check text-xs"></i> | |
| </span> | |
| <span>DataStax Astra for AI + streaming at scale</span> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| </section> | |
| </main> | |
| <!-- Footer --> | |
| <footer class="bg-gray-800 text-white py-12"> | |
| <div class="container mx-auto px-6"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="mb-6 md:mb-0"> | |
| <h2 class="text-2xl font-bold">Deaf Enrich Platform</h2> | |
| <p class="mt-2 text-gray-400">Empowering the Deaf community through technology</p> | |
| </div> | |
| <div class="flex space-x-6"> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-github text-2xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-twitter text-2xl"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-white transition"> | |
| <i class="fab fa-linkedin text-2xl"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400"> | |
| <p>© 2023 Deaf Enrich Platform. All rights reserved.</p> | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| // Simple animation for cards on scroll | |
| document.addEventListener('DOMContentLoaded', function() { | |
| const cards = document.querySelectorAll('.card-hover'); | |
| const observer = new IntersectionObserver((entries) => { | |
| entries.forEach(entry => { | |
| if (entry.isIntersecting) { | |
| entry.target.style.opacity = '1'; | |
| entry.target.style.transform = 'translateY(0)'; | |
| } | |
| }); | |
| }, { threshold: 0.1 }); | |
| cards.forEach(card => { | |
| card.style.opacity = '0'; | |
| card.style.transform = 'translateY(20px)'; | |
| card.style.transition = 'all 0.6s ease'; | |
| observer.observe(card); | |
| }); | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=pinkycollie/deaf-centered-full-stack-platform" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |