326326 color : var (--dark-brown );
327327 }
328328
329+ .apps-grid {
330+ display : grid;
331+ grid-template-columns : repeat (auto-fit, minmax (140px , 1fr ));
332+ gap : 1rem ;
333+ margin : 2rem 0 ;
334+ }
335+
336+ .app-tag {
337+ background : linear-gradient (135deg , # FFF5ED 0% , # FFFBF8 100% );
338+ border : 3px solid var (--burnt-orange );
339+ padding : 1rem ;
340+ cursor : pointer;
341+ text-align : center;
342+ font-weight : 700 ;
343+ transition : all 0.3s ;
344+ transform : rotate (-2deg );
345+ box-shadow : 4px 4px 0 rgba (0 , 0 , 0 , 0.15 );
346+ }
347+
348+ .app-tag : hover {
349+ transform : rotate (0deg ) scale (1.08 );
350+ background : linear-gradient (135deg , var (--burnt-orange ), # FF8C42 );
351+ color : var (--cream );
352+ box-shadow : 6px 6px 0 rgba (0 , 0 , 0 , 0.2 ), 0 0 20px var (--mustard );
353+ }
354+
355+ .app-modal {
356+ display : none;
357+ position : fixed;
358+ top : 0 ;
359+ left : 0 ;
360+ width : 100% ;
361+ height : 100% ;
362+ background : rgba (0 , 0 , 0 , 0.7 );
363+ z-index : 1000 ;
364+ justify-content : center;
365+ align-items : center;
366+ }
367+
368+ .app-modal .active {
369+ display : flex;
370+ }
371+
372+ .app-modal-content {
373+ background : var (--cream );
374+ padding : 2rem ;
375+ border : 6px solid var (--burnt-orange );
376+ max-width : 500px ;
377+ box-shadow : 12px 12px 0 rgba (0 , 0 , 0 , 0.3 );
378+ position : relative;
379+ }
380+
381+ .app-modal-content h3 {
382+ color : var (--burnt-orange );
383+ margin-bottom : 1rem ;
384+ font-size : 1.8rem ;
385+ }
386+
387+ .app-modal-content p {
388+ color : var (--dark-brown );
389+ margin-bottom : 1rem ;
390+ line-height : 1.8 ;
391+ }
392+
393+ .close-modal {
394+ position : absolute;
395+ top : 1rem ;
396+ right : 1rem ;
397+ background : var (--burnt-orange );
398+ color : var (--cream );
399+ border : 2px solid var (--dark-brown );
400+ padding : 0.5rem 1rem ;
401+ cursor : pointer;
402+ font-weight : 700 ;
403+ font-size : 1.2rem ;
404+ }
405+
406+ .close-modal : hover {
407+ background : var (--dark-brown );
408+ color : var (--mustard );
409+ }
410+
411+ .app-modal {
412+ display : none;
413+ }
414+
415+ .app-modal .active {
416+ display : flex;
417+ }
418+
329419 .divider {
330420 height : 3px ;
331421 background : repeating-linear-gradient (90deg , var (--burnt-orange ), var (--burnt-orange ) 10px , var (--mustard ) 10px , var (--mustard ) 20px );
@@ -552,8 +642,26 @@ <h2>📚 Documentation</h2>
552642 </ div >
553643 </ section >
554644
645+ < div class ="divider "> </ div >
646+
647+ < section id ="apps ">
648+ < h2 > 🔌 Supported Backend Apps (50+)</ h2 >
649+ < p style ="margin-bottom: 2rem; "> Click any app to see details and integration info:</ p >
650+ < div class ="apps-grid " id ="appsGrid "> </ div >
651+ </ section >
652+
555653</ main >
556654
655+ < div class ="app-modal " id ="appModal ">
656+ < div class ="app-modal-content " id ="appModalContent ">
657+ < button class ="close-modal " onclick ="closeAppModal() "> ✕</ button >
658+ < h3 id ="appName "> </ h3 >
659+ < p > < strong > Type:</ strong > < span id ="appType "> </ span > </ p >
660+ < p > < strong > Description:</ strong > < span id ="appDesc "> </ span > </ p >
661+ < p > < strong > Integration:</ strong > < span id ="appIntegration "> </ span > </ p >
662+ </ div >
663+ </ div >
664+
557665< footer >
558666 < div class ="footer-links ">
559667 < a href ="https://github.com/Stalin-143/BURP-AI " target ="_blank "> GitHub</ a >
@@ -569,5 +677,90 @@ <h2>📚 Documentation</h2>
569677 </ p >
570678</ footer >
571679
680+ < script >
681+ const apps = [
682+ { name : "PostgreSQL" , type : "Database" , desc : "Advanced relational database" , integration : "psycopg2 connector" } ,
683+ { name : "MongoDB" , type : "NoSQL" , desc : "Document-based database" , integration : "pymongo driver" } ,
684+ { name : "Redis" , type : "Cache" , desc : "In-memory data store" , integration : "redis-py client" } ,
685+ { name : "Elasticsearch" , type : "Search" , desc : "Full-text search engine" , integration : "elasticsearch-py" } ,
686+ { name : "Docker" , type : "Container" , desc : "Container orchestration" , integration : "docker SDK" } ,
687+ { name : "Kubernetes" , type : "Orchestration" , desc : "Container management" , integration : "kubernetes Python client" } ,
688+ { name : "RabbitMQ" , type : "Message Queue" , desc : "Message broker" , integration : "pika library" } ,
689+ { name : "Kafka" , type : "Streaming" , desc : "Event streaming platform" , integration : "kafka-python" } ,
690+ { name : "GraphQL" , type : "API" , desc : "Query language for APIs" , integration : "graphene library" } ,
691+ { name : "gRPC" , type : "RPC" , desc : "High-performance RPC framework" , integration : "grpcio" } ,
692+ { name : "Apache Spark" , type : "Big Data" , desc : "Distributed computing" , integration : "pyspark" } ,
693+ { name : "Hadoop" , type : "Big Data" , desc : "Distributed data processing" , integration : "mrjob" } ,
694+ { name : "Neo4j" , type : "Graph DB" , desc : "Graph database" , integration : "neo4j-driver" } ,
695+ { name : "Cassandra" , type : "NoSQL" , desc : "Distributed NoSQL database" , integration : "cassandra-driver" } ,
696+ { name : "ClickHouse" , type : "Analytics" , desc : "Columnar database" , integration : "clickhouse-driver" } ,
697+ { name : "OpenSearch" , type : "Search" , desc : "Open-source search engine" , integration : "opensearchpy" } ,
698+ { name : "MinIO" , type : "Storage" , desc : "Object storage" , integration : "minio SDK" } ,
699+ { name : "AWS S3" , type : "Cloud Storage" , desc : "Amazon S3 storage" , integration : "boto3" } ,
700+ { name : "Azure Blob" , type : "Cloud Storage" , desc : "Azure blob storage" , integration : "azure-storage-blob" } ,
701+ { name : "Google Cloud Storage" , type : "Cloud Storage" , desc : "Google GCS" , integration : "google-cloud-storage" } ,
702+ { name : "Vault" , type : "Secrets" , desc : "Secret management" , integration : "hvac" } ,
703+ { name : "etcd" , type : "Config" , desc : "Distributed configuration" , integration : "python-etcd3" } ,
704+ { name : "Consul" , type : "Service Mesh" , desc : "Service mesh platform" , integration : "python-consul" } ,
705+ { name : "Prometheus" , type : "Monitoring" , desc : "Metrics monitoring" , integration : "prometheus-client" } ,
706+ { name : "Grafana" , type : "Visualization" , desc : "Metrics visualization" , integration : "grafana-api" } ,
707+ { name : "ELK Stack" , type : "Logging" , desc : "Elasticsearch Logstash Kibana" , integration : "elasticsearch" } ,
708+ { name : "Datadog" , type : "APM" , desc : "Application performance monitoring" , integration : "datadog SDK" } ,
709+ { name : "New Relic" , type : "Observability" , desc : "Full stack observability" , integration : "newrelic" } ,
710+ { name : "Jaeger" , type : "Tracing" , desc : "Distributed tracing" , integration : "jaeger-client" } ,
711+ { name : "Zipkin" , type : "Tracing" , desc : "Distributed tracing system" , integration : "py-zipkin" } ,
712+ { name : "OpenTelemetry" , type : "Observability" , desc : "Observability framework" , integration : "opentelemetry-api" } ,
713+ { name : "Sentry" , type : "Error Tracking" , desc : "Error and exception tracking" , integration : "sentry-sdk" } ,
714+ { name : "Splunk" , type : "Analytics" , desc : "Data analytics platform" , integration : "splunk-sdk" } ,
715+ { name : "Tableau" , type : "BI" , desc : "Business intelligence" , integration : "tableau-server-client" } ,
716+ { name : "Power BI" , type : "BI" , desc : "Microsoft business intelligence" , integration : "pybit" } ,
717+ { name : "Looker" , type : "Analytics" , desc : "Business intelligence platform" , integration : "looker-sdk" } ,
718+ { name : "Superset" , type : "BI" , desc : "Open-source BI tool" , integration : "superset-api" } ,
719+ { name : "FastAPI" , type : "Framework" , desc : "Modern Python web framework" , integration : "fastapi" } ,
720+ { name : "Django" , type : "Framework" , desc : "Full-featured web framework" , integration : "django" } ,
721+ { name : "Flask" , type : "Framework" , desc : "Lightweight web framework" , integration : "flask" } ,
722+ { name : "Celery" , type : "Task Queue" , desc : "Distributed task queue" , integration : "celery" } ,
723+ { name : "APScheduler" , type : "Scheduling" , desc : "Advanced job scheduling" , integration : "apscheduler" } ,
724+ { name : "Airflow" , type : "Orchestration" , desc : "Workflow orchestration" , integration : "apache-airflow" } ,
725+ { name : "Prefect" , type : "Workflow" , desc : "Modern workflow orchestration" , integration : "prefect" } ,
726+ { name : "Dask" , type : "Parallel" , desc : "Parallel computing" , integration : "dask" } ,
727+ { name : "Ray" , type : "Distributed" , desc : "Distributed computing" , integration : "ray" } ,
728+ { name : "MLflow" , type : "ML Ops" , desc : "Machine learning lifecycle" , integration : "mlflow" } ,
729+ { name : "DVC" , type : "ML Pipeline" , desc : "Data version control" , integration : "dvc" } ,
730+ ] ;
731+
732+ function initializeApps ( ) {
733+ const grid = document . getElementById ( 'appsGrid' ) ;
734+ apps . forEach ( app => {
735+ const tag = document . createElement ( 'div' ) ;
736+ tag . className = 'app-tag' ;
737+ tag . textContent = app . name ;
738+ tag . onclick = ( ) => showAppModal ( app ) ;
739+ grid . appendChild ( tag ) ;
740+ } ) ;
741+ }
742+
743+ function showAppModal ( app ) {
744+ document . getElementById ( 'appName' ) . textContent = app . name ;
745+ document . getElementById ( 'appType' ) . textContent = app . type ;
746+ document . getElementById ( 'appDesc' ) . textContent = app . desc ;
747+ document . getElementById ( 'appIntegration' ) . textContent = app . integration ;
748+ document . getElementById ( 'appModal' ) . classList . add ( 'active' ) ;
749+ }
750+
751+ function closeAppModal ( ) {
752+ document . getElementById ( 'appModal' ) . classList . remove ( 'active' ) ;
753+ }
754+
755+ document . addEventListener ( 'click' , ( e ) => {
756+ const modal = document . getElementById ( 'appModal' ) ;
757+ if ( e . target === modal ) {
758+ closeAppModal ( ) ;
759+ }
760+ } ) ;
761+
762+ document . addEventListener ( 'DOMContentLoaded' , initializeApps ) ;
763+ </ script >
764+
572765</ body >
573766</ html >
0 commit comments