Skip to content

Commit 7b9d983

Browse files
committed
Add dist/ for the EC2 deployment process.
1 parent 4ce42a0 commit 7b9d983

95 files changed

Lines changed: 15143 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ jobs:
7070
--exclude "CosmoView/node_modules/" \
7171
--exclude "CosmoView/.local/" \
7272
--exclude "logs/" \
73-
--include "CosmoView/dist/***" \
7473
./ "${{ env.EC2_USER }}@${{ env.EC2_HOST }}:${TEMP_DIR}/"
7574
7675
# Move from temp to final location with sudo

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,8 @@ src/__pycache__/
22
.venv/
33
.ruff_cache
44
output*
5+
6+
# CosmoView development files
7+
CosmoView/.local/
8+
CosmoView/.replit
9+
CosmoView/node_modules/

CosmoView/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
.DS_Store
3+
server/public
4+
vite.config.ts.*
5+
*.tar.gz
1.47 MB
Loading
787 KB
Loading
922 KB
Loading

CosmoView/client/index.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!DOCTYPE html>
2+
<html lang="en" class="dark">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
6+
<title>Explore the Universe - Ultra High Resolution Space Images</title>
7+
<meta name="description" content="View NASA images in ultra detail and venture into the depths of space. Explore the universe with gigapixel zoom." />
8+
<link rel="preconnect" href="https://fonts.googleapis.com">
9+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10+
<link href="https://fonts.googleapis.com/css2?family=Architects+Daughter&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Fira+Code:wght@300..700&family=Geist+Mono:wght@100..900&family=Geist:wght@100..900&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans:ital,wght@0,100..700;1,100..700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400..700;1,400..700&family=Merriweather:ital,opsz,wght@0,18..144,300..900;1,18..144,300..900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Outfit:wght@100..900&family=Oxanium:wght@200..800&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Roboto+Mono:ital,wght@0,100..700;1,100..700&family=Roboto:ital,wght@0,100..900;1,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&family=Space+Grotesk:wght@300..700&family=Space+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
11+
</head>
12+
<body>
13+
<div id="root"></div>
14+
<script type="module" src="/src/main.tsx"></script>
15+
</body>
16+
</html>

CosmoView/client/src/App.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { Switch, Route } from "wouter";
2+
import { queryClient } from "./lib/queryClient";
3+
import { QueryClientProvider } from "@tanstack/react-query";
4+
import { Toaster } from "@/components/ui/toaster";
5+
import { TooltipProvider } from "@/components/ui/tooltip";
6+
import Home from "@/pages/Home";
7+
import NotFound from "@/pages/not-found";
8+
9+
function Router() {
10+
return (
11+
<Switch>
12+
<Route path="/" component={Home} />
13+
<Route component={NotFound} />
14+
</Switch>
15+
);
16+
}
17+
18+
function App() {
19+
return (
20+
<QueryClientProvider client={queryClient}>
21+
<TooltipProvider>
22+
<Toaster />
23+
<Router />
24+
</TooltipProvider>
25+
</QueryClientProvider>
26+
);
27+
}
28+
29+
export default App;
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import { LucideIcon } from 'lucide-react';
2+
3+
interface FeatureCardProps {
4+
icon: LucideIcon;
5+
title: string;
6+
description: string;
7+
}
8+
9+
export default function FeatureCard({ icon: Icon, title, description }: FeatureCardProps) {
10+
return (
11+
<div
12+
className="group relative p-10 rounded-xl backdrop-blur-md
13+
bg-gradient-to-br from-white/5 to-white/0 border border-white/10
14+
hover:from-white/10 hover:to-white/5 hover:border-space-blue/40
15+
transition-all duration-500 shadow-xl hover:shadow-2xl hover:shadow-space-blue/20
16+
hover:-translate-y-2"
17+
data-testid={`card-feature-${title.toLowerCase().replace(/\s+/g, '-')}`}
18+
>
19+
<div className="absolute inset-0 bg-gradient-to-br from-space-blue/5 to-space-purple/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500 rounded-xl" />
20+
21+
<div className="relative flex flex-col items-center text-center gap-5">
22+
<div className="p-4 rounded-2xl bg-gradient-to-br from-space-blue/20 to-space-purple/20 border border-space-blue/40
23+
group-hover:from-space-blue/30 group-hover:to-space-purple/30
24+
group-hover:border-space-blue/60 transition-all duration-500
25+
group-hover:scale-110 group-hover:rotate-3">
26+
<Icon
27+
className="w-10 h-10 text-space-blue group-hover:text-white transition-colors duration-500"
28+
strokeWidth={1.5}
29+
data-testid={`icon-${title.toLowerCase().replace(/\s+/g, '-')}`}
30+
/>
31+
</div>
32+
33+
<h3
34+
className="text-2xl font-bold text-space-textPrimary font-[Poppins] group-hover:text-white transition-colors"
35+
data-testid={`text-feature-title-${title.toLowerCase().replace(/\s+/g, '-')}`}
36+
>
37+
{title}
38+
</h3>
39+
40+
<p
41+
className="text-space-textSecondary leading-relaxed font-[Inter] text-base group-hover:text-space-textPrimary/90 transition-colors"
42+
data-testid={`text-feature-description-${title.toLowerCase().replace(/\s+/g, '-')}`}
43+
>
44+
{description}
45+
</p>
46+
</div>
47+
</div>
48+
);
49+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import FeatureCard from './FeatureCard';
2+
import { ZoomIn, Image, Sparkles } from 'lucide-react';
3+
4+
export default function Features() {
5+
return (
6+
<section
7+
id="features"
8+
className="py-24 bg-space-bgSecondary relative"
9+
>
10+
<div className="max-w-7xl mx-auto px-6">
11+
<div className="text-center mb-16">
12+
<h2
13+
className="text-4xl md:text-5xl font-bold text-space-textPrimary mb-4 font-[Poppins]"
14+
data-testid="text-features-title"
15+
>
16+
Features
17+
</h2>
18+
<p
19+
className="text-lg text-space-textSecondary font-[Inter]"
20+
data-testid="text-features-subtitle"
21+
>
22+
Explore space like never before
23+
</p>
24+
</div>
25+
26+
<div className="grid grid-cols-1 md:grid-cols-3 gap-10">
27+
<FeatureCard
28+
icon={ZoomIn}
29+
title="Gigapixel Zoom"
30+
description="Experience infinite zoom capabilities with our advanced gigapixel technology. Navigate seamlessly through ultra-high resolution astronomical images and discover hidden details invisible to the naked eye."
31+
/>
32+
<FeatureCard
33+
icon={Image}
34+
title="NASA Image Library"
35+
description="Access an extensive curated collection of spectacular space imagery from NASA's archives. From distant galaxies to planetary surfaces, explore the universe's most breathtaking moments captured in stunning detail."
36+
/>
37+
<FeatureCard
38+
icon={Sparkles}
39+
title="Smart Annotations"
40+
description="Enhance your exploration with intelligent annotations powered by astronomical databases. Identify celestial objects, learn about cosmic phenomena, and dive deep into the science behind each stunning image."
41+
/>
42+
</div>
43+
</div>
44+
</section>
45+
);
46+
}

0 commit comments

Comments
 (0)