File size: 9,349 Bytes
0a6a843
 
 
b2f38d7
0a6a843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bd60135
0a6a843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b2f38d7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0a6a843
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
import { useNavigate } from 'react-router-dom'
import { Button } from '@/components/ui/button'
import { Card, CardContent } from '@/components/ui/card'
import { Menu } from 'lucide-react'

export function UseCases() {
  const navigate = useNavigate()

  const useCases = [
    {
      id: 1,
      category: 'Use case 1: Outdoor Rescue',
      title: 'Offline AI that guides survival in extreme environments',
      description: 'When hikers, travelers, or drivers lose connection to mountains, forests, or rural roads, cloud AI systems can\'t offer real-time survival guidance, first aid tips, and emergency signaling β€” even without internet. Includes moments, it becomes your reliable voice of calm and safety.',
      image: '/api/placeholder/336/240',
      bgColor: 'from-blue-100 to-purple-100'
    },
    {
      id: 2,
      category: 'Use case 2: Offline Healthcare',
      title: 'A simple device for seniors to access trusted medical guidance',
      description: 'Many elderly users struggle with smartphones and digital devices. Our simple, voice-only need to press a button or speak a request to get clear, step-by-step medical advice. No internet, no accounts, no complicated setup β€” just instant, private support for everyday health concerns that helps.',
      image: '/api/placeholder/336/240',
      bgColor: 'from-green-100 to-blue-100'
    },
    {
      id: 3,
      category: 'Use case 3: AI Companion and Assistance',
      title: 'A private, always-available conversational partner',
      description: 'Life can be stressful and lonely at times. Our Offline AI device can be embedded inside a plush toy, transforming it into a private, always-available companion. It listens, talks, tells stories without uploading data to the cloud. AI partner that brings warmth, reassurance, and practical help whenever you need it.',
      image: '/api/placeholder/336/240',
      bgColor: 'from-purple-100 to-pink-100'
    }
  ]

  return (
    <div className="min-h-screen bg-gray-50">
      {/* Navigation */}
      <nav className="bg-white border-b border-gray-200">
        <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
          <div className="flex justify-between items-center h-20">
            {/* Logo */}
            <div className="flex items-center">
              <img 
                src="/assets/logo.png" 
                alt="EdgeLLM Logo" 
                className="h-16 w-16"
                onError={(e) => {
                  console.error('Logo failed to load')
                  e.currentTarget.style.display = 'none'
                }}
              />
            </div>

            {/* Navigation Links */}
            <div className="hidden md:flex items-center space-x-8">
              <button onClick={() => navigate('/')} className="text-gray-700 hover:text-purple-600 font-medium">
                Home
              </button>
              <button onClick={() => navigate('/technology')} className="text-gray-700 hover:text-purple-600 font-medium">
                Technology
              </button>
              <span className="text-white bg-purple-600 px-4 py-2 rounded-md font-medium">
                Use Cases
              </span>
              <Button 
                variant="outline" 
                onClick={() => navigate('/playground')}
                className="border-purple-600 text-purple-600 hover:bg-purple-50"
              >
                My device
              </Button>
            </div>

            {/* Mobile menu button */}
            <div className="md:hidden">
              <Button variant="ghost" size="sm">
                <Menu className="h-5 w-5" />
              </Button>
            </div>
          </div>
        </div>
      </nav>

      {/* Header Section */}
      <div className="py-24 px-4 sm:px-6 lg:px-8">
        <div className="max-w-4xl mx-auto text-center">
          {/* Title */}
          <h1 className="text-4xl md:text-5xl font-bold text-black mb-6">
            Use Case Examples
          </h1>
          <p className="text-xl text-purple-700 font-semibold max-w-2xl mx-auto mb-12">
            Bringing intelligent computing to the edge of connectivity
          </p>
        </div>
      </div>

      {/* Use Cases Content */}
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mb-16">
        <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
          {useCases.map((useCase, index) => (
            <Card 
              key={useCase.id} 
              className="bg-white shadow-lg border-0 rounded-3xl overflow-hidden h-full flex flex-col"
            >
              <CardContent className="p-6 flex flex-col h-full">
                {/* Image */}
                <div className="w-full h-60 rounded-xl mb-6 overflow-hidden">
                  <img 
                    src={`/assets/${index === 0 ? 'outdoor_rescue.png' : index === 1 ? 'health_care.png' : 'companion.png'}`}
                    alt={useCase.title}
                    className="w-full h-full object-cover"
                    onError={(e) => {
                      console.error(`Failed to load image for use case ${index + 1}`)
                      // Fallback to gradient background with icon
                      e.currentTarget.style.display = 'none'
                      const fallbackDiv = document.createElement('div')
                      fallbackDiv.className = 'w-full h-60 bg-gradient-to-br from-gray-200 to-gray-300 rounded-xl flex items-center justify-center'
                      if (index === 0) fallbackDiv.innerHTML = '<svg class="h-16 w-16 text-purple-500" fill="currentColor" viewBox="0 0 24 24"><path d="M14 6l-3.75 5L8 8l-4 6h16l-6-8z"/></svg>'
                      else if (index === 1) fallbackDiv.innerHTML = '<svg class="h-16 w-16 text-green-500" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg>'
                      else fallbackDiv.innerHTML = '<svg class="h-16 w-16 text-pink-500" fill="currentColor" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>'
                      if (e.currentTarget.parentNode) {
                        e.currentTarget.parentNode.appendChild(fallbackDiv)
                      }
                    }}
                  />
                </div>

                <div className="flex flex-col flex-grow space-y-4">
                  {/* Category */}
                  <div className="text-sm font-semibold text-purple-600">
                    {useCase.category}
                  </div>

                  {/* Title */}
                  <h3 className="text-xl font-semibold text-black leading-tight">
                    {useCase.title}
                  </h3>

                  {/* Description */}
                  <p className="text-gray-600 text-sm leading-relaxed flex-grow">
                    {useCase.description}
                  </p>

                  {/* Button */}
                  <div className="pt-4">
                    <Button 
                      className="bg-purple-600 hover:bg-purple-700 text-white text-sm px-4 py-2 w-auto"
                      onClick={() => {
                        // Handle use case selection
                        console.log('Selected use case:', useCase.id)
                      }}
                    >
                      Select
                    </Button>
                  </div>
                </div>
              </CardContent>
            </Card>
          ))}
        </div>
      </div>

      {/* CTA Section */}
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mb-16">
        <div className="relative">
          {/* Background with gradient and blur */}
          <div className="absolute inset-0 bg-gradient-to-r from-purple-400/30 via-blue-500/30 to-pink-500/30 backdrop-blur-sm rounded-3xl"></div>
          
          {/* Content */}
          <div className="relative bg-purple-400/20 backdrop-blur-lg rounded-3xl p-8 text-center">
            {/* Audio Visualizer Effect */}
            <div className="flex justify-center mb-6 space-x-1">
              {[...Array(20)].map((_, i) => (
                <div
                  key={i}
                  className="bg-purple-600 rounded-full animate-pulse"
                  style={{
                    width: '3px',
                    height: `${Math.random() * 40 + 10}px`,
                    animationDelay: `${i * 0.1}s`,
                    animationDuration: '1s'
                  }}
                />
              ))}
            </div>
            
            <h2 className="text-2xl font-medium text-white mb-4">
              Customize your own device
            </h2>
            
            <p className="text-gray-900 mb-6">
              Need help? Contact us to get customized device and services
            </p>
            
            <Button 
              className="bg-purple-600 hover:bg-purple-700 text-white px-8 py-3"
              onClick={() => navigate('/playground')}
            >
              Get Started
            </Button>
          </div>
        </div>
      </div>
    </div>
  )
}