diff --git a/nextjs-flask/app/page.tsx b/nextjs-flask/app/page.tsx index 9dd0797..87cb19d 100644 --- a/nextjs-flask/app/page.tsx +++ b/nextjs-flask/app/page.tsx @@ -1,116 +1,177 @@ -import Image from 'next/image' -import Link from 'next/link' +"use client"; + +import { useState } from 'react'; +import Image from 'next/image'; export default function Home() { + // State for handling UI elements (would be connected to actual data in production) + const [batteryLevel, setBatteryLevel] = useState(85); + const [velocity, setVelocity] = useState({ x: 0, y: 0, z: 0 }); + const [coordinates, setCoordinates] = useState({ lat: 37.7749, lng: -122.4194 }); + + // Function to handle bomb release (just UI feedback for now) + const handleBombRelease = () => { + // This would connect to actual bomb release system in production + alert("Bomb release command initiated!"); + }; + return ( -
-
-

- Get started by editing  - - api/index.py - -

-
- - By{' '} - Vercel Logo - +
+
+
+
+
+ CEVHERI +
+
+
+

Drone Control Station

-
+ -
- Next.js Logo -
+
+ {/* Left Column: Video Feed and Controls */} +
+ {/* Video Feed */} +
+
+

Live Camera Feed

+ {/* In a real implementation, this would be replaced with actual video streaming component */} +
+ {/* Overlay for data */} +
+
+

RECORDING

+
+
+ {/* Controls overlay */} +
+
+
+ + +
+ +
+
+
-
- -

- Docs{' '} - - -> - -

-

- Find in-depth information about Next.js features and API. -

-
+ {/* Telemetry Data */} +
+

Velocity Data

+
+
+

X-AXIS

+

{velocity.x} m/s

+
+
+

Y-AXIS

+

{velocity.y} m/s

+
+
+

Z-AXIS

+

{velocity.z} m/s

+
+
+
+
- -

- Learn{' '} - - -> - -

-

- Learn about Next.js in an interactive course with quizzes! -

-
+ {/* Right Column: Map and Battery Status */} +
+ {/* GPS Map */} +
+
+

GPS Map View

+ {/* In a real implementation, this would be replaced with an actual map component */} +
+ {/* Coordinates overlay */} +
+
+
+

COORDINATES

+

{coordinates.lat.toFixed(6)}, {coordinates.lng.toFixed(6)}

+
+ +
+
+
- -

- Templates{' '} - - -> - -

-

- Explore the Next.js 13 playground. -

-
+ {/* Battery Status */} +
+

Smart Battery

+
+
+
+ + {batteryLevel}% + +
+
+ + EST. TIME: 22 MIN + +
+
+
+
50 ? 'bg-green-500' : batteryLevel > 20 ? 'bg-yellow-500' : 'bg-red-500' + }`}>
+
+
+
+

VOLTAGE

+

11.8 V

+
+
+

TEMPERATURE

+

32°C

+
+
+
+
- -

- Deploy{' '} - - -> - -

-

- Instantly deploy your Next.js site to a shareable URL with Vercel. -

-
+ {/* Status Indicators */} +
+

System Status

+
+
+
+ GPS +
+
+
+ Comms +
+
+
+ Signal +
+
+
+
+
- ) + ); } diff --git a/nextjs-flask/package-lock.json b/nextjs-flask/package-lock.json index 6344b6e..b79de8e 100644 --- a/nextjs-flask/package-lock.json +++ b/nextjs-flask/package-lock.json @@ -17,8 +17,8 @@ "eslint-config-next": "13.4.2", "next": "13.4.3", "postcss": "8.4.23", - "react": "18.2.0", - "react-dom": "18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "tailwindcss": "3.3.2", "typescript": "5.0.4" } @@ -4062,28 +4062,24 @@ "license": "MIT" }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.25.0" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^19.0.0" } }, "node_modules/react-is": { @@ -4319,13 +4315,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" }, "node_modules/semver": { "version": "7.7.1", diff --git a/nextjs-flask/package.json b/nextjs-flask/package.json index d311227..be2d60c 100644 --- a/nextjs-flask/package.json +++ b/nextjs-flask/package.json @@ -20,8 +20,8 @@ "eslint-config-next": "13.4.2", "next": "13.4.3", "postcss": "8.4.23", - "react": "18.2.0", - "react-dom": "18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "tailwindcss": "3.3.2", "typescript": "5.0.4" } diff --git a/nextjs-flask/public/cevheri-logo.png b/nextjs-flask/public/cevheri-logo.png new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/nextjs-flask/public/cevheri-logo.png @@ -0,0 +1 @@ + diff --git a/nextjs-flask/public/cevheri-logo.svg b/nextjs-flask/public/cevheri-logo.svg new file mode 100644 index 0000000..f480f34 --- /dev/null +++ b/nextjs-flask/public/cevheri-logo.svg @@ -0,0 +1,11 @@ + + + + + + + + cevheri + + +