mirror of
https://github.com/thecyberlearn/quantum-website-2026.git
synced 2026-08-18 20:23:18 +00:00
removal
This commit is contained in:
parent
bd031cb048
commit
fea6b57356
266
DEPLOYMENT.md
266
DEPLOYMENT.md
@ -1,266 +0,0 @@
|
|||||||
# Static Website Deployment Guide
|
|
||||||
|
|
||||||
## Quick Deployment Options
|
|
||||||
|
|
||||||
### Option 1: Netlify (Recommended) ⭐
|
|
||||||
|
|
||||||
**Why Netlify:**
|
|
||||||
- Drag & drop deployment
|
|
||||||
- Automatic SSL certificates
|
|
||||||
- Global CDN
|
|
||||||
- Form handling built-in
|
|
||||||
- Custom domains
|
|
||||||
|
|
||||||
**Steps:**
|
|
||||||
1. Go to [netlify.com](https://netlify.com)
|
|
||||||
2. Sign up/login
|
|
||||||
3. Drag the `static-website` folder to Netlify dashboard
|
|
||||||
4. Site will be live instantly at random subdomain
|
|
||||||
5. Configure custom domain in Site Settings → Domain management
|
|
||||||
6. Enable form handling for contact form (automatic)
|
|
||||||
|
|
||||||
**Custom Domain Setup:**
|
|
||||||
1. Add domain in Netlify: Site Settings → Domain management → Add custom domain
|
|
||||||
2. Update DNS: Point your domain to Netlify's servers
|
|
||||||
3. SSL certificate will be generated automatically
|
|
||||||
|
|
||||||
### Option 2: Vercel
|
|
||||||
|
|
||||||
**Steps:**
|
|
||||||
1. Go to [vercel.com](https://vercel.com)
|
|
||||||
2. Connect GitHub account
|
|
||||||
3. Import repository
|
|
||||||
4. Set root directory to `static-website`
|
|
||||||
5. Deploy
|
|
||||||
|
|
||||||
**Custom Domain:**
|
|
||||||
1. Go to project settings
|
|
||||||
2. Add domain in Domains section
|
|
||||||
3. Update DNS as instructed
|
|
||||||
|
|
||||||
### Option 3: GitHub Pages (Free)
|
|
||||||
|
|
||||||
**Steps:**
|
|
||||||
1. Push `static-website` contents to GitHub repository
|
|
||||||
2. Go to repository Settings → Pages
|
|
||||||
3. Select source branch
|
|
||||||
4. Site will be available at `username.github.io/repository-name`
|
|
||||||
|
|
||||||
## Domain Configuration
|
|
||||||
|
|
||||||
### Main Site Structure
|
|
||||||
```
|
|
||||||
yoursite.com → Static website (Netlify/Vercel)
|
|
||||||
├── / → index.html (Home with contact section)
|
|
||||||
└── /digital-branding → digital-branding.html
|
|
||||||
|
|
||||||
aiagent.quantumtaskai.com → Django application (CapRover)
|
|
||||||
├── /agents → AI agent marketplace
|
|
||||||
├── /login → User authentication
|
|
||||||
├── /register → User registration
|
|
||||||
└── /admin → Django admin
|
|
||||||
```
|
|
||||||
|
|
||||||
### DNS Settings (Example for Netlify)
|
|
||||||
|
|
||||||
**For main domain (`yoursite.com`):**
|
|
||||||
```
|
|
||||||
Type: A
|
|
||||||
Name: @
|
|
||||||
Value: 75.2.60.5 (Netlify's load balancer)
|
|
||||||
|
|
||||||
Type: CNAME
|
|
||||||
Name: www
|
|
||||||
Value: yoursite.netlify.app
|
|
||||||
```
|
|
||||||
|
|
||||||
**For app subdomain (`aiagent.quantumtaskai.com`):**
|
|
||||||
```
|
|
||||||
Type: A
|
|
||||||
Name: aiagent
|
|
||||||
Value: YOUR_CAPROVER_SERVER_IP
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contact Form Configuration
|
|
||||||
|
|
||||||
### Option A: Netlify Forms (Recommended)
|
|
||||||
Add `netlify` attribute to the contact form in the homepage contact section:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<form class="contact-form" id="contactForm" netlify>
|
|
||||||
```
|
|
||||||
|
|
||||||
**Features:**
|
|
||||||
- Automatic spam filtering
|
|
||||||
- Email notifications
|
|
||||||
- Form submissions dashboard
|
|
||||||
- No backend code needed
|
|
||||||
|
|
||||||
### Option B: Formspree
|
|
||||||
1. Sign up at [formspree.io](https://formspree.io)
|
|
||||||
2. Get form endpoint
|
|
||||||
3. Update form action in the homepage contact section:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<form class="contact-form" action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
|
|
||||||
```
|
|
||||||
|
|
||||||
### Option C: Connect to Django Backend
|
|
||||||
Update the form to POST to your Django app:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<form class="contact-form" action="https://aiagent.quantumtaskai.com/contact/" method="POST">
|
|
||||||
```
|
|
||||||
|
|
||||||
## Required Assets
|
|
||||||
|
|
||||||
Before deploying, add these files to `img/` directory:
|
|
||||||
|
|
||||||
### Essential Files:
|
|
||||||
- `logo.png` - Company logo (recommended: 200x60px, PNG with transparency)
|
|
||||||
- `favicon.ico` - Website favicon (32x32px ICO format)
|
|
||||||
- `og-image.png` - Social media preview (1200x630px PNG)
|
|
||||||
|
|
||||||
### Optional Files:
|
|
||||||
- `apple-touch-icon.png` - iOS icon (180x180px)
|
|
||||||
- `favicon-32x32.png` - High-res favicon
|
|
||||||
- `favicon-16x16.png` - Small favicon
|
|
||||||
|
|
||||||
### Quick Setup:
|
|
||||||
```bash
|
|
||||||
cd static-website/img/
|
|
||||||
# Add your logo and favicon files here
|
|
||||||
# Update HTML references if filenames differ
|
|
||||||
```
|
|
||||||
|
|
||||||
## Performance Optimization
|
|
||||||
|
|
||||||
### Before Deployment:
|
|
||||||
|
|
||||||
**1. Minify CSS (Optional):**
|
|
||||||
The CSS is already optimized, but you can minify further:
|
|
||||||
- Use online CSS minifiers
|
|
||||||
- Or build tools like PostCSS
|
|
||||||
|
|
||||||
**2. Image Optimization:**
|
|
||||||
- Use WebP format for better compression
|
|
||||||
- Add multiple sizes for responsive images
|
|
||||||
- Use image compression tools
|
|
||||||
|
|
||||||
**3. Caching Headers:**
|
|
||||||
Netlify automatically sets optimal caching headers.
|
|
||||||
|
|
||||||
For other hosts, configure:
|
|
||||||
```
|
|
||||||
Cache-Control: public, max-age=31536000 # For CSS/JS/images
|
|
||||||
Cache-Control: public, max-age=3600 # For HTML
|
|
||||||
```
|
|
||||||
|
|
||||||
## Analytics Setup
|
|
||||||
|
|
||||||
### Google Analytics 4
|
|
||||||
Add to `<head>` section of all pages:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<!-- Google tag (gtag.js) -->
|
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
function gtag(){dataLayer.push(arguments);}
|
|
||||||
gtag('js', new Date());
|
|
||||||
gtag('config', 'GA_MEASUREMENT_ID');
|
|
||||||
</script>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Alternative: Plausible Analytics
|
|
||||||
Add to `<head>`:
|
|
||||||
|
|
||||||
```html
|
|
||||||
<script defer data-domain="yoursite.com" src="https://plausible.io/js/script.js"></script>
|
|
||||||
```
|
|
||||||
|
|
||||||
## SEO Setup
|
|
||||||
|
|
||||||
### Search Console
|
|
||||||
1. Add property in [Google Search Console](https://search.google.com/search-console)
|
|
||||||
2. Verify ownership via DNS or HTML file
|
|
||||||
3. Submit sitemap: `https://yoursite.com/sitemap.xml` (generate with online tools)
|
|
||||||
|
|
||||||
### Sitemap.xml (Basic)
|
|
||||||
Create `sitemap.xml` in root:
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
|
||||||
<url>
|
|
||||||
<loc>https://yoursite.com/</loc>
|
|
||||||
<priority>1.0</priority>
|
|
||||||
</url>
|
|
||||||
<url>
|
|
||||||
<loc>https://yoursite.com/digital-branding.html</loc>
|
|
||||||
<priority>0.8</priority>
|
|
||||||
</url>
|
|
||||||
</urlset>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Testing Checklist
|
|
||||||
|
|
||||||
Before going live:
|
|
||||||
|
|
||||||
### ✅ Functionality
|
|
||||||
- [ ] All links work correctly
|
|
||||||
- [ ] Contact form validates properly
|
|
||||||
- [ ] Mobile navigation works
|
|
||||||
- [ ] External links open in new tabs
|
|
||||||
|
|
||||||
### ✅ Performance
|
|
||||||
- [ ] Page load speed < 3 seconds
|
|
||||||
- [ ] Images load properly
|
|
||||||
- [ ] No JavaScript errors in console
|
|
||||||
|
|
||||||
### ✅ SEO
|
|
||||||
- [ ] All meta tags present
|
|
||||||
- [ ] Open Graph images work
|
|
||||||
- [ ] Structured data validates
|
|
||||||
|
|
||||||
### ✅ Cross-browser
|
|
||||||
- [ ] Chrome/Edge
|
|
||||||
- [ ] Firefox
|
|
||||||
- [ ] Safari
|
|
||||||
- [ ] Mobile browsers
|
|
||||||
|
|
||||||
## Go Live Process
|
|
||||||
|
|
||||||
### 1. Deploy Static Site
|
|
||||||
- Upload to Netlify/Vercel
|
|
||||||
- Configure custom domain
|
|
||||||
- Test all functionality
|
|
||||||
|
|
||||||
### 2. Deploy Django App
|
|
||||||
- Follow CapRover deployment guide
|
|
||||||
- Configure aiagent subdomain
|
|
||||||
- Test marketplace functionality
|
|
||||||
|
|
||||||
### 3. Link Integration
|
|
||||||
- Update placeholder URLs to point to aiagent.quantumtaskai.com/agents/
|
|
||||||
- Test user flow from marketing to AI marketplace
|
|
||||||
- Ensure consistent branding
|
|
||||||
|
|
||||||
### 4. DNS & SSL
|
|
||||||
- Update all DNS records
|
|
||||||
- Verify SSL certificates
|
|
||||||
- Test from multiple locations
|
|
||||||
|
|
||||||
## Post-Launch
|
|
||||||
|
|
||||||
### Monitoring
|
|
||||||
- Set up uptime monitoring (UptimeRobot, Pingdom)
|
|
||||||
- Monitor Core Web Vitals
|
|
||||||
- Track conversion from static site to app
|
|
||||||
|
|
||||||
### Analytics
|
|
||||||
- Monitor traffic sources
|
|
||||||
- Track contact form submissions
|
|
||||||
- Analyze user journey from marketing to app
|
|
||||||
|
|
||||||
Your static marketing website will be live and optimized for performance, SEO, and conversions!
|
|
||||||
@ -1,247 +0,0 @@
|
|||||||
# Dokploy Deployment Guide - Quantum Tasks AI Website
|
|
||||||
|
|
||||||
This guide explains how to deploy the Quantum Tasks AI static website on Dokploy.
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
|
|
||||||
- Dokploy server running and accessible
|
|
||||||
- Domain name pointed to your Dokploy server
|
|
||||||
- Git repository with your website code
|
|
||||||
- Docker and Docker Compose support on Dokploy
|
|
||||||
|
|
||||||
## Project Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
quantumtaskai-website/
|
|
||||||
├── index.html # Main homepage
|
|
||||||
├── digital-branding.html # Digital branding page
|
|
||||||
├── css/ # Stylesheets
|
|
||||||
├── js/ # JavaScript files
|
|
||||||
├── img/ # Images and assets
|
|
||||||
├── Dockerfile # Docker configuration
|
|
||||||
├── docker-compose.yml # Docker Compose configuration
|
|
||||||
├── dokploy.json # Dokploy-specific configuration
|
|
||||||
├── .dockerignore # Docker ignore file
|
|
||||||
└── DOKPLOY-DEPLOYMENT.md # This file
|
|
||||||
```
|
|
||||||
|
|
||||||
## Deployment Files
|
|
||||||
|
|
||||||
### 1. Dockerfile
|
|
||||||
The `Dockerfile` uses nginx:alpine to serve the static website with:
|
|
||||||
- Security headers (X-Frame-Options, X-Content-Type-Options, etc.)
|
|
||||||
- Optimized caching for static assets (1 year for CSS/JS/images, 1 hour for HTML)
|
|
||||||
- SPA routing support with fallback to index.html
|
|
||||||
|
|
||||||
### 2. docker-compose.yml
|
|
||||||
Configured with:
|
|
||||||
- Traefik labels for automatic SSL and routing
|
|
||||||
- Health checks
|
|
||||||
- Production environment settings
|
|
||||||
- Network configuration for Dokploy
|
|
||||||
|
|
||||||
### 3. dokploy.json
|
|
||||||
Dokploy-specific configuration including:
|
|
||||||
- Domain settings with automatic SSL
|
|
||||||
- Resource limits (256M memory, 0.5 CPU)
|
|
||||||
- Health check configuration
|
|
||||||
- Security and monitoring settings
|
|
||||||
|
|
||||||
## Deployment Steps
|
|
||||||
|
|
||||||
### Method 1: Git Repository Deployment (Recommended)
|
|
||||||
|
|
||||||
1. **Push your code to a Git repository** (GitHub, GitLab, etc.)
|
|
||||||
|
|
||||||
2. **Access Dokploy Dashboard**
|
|
||||||
- Open your Dokploy web interface
|
|
||||||
- Navigate to Applications/Services
|
|
||||||
|
|
||||||
3. **Create New Application**
|
|
||||||
- Click "Create Application"
|
|
||||||
- Choose "Compose" as the application type
|
|
||||||
- Name: `quantumtaskai-website`
|
|
||||||
|
|
||||||
4. **Configure Git Source**
|
|
||||||
- Repository URL: `https://github.com/your-username/quantumtaskai-website.git`
|
|
||||||
- Branch: `main` (or your main branch)
|
|
||||||
- Build Path: `.` (root directory)
|
|
||||||
|
|
||||||
5. **Domain Configuration**
|
|
||||||
- Primary domain: `quantumtaskai.com`
|
|
||||||
- Additional domain: `www.quantumtaskai.com` (with redirect)
|
|
||||||
- Enable SSL/TLS with Let's Encrypt
|
|
||||||
|
|
||||||
6. **Environment Variables**
|
|
||||||
```
|
|
||||||
NODE_ENV=production
|
|
||||||
```
|
|
||||||
|
|
||||||
7. **Deploy**
|
|
||||||
- Click "Deploy"
|
|
||||||
- Monitor build logs
|
|
||||||
- Wait for deployment completion
|
|
||||||
|
|
||||||
### Method 2: Direct File Upload
|
|
||||||
|
|
||||||
1. **Package your files**
|
|
||||||
```bash
|
|
||||||
cd /path/to/quantumtaskai-website
|
|
||||||
tar -czf quantumtaskai-website.tar.gz .
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Upload to Dokploy**
|
|
||||||
- Use Dokploy's file upload feature
|
|
||||||
- Upload the tar.gz file
|
|
||||||
- Extract in the application directory
|
|
||||||
|
|
||||||
3. **Configure and deploy** (same as Method 1, steps 5-7)
|
|
||||||
|
|
||||||
## Post-Deployment Configuration
|
|
||||||
|
|
||||||
### 1. Domain DNS Setup
|
|
||||||
Point your domain to your Dokploy server:
|
|
||||||
|
|
||||||
```
|
|
||||||
Type: A
|
|
||||||
Name: @
|
|
||||||
Value: YOUR_DOKPLOY_SERVER_IP
|
|
||||||
|
|
||||||
Type: A
|
|
||||||
Name: www
|
|
||||||
Value: YOUR_DOKPLOY_SERVER_IP
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. SSL Certificate
|
|
||||||
Dokploy will automatically generate Let's Encrypt certificates for:
|
|
||||||
- `quantumtaskai.com`
|
|
||||||
- `www.quantumtaskai.com`
|
|
||||||
|
|
||||||
### 3. Health Checks
|
|
||||||
The application includes health checks that:
|
|
||||||
- Check every 30 seconds
|
|
||||||
- Timeout after 10 seconds
|
|
||||||
- Retry up to 3 times
|
|
||||||
- Allow 30 seconds startup time
|
|
||||||
|
|
||||||
## Monitoring and Maintenance
|
|
||||||
|
|
||||||
### Application Monitoring
|
|
||||||
Dokploy provides built-in monitoring for:
|
|
||||||
- CPU usage
|
|
||||||
- Memory usage
|
|
||||||
- Network traffic
|
|
||||||
- Application health status
|
|
||||||
|
|
||||||
### Logs
|
|
||||||
Access application logs through Dokploy dashboard:
|
|
||||||
- Container logs
|
|
||||||
- Nginx access logs
|
|
||||||
- Error logs
|
|
||||||
|
|
||||||
### Updates and Redeployment
|
|
||||||
|
|
||||||
**For Git-based deployment:**
|
|
||||||
1. Push changes to your Git repository
|
|
||||||
2. Trigger redeploy in Dokploy dashboard
|
|
||||||
3. Monitor deployment progress
|
|
||||||
|
|
||||||
**For file-based deployment:**
|
|
||||||
1. Update files locally
|
|
||||||
2. Create new package: `tar -czf update.tar.gz .`
|
|
||||||
3. Upload and redeploy through Dokploy
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Common Issues
|
|
||||||
|
|
||||||
**1. Build Failures**
|
|
||||||
- Check Docker build logs in Dokploy
|
|
||||||
- Verify all files are present
|
|
||||||
- Check .dockerignore isn't excluding necessary files
|
|
||||||
|
|
||||||
**2. SSL Certificate Issues**
|
|
||||||
- Ensure domain DNS is pointing to Dokploy server
|
|
||||||
- Wait 5-10 minutes for DNS propagation
|
|
||||||
- Check Let's Encrypt rate limits
|
|
||||||
|
|
||||||
**3. Application Not Accessible**
|
|
||||||
- Verify port 80 and 443 are open on Dokploy server
|
|
||||||
- Check domain configuration in Dokploy
|
|
||||||
- Verify container is running and healthy
|
|
||||||
|
|
||||||
**4. Static Files Not Loading**
|
|
||||||
- Check nginx configuration in Dockerfile
|
|
||||||
- Verify file paths in HTML are correct
|
|
||||||
- Check browser developer tools for 404 errors
|
|
||||||
|
|
||||||
### Debug Commands
|
|
||||||
|
|
||||||
**Check container status:**
|
|
||||||
```bash
|
|
||||||
docker ps | grep quantumtaskai-website
|
|
||||||
```
|
|
||||||
|
|
||||||
**View container logs:**
|
|
||||||
```bash
|
|
||||||
docker logs quantumtaskai-website
|
|
||||||
```
|
|
||||||
|
|
||||||
**Test container locally:**
|
|
||||||
```bash
|
|
||||||
docker build -t quantumtaskai-website .
|
|
||||||
docker run -p 8080:80 quantumtaskai-website
|
|
||||||
```
|
|
||||||
|
|
||||||
## Performance Optimization
|
|
||||||
|
|
||||||
### Caching Strategy
|
|
||||||
The nginx configuration implements:
|
|
||||||
- 1 year cache for static assets (CSS, JS, images)
|
|
||||||
- 1 hour cache for HTML files
|
|
||||||
- Proper cache headers for SEO
|
|
||||||
|
|
||||||
### Resource Usage
|
|
||||||
- Memory limit: 256MB
|
|
||||||
- CPU limit: 0.5 cores
|
|
||||||
- Suitable for static website with moderate traffic
|
|
||||||
|
|
||||||
### Scaling
|
|
||||||
For higher traffic:
|
|
||||||
1. Increase resource limits in `dokploy.json`
|
|
||||||
2. Consider using CDN for static assets
|
|
||||||
3. Enable Dokploy's load balancing features
|
|
||||||
|
|
||||||
## Security Features
|
|
||||||
|
|
||||||
### Built-in Security Headers
|
|
||||||
- X-Frame-Options: SAMEORIGIN
|
|
||||||
- X-Content-Type-Options: nosniff
|
|
||||||
- X-XSS-Protection: 1; mode=block
|
|
||||||
|
|
||||||
### SSL/TLS
|
|
||||||
- Automatic HTTPS redirect
|
|
||||||
- Strong cipher suites
|
|
||||||
- HTTP/2 support
|
|
||||||
|
|
||||||
### Network Security
|
|
||||||
- Container isolated in Docker network
|
|
||||||
- Only necessary ports exposed (80, 443)
|
|
||||||
- Firewall rules configured
|
|
||||||
|
|
||||||
## Backup Strategy
|
|
||||||
|
|
||||||
The static website doesn't require database backups, but consider:
|
|
||||||
- Regular Git repository backups
|
|
||||||
- Dokploy configuration export
|
|
||||||
- Domain and SSL certificate documentation
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
For issues with:
|
|
||||||
- **Dokploy Platform**: Check Dokploy documentation
|
|
||||||
- **Website Content**: Review HTML/CSS/JS files
|
|
||||||
- **Domain/SSL**: Contact your domain registrar
|
|
||||||
- **Server Issues**: Check with your hosting provider
|
|
||||||
|
|
||||||
Your Quantum Tasks AI website should now be successfully deployed on Dokploy with automatic SSL, monitoring, and optimized performance!
|
|
||||||
@ -1,59 +0,0 @@
|
|||||||
# Logo Fix - Complete ✅
|
|
||||||
|
|
||||||
## What Was Fixed
|
|
||||||
|
|
||||||
### ✅ Logo Files Copied
|
|
||||||
- **logo.png** → Successfully copied to `static-website/img/`
|
|
||||||
- **og-image.png** → Successfully copied for social media previews
|
|
||||||
|
|
||||||
### ✅ Assets Status
|
|
||||||
```
|
|
||||||
static-website/img/
|
|
||||||
├── logo.png ✅ (75KB - Professional logo with brand name)
|
|
||||||
├── og-image.png ✅ (105KB - Social media preview image)
|
|
||||||
├── FAVICON-SETUP.md ✅ (Instructions for generating favicons)
|
|
||||||
└── [favicons needed] ⚠️ (Optional - site works without them)
|
|
||||||
```
|
|
||||||
|
|
||||||
### ✅ HTML Configuration
|
|
||||||
All HTML files (`index.html`, `digital-branding.html`) are configured with:
|
|
||||||
- Correct logo path: `<img src="img/logo.png" alt="Quantum Tasks AI">`
|
|
||||||
- SEO meta images: `content="https://quantumtaskai.com/img/og-image.png"`
|
|
||||||
- Updated navigation with AI Marketplace link
|
|
||||||
- Separate Login/Register authentication buttons
|
|
||||||
|
|
||||||
## Current Status: READY TO DEPLOY 🚀
|
|
||||||
|
|
||||||
Your static website is **ready to deploy immediately** with:
|
|
||||||
- ✅ Working logo display
|
|
||||||
- ✅ Social media preview images
|
|
||||||
- ✅ Professional branding
|
|
||||||
- ✅ Updated navigation (Home | AI Digital Branding | AI Marketplace)
|
|
||||||
- ✅ Modern authentication UI (separate Login/Register buttons)
|
|
||||||
- ✅ Integrated contact form on homepage
|
|
||||||
|
|
||||||
## Optional: Add Favicons Later
|
|
||||||
|
|
||||||
**For immediate deployment:** Site works perfectly without favicons
|
|
||||||
**For complete setup:** Follow instructions in `img/FAVICON-SETUP.md`
|
|
||||||
|
|
||||||
## Quick Deploy Instructions
|
|
||||||
|
|
||||||
### Deploy to Netlify (5 minutes):
|
|
||||||
1. Go to [netlify.com](https://netlify.com)
|
|
||||||
2. Drag the entire `static-website/` folder to Netlify
|
|
||||||
3. Your site goes live instantly with working logo
|
|
||||||
4. Configure custom domain if needed
|
|
||||||
|
|
||||||
### Example Live Preview:
|
|
||||||
- **Header**: Shows "QUANTUM TASK AI" logo
|
|
||||||
- **Social Sharing**: Shows professional og-image
|
|
||||||
- **Branding**: Consistent across all pages
|
|
||||||
|
|
||||||
## Logo Details
|
|
||||||
- **Format**: PNG with transparency
|
|
||||||
- **Size**: Optimized for web (75KB)
|
|
||||||
- **Design**: Professional with "SOLVING COMPLEXITY, QUANTUM FAST" tagline
|
|
||||||
- **Branding**: "POWERED BY NETCOP CONSULTANCY"
|
|
||||||
|
|
||||||
Your static marketing website is now **ready to go live** with proper logo branding! 🎉
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 134 KiB |
@ -1,69 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
<title>Wilmington Foods — Anuga 2025</title>
|
|
||||||
<link rel="stylesheet" href="styles.css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="container">
|
|
||||||
<main>
|
|
||||||
<header class="banner banner--img">
|
|
||||||
<img src="anuga.png" alt="Anuga 2025 - The No.1 for Food & Beverage Business, Köln Cologne, 04.-08.10.2025" class="header-image" />
|
|
||||||
<div>
|
|
||||||
<h1 class="sr-only">LET'S MEET AT ANUGA!</h1>
|
|
||||||
<p class="sr-only">- Discover what's new at ANUGA 2025 -</p>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<section class="card-large">
|
|
||||||
<div class="brand-logo">
|
|
||||||
<img src="logo.png" alt="Wilmington Foods" />
|
|
||||||
</div>
|
|
||||||
<p class="lead">After a year of exciting growth and innovation, <strong>Wilmington Foods</strong> is thrilled to showcase our latest range at one of the world's most dynamic food & beverage events!</p>
|
|
||||||
|
|
||||||
<p>We're excited to share that the Wilmington Foods team will be at <strong>Anuga 2025</strong>! <span class="pin">📍</span> You'll find our stand in <strong>Hall 02.1 — Stand D010</strong>.</p>
|
|
||||||
|
|
||||||
<div class="map-edge">
|
|
||||||
<img src="map.png" alt="Anuga 2025 Exhibition Hall Map - Wilmington Foods at Hall 02.1 Stand D010" class="map-image" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>Wilmington Foods is a leading manufacturer and exporter of premium sesame seeds, creamy tahini, and delicious halawa. With fully automated, BRC Certified facilities and strict quality controls, we deliver nutrition, purity, and consistency every step of the way. From World's finest sesame to your shelves—with custom-tailored private labelling options!</p>
|
|
||||||
|
|
||||||
<p class="question"><strong>Would you like to know more or schedule a meeting during Anuga?</strong><br />
|
|
||||||
Just hit reply — our team will be happy to set up a time that works for you.</p>
|
|
||||||
|
|
||||||
<div class="cta-row">
|
|
||||||
<a class="cta-main" href="mailto:info@wilmingtonfoods.com?subject=Meeting%20at%20Anuga%202025">Contact us to schedule a meeting at Anuga</a>
|
|
||||||
<a class="cta-main" href="https://www.wilmingtonfoods.com" target="_blank" rel="noopener">Discover more about Wilmington Foods</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<hr class="divider" />
|
|
||||||
|
|
||||||
<div class="contact-cards" id="contact">
|
|
||||||
<div class="contact-col">
|
|
||||||
<h3>Wilmington Foods FZE</h3>
|
|
||||||
<p>Phase II (Food Park), Plot No 46, 47, 55, 56<br />
|
|
||||||
Hamriyah Free Zone, Sharjah, UAE</p>
|
|
||||||
<p class="muted"><a href="mailto:info@wilmingtonfoods.com">info@wilmingtonfoods.com</a> · <a href="tel:+971505467749">+971 50 546 7749</a></p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p class="closing">See you soon in Cologne!<br />
|
|
||||||
<strong>Wilmington Foods Team</strong></p>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<footer class="site-footer">
|
|
||||||
<div class="container">
|
|
||||||
<p>See you soon in Cologne!</p>
|
|
||||||
<p>Wilmington Foods Team</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
LET'S MEET AT ANUGA!
|
|
||||||
- Discover what's new with Wilmington Foods at Anuga 2025 – Cologne -
|
|
||||||
After a year of exciting growth and innovation, Wilmington Foods FZE is thrilled to showcase our latest range at the world's most dynamic food & beverage event! Join us in Cologne to discuss sesame seeds, tahini, halawa, and private label solutions, and to explore how our commitment to quality can benefit your business.
|
|
||||||
|
|
||||||
Meet us at ANUGA 2025!
|
|
||||||
📍 Hall 02.1 | Stand D010
|
|
||||||
|
|
||||||
Wilmington Foods FZE
|
|
||||||
Phase II (Food Park), Plot No 46, 47, 55, 56
|
|
||||||
Hamriyah Free Zone, Sharjah, UAE
|
|
||||||
|
|
||||||
About Wilmington Foods:
|
|
||||||
Wilmington Foods is a leading manufacturer and exporter of premium sesame seeds, creamy tahini, and delicious halawa. With fully automated, BRC Certified facilities and strict quality controls, we deliver nutrition, purity, and consistency every step of the way. From Africa's finest sesame to your shelves—with custom-tailored private labelling options!
|
|
||||||
|
|
||||||
Let's connect at Anuga!
|
|
||||||
Would you like to know more or schedule a meeting during Anuga?
|
|
||||||
Reply now—our team will be happy to set up a time that works for you.
|
|
||||||
|
|
||||||
Contact us to schedule a meeting:
|
|
||||||
📧 info@wilmingtonfoods.com
|
|
||||||
📱 +971 50 546 7749
|
|
||||||
|
|
||||||
Discover more about Wilmington Foods:
|
|
||||||
🌐 www.wilmingtonfoods.com
|
|
||||||
|
|
||||||
See you soon in Cologne!
|
|
||||||
Wilmington Foods Team
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB |
@ -1,89 +0,0 @@
|
|||||||
/* Base */
|
|
||||||
:root {
|
|
||||||
--red: #BC4037; /* primary brand color (red) */
|
|
||||||
--red-dark: #9A332A;
|
|
||||||
--ink: #2b2f36; /* heading/body */
|
|
||||||
--gray-700: #4b5563;
|
|
||||||
--gray-500: #6b7280; /* muted */
|
|
||||||
--page: #f3f4f6; /* light gray background */
|
|
||||||
--card: #ffffff; /* white card */
|
|
||||||
--border: #e5e7eb;
|
|
||||||
}
|
|
||||||
|
|
||||||
* { box-sizing: border-box; }
|
|
||||||
html, body { height: 100%; }
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
background: var(--page);
|
|
||||||
color: var(--ink);
|
|
||||||
font-family: system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Top photo band */
|
|
||||||
.hero-photo { display: none; }
|
|
||||||
|
|
||||||
img { max-width: 100%; height: auto; display: block; }
|
|
||||||
a { color: inherit; text-decoration: none; }
|
|
||||||
|
|
||||||
.container { width: min(760px, 92%); margin: 0 auto; }
|
|
||||||
.section { padding: 64px 0; }
|
|
||||||
|
|
||||||
/* Header / Nav */
|
|
||||||
.banner { background: transparent; color: #fff; padding: 0; margin: 0; text-align: center; }
|
|
||||||
.banner--img {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
border-bottom-left-radius: 0;
|
|
||||||
border-bottom-right-radius: 0;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.header-image {
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.banner h1 { margin: 0 0 6px; font-size: clamp(24px, 4vw, 30px); letter-spacing: 0.6px; font-weight: 800; }
|
|
||||||
.banner p { margin: 0; opacity: 0.98; font-weight: 700; letter-spacing: 0.3px; }
|
|
||||||
|
|
||||||
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
|
|
||||||
|
|
||||||
/* Grid / Cards */
|
|
||||||
.card-large { background: transparent; border: none; border-radius: 0; padding: 20px 0; margin-top: 0; box-shadow: none; }
|
|
||||||
.brand-logo { display: grid; place-items: center; margin: 0; }
|
|
||||||
.brand-logo img { max-height: 84px; width: auto; opacity: 0.95; }
|
|
||||||
.lead { color: var(--gray-700); margin-top: 0; }
|
|
||||||
.pin { color: var(--red); }
|
|
||||||
.map-edge { margin: 12px 0 8px; overflow: hidden; border-radius: 8px; }
|
|
||||||
.map-image {
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
border-radius: 8px;
|
|
||||||
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
||||||
}
|
|
||||||
.question { color: var(--ink); }
|
|
||||||
|
|
||||||
.cta-row { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 22px 0 12px; }
|
|
||||||
.cta-main { display: inline-block; text-align: center; padding: 14px 18px; border-radius: 8px; font-weight: 800; letter-spacing: 0.3px; background: var(--red); color: #fff; box-shadow: 0 3px 0 var(--red-dark); text-transform: uppercase; }
|
|
||||||
|
|
||||||
.divider { border: 0; height: 2px; background: #f1f2f4; margin: 24px 0; }
|
|
||||||
.contact-cards { display: grid; grid-template-columns: 1fr; gap: 12px; }
|
|
||||||
.contact-col h3 { margin-bottom: 6px; }
|
|
||||||
.muted { color: var(--gray-500); }
|
|
||||||
.closing { margin-top: 10px; color: var(--gray-700); }
|
|
||||||
|
|
||||||
.card { margin-top: 16px; border: 1px solid var(--border); background: var(--card); border-radius: 14px; padding: 18px; }
|
|
||||||
.contact { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
|
|
||||||
.contact li { display: flex; gap: 10px; align-items: center; color: var(--muted); }
|
|
||||||
.contact a { color: var(--text); text-decoration: underline; text-decoration-color: rgba(255,255,255,0.15); text-underline-offset: 3px; }
|
|
||||||
|
|
||||||
/* Footer */
|
|
||||||
.site-footer { display: none; }
|
|
||||||
|
|
||||||
/* Responsive */
|
|
||||||
@media (max-width: 900px) {
|
|
||||||
.cta-row { grid-template-columns: 1fr; }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
194
anuga.html
194
anuga.html
@ -1,194 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>WF - Quantum Tasks AI</title>
|
|
||||||
|
|
||||||
<!-- SEO Meta Tags -->
|
|
||||||
<meta name="description" content="WF - Quantum Tasks AI form submission page">
|
|
||||||
<meta name="keywords" content="AI, artificial intelligence, automation, task management, AI agents">
|
|
||||||
<meta name="author" content="Quantum Tasks AI">
|
|
||||||
|
|
||||||
<!-- Open Graph Meta Tags for Rich Link Previews -->
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
<meta property="og:site_name" content="Quantum Tasks AI">
|
|
||||||
<meta property="og:title" content="WF - Quantum Tasks AI">
|
|
||||||
<meta property="og:description" content="WF form submission page for Quantum Tasks AI">
|
|
||||||
<meta property="og:url" content="https://quantumtaskai.com/wf">
|
|
||||||
<meta property="og:image" content="https://quantumtaskai.com/img/og-image.png">
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="630">
|
|
||||||
<meta property="og:image:alt" content="Quantum Tasks AI - AI Agent Marketplace">
|
|
||||||
|
|
||||||
<!-- Twitter Card Meta Tags -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:site" content="@quantumtaskai">
|
|
||||||
<meta name="twitter:title" content="WF - Quantum Tasks AI">
|
|
||||||
<meta name="twitter:description" content="WF form submission page for Quantum Tasks AI">
|
|
||||||
<meta name="twitter:image" content="https://quantumtaskai.com/img/og-image.png">
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<!-- Favicon files will be added later -->
|
|
||||||
|
|
||||||
<!-- Font Loading -->
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"></noscript>
|
|
||||||
|
|
||||||
<!-- Styles -->
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.form-container {
|
|
||||||
min-height: 100vh;
|
|
||||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 800px;
|
|
||||||
background: white;
|
|
||||||
border-radius: 12px;
|
|
||||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.form-content {
|
|
||||||
padding: 1rem;
|
|
||||||
min-height: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jotform-iframe {
|
|
||||||
width: 100%;
|
|
||||||
height: 700px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.form-container {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jotform-iframe {
|
|
||||||
height: 800px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="hdr">
|
|
||||||
<div class="hdr-inner">
|
|
||||||
<a href="index.html" class="hdr-logo">
|
|
||||||
<img src="img/logo.png" alt="Quantum Tasks AI">
|
|
||||||
</a>
|
|
||||||
<nav class="hdr-nav" id="hdr-nav" aria-label="Main navigation">
|
|
||||||
<a href="index.html">Home</a>
|
|
||||||
<a href="digital-branding.html">AI Digital Branding</a>
|
|
||||||
<a href="https://blog.quantumtaskai.com/">Blog</a>
|
|
||||||
<a href="https://ai-chat.quantumtaskai.com/">AI Chat</a>
|
|
||||||
<a href="https://ai.quantumtaskai.com/agents/">AI Marketplace</a>
|
|
||||||
</nav>
|
|
||||||
<button class="hdr-burger" id="hdr-burger" aria-label="Toggle navigation" aria-expanded="false" aria-controls="hdr-nav">
|
|
||||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true">
|
|
||||||
<path d="M3 5h16M3 11h16M3 17h16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main class="form-container">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<div class="form-content">
|
|
||||||
<iframe
|
|
||||||
id="JotFormIFrame-252561494170457"
|
|
||||||
title="WF Form"
|
|
||||||
onload="window.parent.scrollTo(0,0)"
|
|
||||||
allowtransparency="true"
|
|
||||||
allow="geolocation; microphone; camera; midi; encrypted-media;"
|
|
||||||
src="https://form.jotform.com/252721607087458"
|
|
||||||
frameborder="0"
|
|
||||||
class="jotform-iframe"
|
|
||||||
scrolling="no">
|
|
||||||
</iframe>
|
|
||||||
|
|
||||||
<script src='https://cdn.jotfor.ms/s/umd/latest/for-form-embed-handler.js'></script>
|
|
||||||
<script>window.jotformEmbedHandler("iframe[id='JotFormIFrame-252561494170457']", "https://form.jotform.com/");</script>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer-container">
|
|
||||||
<!-- Main Footer Content -->
|
|
||||||
<div class="footer-main">
|
|
||||||
<!-- Company Info -->
|
|
||||||
<div class="footer-company">
|
|
||||||
<div class="footer-logo">
|
|
||||||
<img src="img/logo.png" alt="Quantum Tasks AI" class="footer-logo-img">
|
|
||||||
</div>
|
|
||||||
<p class="footer-description">
|
|
||||||
Leading cybersecurity consultancy providing comprehensive security solutions and AI-powered automation.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="footer-contact">
|
|
||||||
<a href="mailto:abhay@quantumtaskai.com" class="footer-contact-item">
|
|
||||||
📧 abhay@quantumtaskai.com
|
|
||||||
</a>
|
|
||||||
<span class="footer-contact-item">
|
|
||||||
📍 Dubai, UAE
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Navigation Sections -->
|
|
||||||
<div class="footer-nav">
|
|
||||||
<!-- Services -->
|
|
||||||
<div class="footer-nav-section">
|
|
||||||
<h4 class="footer-nav-title">Services</h4>
|
|
||||||
<div class="footer-nav-links">
|
|
||||||
<a href="#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
|
||||||
<a href="#services" class="footer-nav-link">AI Automation</a>
|
|
||||||
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
|
||||||
<a href="#services" class="footer-nav-link">Rapid Response</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Company -->
|
|
||||||
<div class="footer-nav-section">
|
|
||||||
<h4 class="footer-nav-title">Company</h4>
|
|
||||||
<div class="footer-nav-links">
|
|
||||||
<a href="#about" class="footer-nav-link">About Us</a>
|
|
||||||
<a href="#founder" class="footer-nav-link">Leadership</a>
|
|
||||||
<a href="#contact" class="footer-nav-link">Contact Us</a>
|
|
||||||
<a href="https://app.quantumtaskai.com" class="footer-nav-link">AI Marketplace</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Bottom Section -->
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<p class="footer-copyright">
|
|
||||||
© 2025 Quantum Tasks AI. All rights reserved.
|
|
||||||
</p>
|
|
||||||
<div class="footer-legal">
|
|
||||||
<a href="#privacy" class="footer-legal-link">Privacy Policy</a>
|
|
||||||
<a href="#terms" class="footer-legal-link">Terms of Service</a>
|
|
||||||
<a href="#security" class="footer-legal-link">Security</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script src="js/script.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
398
aue.html
398
aue.html
@ -1,398 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>Quantum Tasks AI - Chat Assistant</title>
|
|
||||||
<meta name="description" content="Chat with Quantum Tasks AI - Get instant support for AI and Cybersecurity solutions">
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/x-icon" href="img/favicon.ico">
|
|
||||||
|
|
||||||
<!-- Styles -->
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
||||||
background-color: #f8fafc;
|
|
||||||
height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chat-main {
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
padding: 40px 0;
|
|
||||||
margin: 0;
|
|
||||||
background-color: #f8fafc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.chat-container {
|
|
||||||
max-width: 1200px;
|
|
||||||
width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 0 20px;
|
|
||||||
flex: 1;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.iframe-container {
|
|
||||||
flex: 1;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: white;
|
|
||||||
border-radius: 12px;
|
|
||||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
|
||||||
overflow: hidden;
|
|
||||||
border: 1px solid #e2e8f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#chatWidget {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border: none;
|
|
||||||
display: block;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.chat-main {
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Override eself.ai home button styling */
|
|
||||||
.custom-home-overlay {
|
|
||||||
position: absolute;
|
|
||||||
top: 10px;
|
|
||||||
left: 10px;
|
|
||||||
background: #667eea !important;
|
|
||||||
color: white !important;
|
|
||||||
border: none !important;
|
|
||||||
padding: 8px 16px !important;
|
|
||||||
border-radius: 6px !important;
|
|
||||||
cursor: pointer !important;
|
|
||||||
z-index: 9999 !important;
|
|
||||||
font-weight: 500 !important;
|
|
||||||
font-size: 14px !important;
|
|
||||||
box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
|
|
||||||
text-decoration: none !important;
|
|
||||||
display: inline-block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.custom-home-overlay:hover {
|
|
||||||
background: #5a6fd8 !important;
|
|
||||||
transform: translateY(-1px) !important;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="hdr">
|
|
||||||
<div class="hdr-inner">
|
|
||||||
<a href="index.html" class="hdr-logo">
|
|
||||||
<img src="img/logo.png" alt="Quantum Tasks AI">
|
|
||||||
</a>
|
|
||||||
<nav class="hdr-nav" id="hdr-nav" aria-label="Main navigation">
|
|
||||||
<a href="index.html">Home</a>
|
|
||||||
<a href="digital-branding.html">AI Digital Branding</a>
|
|
||||||
<a href="https://blog.quantumtaskai.com/">Blog</a>
|
|
||||||
<a href="https://ai-chat.quantumtaskai.com/">AI Chat</a>
|
|
||||||
<a href="https://ai.quantumtaskai.com/agents/">AI Marketplace</a>
|
|
||||||
</nav>
|
|
||||||
<button class="hdr-burger" id="hdr-burger" aria-label="Toggle navigation" aria-expanded="false" aria-controls="hdr-nav">
|
|
||||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true">
|
|
||||||
<path d="M3 5h16M3 11h16M3 17h16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main class="chat-main">
|
|
||||||
<div class="chat-container">
|
|
||||||
<div class="iframe-container">
|
|
||||||
<iframe
|
|
||||||
src="https://meet.eself.ai/108315232292977188132/talk-to-agent?aiclid=3hIpww4j&flow_id=agent-5"
|
|
||||||
id="chatWidget"
|
|
||||||
frameborder="0"
|
|
||||||
scrolling="yes"
|
|
||||||
allowtransparency="true"
|
|
||||||
allow="camera; microphone; autoplay; encrypted-media; fullscreen"
|
|
||||||
allowfullscreen>
|
|
||||||
</iframe>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- JavaScript -->
|
|
||||||
<script src="js/script.js"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const iframe = document.getElementById('chatWidget');
|
|
||||||
let initialUrl = iframe.src;
|
|
||||||
let callStarted = false;
|
|
||||||
|
|
||||||
// Listen for messages from the iframe
|
|
||||||
window.addEventListener('message', function(event) {
|
|
||||||
console.log('Received message:', event.data, 'from:', event.origin);
|
|
||||||
|
|
||||||
if (event.origin === 'https://meet.eself.ai') {
|
|
||||||
// Check for various call end patterns
|
|
||||||
if (event.data && typeof event.data === 'object') {
|
|
||||||
const data = event.data;
|
|
||||||
|
|
||||||
// Check for call end indicators that should show thank you screen
|
|
||||||
if (data.type === 'call-ended' ||
|
|
||||||
data.type === 'session-ended' ||
|
|
||||||
data.action === 'end-call' ||
|
|
||||||
data.event === 'call-end' ||
|
|
||||||
data.status === 'ended' ||
|
|
||||||
data.message === 'call-ended' ||
|
|
||||||
(data.type === 'navigation' && data.url && data.url.includes('thank'))) {
|
|
||||||
|
|
||||||
console.log('Call ended detected, showing thank you overlay...');
|
|
||||||
|
|
||||||
// Update iframe to thank you page
|
|
||||||
iframe.src = 'https://meet.eself.ai/108315232292977188132/thank-you';
|
|
||||||
|
|
||||||
// Show our overlay button
|
|
||||||
setTimeout(function() {
|
|
||||||
window.showThankYouButton = true;
|
|
||||||
addHomeButtonOverlay();
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Track when call actually starts
|
|
||||||
if (data.type === 'call-started' || data.action === 'call-start') {
|
|
||||||
callStarted = true;
|
|
||||||
console.log('Call started');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for thank you navigation
|
|
||||||
if ((data.type === 'navigation' && data.url && data.url.includes('thank')) ||
|
|
||||||
data.type === 'thank-you' || data.action === 'show-thank-you') {
|
|
||||||
console.log('Thank you navigation detected');
|
|
||||||
window.showThankYouButton = true;
|
|
||||||
setTimeout(addHomeButtonOverlay, 500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle string messages too
|
|
||||||
if (typeof event.data === 'string') {
|
|
||||||
const msg = event.data.toLowerCase();
|
|
||||||
if (msg.includes('end') || msg.includes('finish') || msg.includes('complete') || msg.includes('thank')) {
|
|
||||||
console.log('Thank you/end message detected:', msg);
|
|
||||||
window.showThankYouButton = true;
|
|
||||||
setTimeout(addHomeButtonOverlay, 500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Monitor iframe URL changes (limited by CORS but worth trying)
|
|
||||||
function monitorIframeChanges() {
|
|
||||||
try {
|
|
||||||
const currentUrl = iframe.contentWindow.location.href;
|
|
||||||
if (currentUrl !== initialUrl) {
|
|
||||||
console.log('Iframe URL changed:', currentUrl);
|
|
||||||
// Check if URL indicates call ended
|
|
||||||
if (currentUrl.includes('end') || currentUrl.includes('finish') || currentUrl.includes('complete')) {
|
|
||||||
console.log('Call ended via URL change, redirecting...');
|
|
||||||
setTimeout(function() {
|
|
||||||
window.location.href = 'index.html';
|
|
||||||
}, 1500);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
// CORS will likely block this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check every few seconds
|
|
||||||
setInterval(monitorIframeChanges, 3000);
|
|
||||||
|
|
||||||
// Listen for beforeunload on the main window (user closes tab/browser)
|
|
||||||
window.addEventListener('beforeunload', function() {
|
|
||||||
if (callStarted) {
|
|
||||||
// Don't redirect if user is closing the browser/tab intentionally
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Function to overlay existing home button only on thank you screen
|
|
||||||
function addHomeButtonOverlay() {
|
|
||||||
// Check if we're on the thank you screen using multiple methods
|
|
||||||
let isThankYouScreen = false;
|
|
||||||
|
|
||||||
// Method 1: Check iframe src URL
|
|
||||||
const currentSrc = iframe.src || '';
|
|
||||||
console.log('Current iframe src:', currentSrc);
|
|
||||||
|
|
||||||
if (currentSrc.includes('thank-you') || currentSrc.includes('thank_you')) {
|
|
||||||
isThankYouScreen = true;
|
|
||||||
console.log('Thank You screen detected via iframe src');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method 2: Try to check iframe content (will likely fail due to CORS)
|
|
||||||
try {
|
|
||||||
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
|
||||||
if (iframeDoc && iframeDoc.body) {
|
|
||||||
const bodyText = iframeDoc.body.innerText || '';
|
|
||||||
if (bodyText.includes('Thank You!') || bodyText.includes('Thank you!')) {
|
|
||||||
isThankYouScreen = true;
|
|
||||||
console.log('Thank You screen detected via content');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
console.log('Cannot access iframe content due to CORS');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method 3: Try to check iframe window location (will likely fail due to CORS)
|
|
||||||
try {
|
|
||||||
const iframeUrl = iframe.contentWindow.location.href || '';
|
|
||||||
console.log('Iframe URL:', iframeUrl);
|
|
||||||
if (iframeUrl.includes('thank-you') || iframeUrl.includes('thank_you') ||
|
|
||||||
iframeUrl.includes('complete') || iframeUrl.includes('finished')) {
|
|
||||||
isThankYouScreen = true;
|
|
||||||
console.log('Thank You screen detected via URL');
|
|
||||||
}
|
|
||||||
} catch (urlError) {
|
|
||||||
console.log('Cannot check iframe URL due to CORS');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method 4: Simple fallback - show button after some time (temporary for testing)
|
|
||||||
const now = Date.now();
|
|
||||||
if (!window.chatStartTime) {
|
|
||||||
window.chatStartTime = now;
|
|
||||||
}
|
|
||||||
// Show button after 30 seconds as fallback (you can remove this later)
|
|
||||||
if (now - window.chatStartTime > 30000) {
|
|
||||||
console.log('Showing button after 30 seconds (fallback)');
|
|
||||||
isThankYouScreen = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove existing overlay button first
|
|
||||||
const existingButton = document.querySelector('.custom-home-overlay');
|
|
||||||
if (existingButton) {
|
|
||||||
existingButton.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Only add button if on thank you screen
|
|
||||||
if (!isThankYouScreen) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create our custom home button
|
|
||||||
const homeButton = document.createElement('a');
|
|
||||||
homeButton.innerHTML = 'Home';
|
|
||||||
homeButton.href = 'index.html';
|
|
||||||
homeButton.className = 'custom-home-overlay';
|
|
||||||
|
|
||||||
// Position it to overlay the iframe's bottom center (where eself.ai Home button is)
|
|
||||||
homeButton.style.cssText = `
|
|
||||||
position: absolute;
|
|
||||||
bottom: 130px;
|
|
||||||
left: 50%;
|
|
||||||
transform: translateX(-50%);
|
|
||||||
background: #1a237e;
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
padding: 12px 32px;
|
|
||||||
border-radius: 24px;
|
|
||||||
cursor: pointer;
|
|
||||||
z-index: 9999;
|
|
||||||
font-weight: 600;
|
|
||||||
font-size: 16px;
|
|
||||||
box-shadow: 0 4px 16px rgba(26, 35, 126, 0.4);
|
|
||||||
text-decoration: none;
|
|
||||||
display: inline-block;
|
|
||||||
transition: all 0.2s ease;
|
|
||||||
font-family: inherit;
|
|
||||||
width: 120px;
|
|
||||||
text-align: center;
|
|
||||||
height: 48px;
|
|
||||||
line-height: 24px;
|
|
||||||
`;
|
|
||||||
|
|
||||||
homeButton.onmouseover = function() {
|
|
||||||
this.style.background = '#283593';
|
|
||||||
this.style.transform = 'translateX(-50%) translateY(-2px)';
|
|
||||||
this.style.boxShadow = '0 6px 20px rgba(26, 35, 126, 0.5)';
|
|
||||||
};
|
|
||||||
|
|
||||||
homeButton.onmouseout = function() {
|
|
||||||
this.style.background = '#1a237e';
|
|
||||||
this.style.transform = 'translateX(-50%)';
|
|
||||||
this.style.boxShadow = '0 4px 16px rgba(26, 35, 126, 0.4)';
|
|
||||||
};
|
|
||||||
|
|
||||||
// Add to iframe container so it overlays the iframe
|
|
||||||
const iframeContainer = document.querySelector('.iframe-container');
|
|
||||||
iframeContainer.style.position = 'relative';
|
|
||||||
iframeContainer.appendChild(homeButton);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Try to override eself.ai's existing home button
|
|
||||||
function overrideEselfHomeButton() {
|
|
||||||
try {
|
|
||||||
// This will be blocked by CORS, but worth trying
|
|
||||||
const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
|
|
||||||
|
|
||||||
// Look for common home button selectors
|
|
||||||
const homeButtons = iframeDoc.querySelectorAll(
|
|
||||||
'a[href*="home"], button[class*="home"], [class*="back"], [aria-label*="home"], [title*="home"]'
|
|
||||||
);
|
|
||||||
|
|
||||||
homeButtons.forEach(button => {
|
|
||||||
// Override the button's functionality
|
|
||||||
button.onclick = function(e) {
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
window.parent.location.href = 'index.html';
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Change the text if it's visible
|
|
||||||
if (button.textContent) {
|
|
||||||
button.textContent = 'Home';
|
|
||||||
}
|
|
||||||
|
|
||||||
// Override styling
|
|
||||||
button.style.background = '#667eea';
|
|
||||||
button.style.color = 'white';
|
|
||||||
button.style.border = 'none';
|
|
||||||
button.style.padding = '8px 16px';
|
|
||||||
button.style.borderRadius = '6px';
|
|
||||||
});
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
console.log('Cannot access iframe content due to CORS');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Monitor for Thank You screen and add button when detected
|
|
||||||
function monitorForThankYouScreen() {
|
|
||||||
addHomeButtonOverlay();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check for Thank You screen periodically
|
|
||||||
setInterval(monitorForThankYouScreen, 2000);
|
|
||||||
|
|
||||||
// Also check when iframe loads
|
|
||||||
iframe.onload = function() {
|
|
||||||
setTimeout(monitorForThankYouScreen, 1000);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Initial check
|
|
||||||
setTimeout(monitorForThankYouScreen, 3000);
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -458,7 +458,6 @@
|
|||||||
<a href="index.html#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
<a href="index.html#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
||||||
<a href="index.html#services" class="footer-nav-link">AI Automation</a>
|
<a href="index.html#services" class="footer-nav-link">AI Automation</a>
|
||||||
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
||||||
<a href="freight-flow.html" class="footer-nav-link">FreightFlow</a>
|
|
||||||
<a href="index.html#services" class="footer-nav-link">Rapid Response</a>
|
<a href="index.html#services" class="footer-nav-link">Rapid Response</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,35 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>FreightFlow - Quantum Tasks AI</title>
|
|
||||||
<style>
|
|
||||||
* {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
html, body {
|
|
||||||
height: 100%;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fullscreen-iframe {
|
|
||||||
width: 100vw;
|
|
||||||
height: 100vh;
|
|
||||||
border: none;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<iframe
|
|
||||||
src="https://freight-flow-0eb6e2d9.base44.app/"
|
|
||||||
class="fullscreen-iframe"
|
|
||||||
title="FreightFlow Application"
|
|
||||||
allow="geolocation; microphone; camera; midi; encrypted-media; fullscreen; payment">
|
|
||||||
</iframe>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
# Favicon Setup Instructions
|
|
||||||
|
|
||||||
## Current Status ✅
|
|
||||||
- ✅ **logo.png** - Main logo (already copied)
|
|
||||||
- ✅ **og-image.png** - Social media preview (already copied)
|
|
||||||
- ❌ **Favicons** - Need to be generated
|
|
||||||
|
|
||||||
## Quick Favicon Generation
|
|
||||||
|
|
||||||
### Option 1: Online Generator (Recommended)
|
|
||||||
1. Go to [favicon.io/favicon-converter](https://favicon.io/favicon-converter/)
|
|
||||||
2. Upload the `logo.png` file
|
|
||||||
3. Download the generated favicon package
|
|
||||||
4. Extract and copy these files to this directory:
|
|
||||||
- `favicon.ico`
|
|
||||||
- `apple-touch-icon.png`
|
|
||||||
- `favicon-32x32.png`
|
|
||||||
- `favicon-16x16.png`
|
|
||||||
|
|
||||||
### Option 2: Use Real Favicon Generator
|
|
||||||
1. Go to [realfavicongenerator.net](https://realfavicongenerator.net/)
|
|
||||||
2. Upload the `logo.png` file
|
|
||||||
3. Customize settings if needed
|
|
||||||
4. Download and extract files to this directory
|
|
||||||
|
|
||||||
### Option 3: Simple Favicon (Quick Fix)
|
|
||||||
If you want to deploy immediately without custom favicons:
|
|
||||||
|
|
||||||
1. Find any `.ico` file on your computer
|
|
||||||
2. Rename it to `favicon.ico`
|
|
||||||
3. Copy it to this directory
|
|
||||||
|
|
||||||
## Required Files
|
|
||||||
|
|
||||||
After generation, you should have:
|
|
||||||
```
|
|
||||||
static-website/img/
|
|
||||||
├── logo.png ✅
|
|
||||||
├── og-image.png ✅
|
|
||||||
├── favicon.ico ⚠️
|
|
||||||
├── apple-touch-icon.png ⚠️
|
|
||||||
├── favicon-32x32.png ⚠️
|
|
||||||
└── favicon-16x16.png ⚠️
|
|
||||||
```
|
|
||||||
|
|
||||||
## Update HTML (if needed)
|
|
||||||
|
|
||||||
The HTML files are already configured to use these paths:
|
|
||||||
- `favicon.ico`
|
|
||||||
- `apple-touch-icon.png`
|
|
||||||
- `favicon-32x32.png`
|
|
||||||
- `favicon-16x16.png`
|
|
||||||
|
|
||||||
No changes needed in HTML once files are added.
|
|
||||||
|
|
||||||
## Deploy Without Favicons (Optional)
|
|
||||||
|
|
||||||
If you want to deploy immediately:
|
|
||||||
1. Remove favicon links from HTML `<head>` sections
|
|
||||||
2. Deploy the site
|
|
||||||
3. Add favicons later and redeploy
|
|
||||||
|
|
||||||
The site will work perfectly without favicons (just won't show custom icons in browser tabs).
|
|
||||||
@ -1 +0,0 @@
|
|||||||
This is a placeholder for the team avatar image. Please replace this file with your actual team image.
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 MiB |
@ -553,7 +553,6 @@ With over 45 years of entrepreneurial and leadership experience, J P Goenka has
|
|||||||
<a href="#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
<a href="#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
||||||
<a href="#services" class="footer-nav-link">AI Automation</a>
|
<a href="#services" class="footer-nav-link">AI Automation</a>
|
||||||
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
||||||
<a href="freight-flow.html" class="footer-nav-link">FreightFlow</a>
|
|
||||||
<a href="#services" class="footer-nav-link">Rapid Response</a>
|
<a href="#services" class="footer-nav-link">Rapid Response</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
235
wf.html
235
wf.html
@ -1,235 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>WF - Quantum Tasks AI</title>
|
|
||||||
|
|
||||||
<!-- SEO Meta Tags -->
|
|
||||||
<meta name="description" content="WF - Quantum Tasks AI form submission page">
|
|
||||||
<meta name="keywords" content="AI, artificial intelligence, automation, task management, AI agents">
|
|
||||||
<meta name="author" content="Quantum Tasks AI">
|
|
||||||
|
|
||||||
<!-- Open Graph Meta Tags for Rich Link Previews -->
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
<meta property="og:site_name" content="Quantum Tasks AI">
|
|
||||||
<meta property="og:title" content="WF - Quantum Tasks AI">
|
|
||||||
<meta property="og:description" content="WF form submission page for Quantum Tasks AI">
|
|
||||||
<meta property="og:url" content="https://quantumtaskai.com/wf">
|
|
||||||
<meta property="og:image" content="https://quantumtaskai.com/img/og-image.png">
|
|
||||||
<meta property="og:image:width" content="1200">
|
|
||||||
<meta property="og:image:height" content="630">
|
|
||||||
<meta property="og:image:alt" content="Quantum Tasks AI - AI Agent Marketplace">
|
|
||||||
|
|
||||||
<!-- Twitter Card Meta Tags -->
|
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
|
||||||
<meta name="twitter:site" content="@quantumtaskai">
|
|
||||||
<meta name="twitter:title" content="WF - Quantum Tasks AI">
|
|
||||||
<meta name="twitter:description" content="WF form submission page for Quantum Tasks AI">
|
|
||||||
<meta name="twitter:image" content="https://quantumtaskai.com/img/og-image.png">
|
|
||||||
|
|
||||||
<!-- Favicon -->
|
|
||||||
<link rel="icon" type="image/x-icon" href="img/favicon.ico">
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="img/apple-touch-icon.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png">
|
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png">
|
|
||||||
|
|
||||||
<!-- Font Loading -->
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
||||||
<link rel="preload" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
|
|
||||||
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"></noscript>
|
|
||||||
|
|
||||||
<!-- Styles -->
|
|
||||||
<link rel="stylesheet" href="css/style.css">
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.form-container {
|
|
||||||
min-height: 100vh;
|
|
||||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.form-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
max-width: 800px;
|
|
||||||
background: white;
|
|
||||||
border-radius: 12px;
|
|
||||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.form-content {
|
|
||||||
padding: 1rem;
|
|
||||||
min-height: 600px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jotform-iframe {
|
|
||||||
width: 100%;
|
|
||||||
height: 700px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refresh-controls {
|
|
||||||
text-align: center;
|
|
||||||
padding: 1rem;
|
|
||||||
background: #f8f9fa;
|
|
||||||
border-top: 1px solid #e9ecef;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refresh-btn {
|
|
||||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
||||||
color: white;
|
|
||||||
border: none;
|
|
||||||
padding: 12px 24px;
|
|
||||||
border-radius: 6px;
|
|
||||||
font-weight: 600;
|
|
||||||
cursor: pointer;
|
|
||||||
margin-right: 1rem;
|
|
||||||
transition: transform 0.2s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.refresh-btn:hover {
|
|
||||||
transform: translateY(-2px);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.form-container {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.jotform-iframe {
|
|
||||||
height: 800px;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- Header -->
|
|
||||||
<header class="hdr">
|
|
||||||
<div class="hdr-inner">
|
|
||||||
<a href="index.html" class="hdr-logo">
|
|
||||||
<img src="img/logo.png" alt="Quantum Tasks AI">
|
|
||||||
</a>
|
|
||||||
<nav class="hdr-nav" id="hdr-nav" aria-label="Main navigation">
|
|
||||||
<a href="index.html">Home</a>
|
|
||||||
<a href="digital-branding.html">AI Digital Branding</a>
|
|
||||||
<a href="https://blog.quantumtaskai.com/">Blog</a>
|
|
||||||
<a href="https://ai-chat.quantumtaskai.com/">AI Chat</a>
|
|
||||||
<a href="https://ai.quantumtaskai.com/agents/">AI Marketplace</a>
|
|
||||||
</nav>
|
|
||||||
<button class="hdr-burger" id="hdr-burger" aria-label="Toggle navigation" aria-expanded="false" aria-controls="hdr-nav">
|
|
||||||
<svg width="22" height="22" viewBox="0 0 22 22" fill="none" aria-hidden="true">
|
|
||||||
<path d="M3 5h16M3 11h16M3 17h16" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<!-- Main Content -->
|
|
||||||
<main class="form-container">
|
|
||||||
<div class="form-wrapper">
|
|
||||||
<div class="form-content">
|
|
||||||
<iframe
|
|
||||||
id="JotFormIFrame-252561494170457"
|
|
||||||
title="WF Form"
|
|
||||||
onload="window.parent.scrollTo(0,0)"
|
|
||||||
allowtransparency="true"
|
|
||||||
allow="geolocation; microphone; camera; midi; encrypted-media;"
|
|
||||||
src="https://form.jotform.com/252561494170457"
|
|
||||||
frameborder="0"
|
|
||||||
class="jotform-iframe"
|
|
||||||
scrolling="no">
|
|
||||||
</iframe>
|
|
||||||
|
|
||||||
<script src='https://cdn.jotfor.ms/s/umd/latest/for-form-embed-handler.js'></script>
|
|
||||||
<script>window.jotformEmbedHandler("iframe[id='JotFormIFrame-252561494170457']", "https://form.jotform.com/");</script>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="refresh-controls">
|
|
||||||
<button class="refresh-btn" onclick="refreshForm()">🔄 New Form</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</main>
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="footer-container">
|
|
||||||
<!-- Main Footer Content -->
|
|
||||||
<div class="footer-main">
|
|
||||||
<!-- Company Info -->
|
|
||||||
<div class="footer-company">
|
|
||||||
<div class="footer-logo">
|
|
||||||
<img src="img/logo.png" alt="Quantum Tasks AI" class="footer-logo-img">
|
|
||||||
</div>
|
|
||||||
<p class="footer-description">
|
|
||||||
Leading cybersecurity consultancy providing comprehensive security solutions and AI-powered automation.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="footer-contact">
|
|
||||||
<a href="mailto:abhay@quantumtaskai.com" class="footer-contact-item">
|
|
||||||
📧 abhay@quantumtaskai.com
|
|
||||||
</a>
|
|
||||||
<span class="footer-contact-item">
|
|
||||||
📍 Dubai, UAE
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Navigation Sections -->
|
|
||||||
<div class="footer-nav">
|
|
||||||
<!-- Services -->
|
|
||||||
<div class="footer-nav-section">
|
|
||||||
<h4 class="footer-nav-title">Services</h4>
|
|
||||||
<div class="footer-nav-links">
|
|
||||||
<a href="#services" class="footer-nav-link">Cybersecurity Consulting</a>
|
|
||||||
<a href="#services" class="footer-nav-link">AI Automation</a>
|
|
||||||
<a href="digital-branding.html" class="footer-nav-link">Digital Branding</a>
|
|
||||||
<a href="freight-flow.html" class="footer-nav-link">FreightFlow</a>
|
|
||||||
<a href="#services" class="footer-nav-link">Rapid Response</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Company -->
|
|
||||||
<div class="footer-nav-section">
|
|
||||||
<h4 class="footer-nav-title">Company</h4>
|
|
||||||
<div class="footer-nav-links">
|
|
||||||
<a href="#about" class="footer-nav-link">About Us</a>
|
|
||||||
<a href="#founder" class="footer-nav-link">Leadership</a>
|
|
||||||
<a href="#contact" class="footer-nav-link">Contact Us</a>
|
|
||||||
<a href="https://app.quantumtaskai.com" class="footer-nav-link">AI Marketplace</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Bottom Section -->
|
|
||||||
<div class="footer-bottom">
|
|
||||||
<p class="footer-copyright">
|
|
||||||
© 2025 Quantum Tasks AI. All rights reserved.
|
|
||||||
</p>
|
|
||||||
<div class="footer-legal">
|
|
||||||
<a href="#privacy" class="footer-legal-link">Privacy Policy</a>
|
|
||||||
<a href="#terms" class="footer-legal-link">Terms of Service</a>
|
|
||||||
<a href="#security" class="footer-legal-link">Security</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- Scripts -->
|
|
||||||
<script src="js/script.js"></script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// Function to refresh the form
|
|
||||||
function refreshForm() {
|
|
||||||
const iframe = document.getElementById('JotFormIFrame-252561494170457');
|
|
||||||
iframe.src = iframe.src;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Loading…
Reference in New Issue
Block a user