diff --git a/krishna/.eslintrc.json b/krishna/.eslintrc.json new file mode 100644 index 00000000..bffb357a --- /dev/null +++ b/krishna/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/krishna/.gitignore b/krishna/.gitignore new file mode 100644 index 00000000..00bba9bb --- /dev/null +++ b/krishna/.gitignore @@ -0,0 +1,37 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local +.env + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/krishna/README.md b/krishna/README.md new file mode 100644 index 00000000..cb28eba4 --- /dev/null +++ b/krishna/README.md @@ -0,0 +1,94 @@ +# AntarikXplorer:
Venture Beyond The Stars + +
+ AntarikXplorer +
+ +## [📝 Click to view Medium Blog](https://medium.com/@daspriyosmita2003/antarikxplorer-6dfa7ad0ff4b) + +(pronounced: “Antariksh Explorer”, where “Antariksh” is the sanskrit term for cosmos)
+ +## 🚀 Idea Brief +Imagine being able to step foot on distant exoplanets, pilot spacecraft through star systems, and explore the wonders of our universe — all from the comfort of your own home. Welcome to AntarikXplorer, where the final frontier is no longer out of reach!đŸȘ
+AntarikXplorer is a cutting-edge VR and Gyro simulation that turns this dream into reality, blending the thrill of space exploration with the power of immersive technology. +
+With scientifically accurate environments powered by NASA’s real-time exoplanetary data and built in Unreal Engine 5 and Blender, we’re pushing the boundaries of what’s possible in education. Whether you’re using a VR headset or just your phone in gyro mode, AntarikXplorer offers an unforgettable journey into the cosmos — complete with quizzes, rewards, and a multi-user mode coming soon. Buckle up, because space is about to get a lot closer! + +## đŸ”„ AntarikXplore’s Celestial Singularity +- Extrasolar Exploration: Immerse yourself in the exploration of distant exoplanets with scientifically accurate environments sourced from NASA data. +- Spacecraft Navigation: Pilot spacecraft through deep space, experiencing realistic navigation and piloting challenges. +- Exoplanetary Environment Simulation: Explore and interact with diverse exoplanetary landscapes, all based on real NASA data. +- Gyro Mode for Non-VR Users: A gyro-based mode for those without VR equipment, ensuring accessibility without compromising the immersive experience. +- Extrasolar Insights: Access real-time data and detailed information on exoplanets, directly pulled from NASA’s data API. +- Quizzes & Rewards: Engage in educational quizzes where scores can be converted into redeemable rewards, creating an interactive learning experience. + +## 🛠 System Architecture +
+ AntarikXplorer System Architecture +
+ +## 🌟 AntarikXplore’s Uniqueness +- Immersive Experience with Universal Access: Combining immersive VR with gyro controls for ensuring broader accessibility without losing depth, a feature rare in similar tools. +- Real-Time NASA Data: Explore exoplanets using real-time, up-to-date NASA data for an authentic exoplanet exploration experience. +- Collaborative & Competetive Challenges: While other such platforms focus on solo experiences, AntarikXplorer comes with multi-user support, promoting social learning and collaboration. A unique exoplanet colonization feature allows users to face real-world challenges in collaborative or competitive gameplay. +- Gamified Learning with Quizzes & Rewards: Interactive quizzes and rewards make learning fun and competitive. Experience personalized learning paths with dynamic quizzes and redeemable in-game and real-life rewards that make science fun and motivating. +- Immersive Discovery:Transforms complex exoplanet science into a thrilling adventure using immersive experiences, making learning feel like an exploration of the unknown. +- Personalized Learning: Adaptive quizzes adjust to your knowledge and interests for a tailored learning experience. + +## 🌠 Process Flow Diagram +- Users can experience and explore simulations of Exoplanetary Environments and Spacecraft Piloting and Navigation, built using Unreal Engine 5 and Blender, with full support for STEAM VR API integration. +- Gain access to Extrasolar Insights, a user-friendly feature that retrieves real-time data from NASA’s API, offering detailed information on exoplanets. +- Participate in Scored Quizzes, with quiz results securely stored in a database for tracking performance. +- Quiz scores can be converted into Rewards, which users can Redeem. All reward data will be stored in a database for easy management and retrieval. +
+ AntarikXplorer Process Flow Diagram +
+ + +## ⚙ Tech Stack +- Frontend:
nextjs tailwind html5 css3 javascript react +- Backend:
flask nodejs axios + socket.io express +- Database:
mongodb mongoosecloudinary +- Cloud Compuuting and Storage:
s3 s3 +- AI and Procedural Generation:
tensorflow google colab scikit-learn +- Authentication:
clerk +- Deployment:
vercel vercel vercel + +## 💾 Business Model +- Collaborations and Partnerships: Partner with science and tech exhibitions, planetariums, and space-related events to feature AntarikXplorer as an interactive exhibit. Offer immersive booths with upsells to premium content and exclusive event challenges. +- Educational Licensing: License AntarikXplorer to schools, universities, and STEM programs, providing custom space exploration modules and quizzes, generating revenue through educational partnerships. +- Premium Features and Gamification & Rewards: Unlock exclusive content with premium access, featuring advanced spacecraft, personalized AI guides, and rare data. Buy custom items, earn quiz points to redeem for in-game upgrades or real-world rewards, and compete in community challenges to boost engagement. + +## 🛾 Mock Diagrams +
+
+ AIkya ss +
(1) Landing Page
+
+

+
+
+ +
(2) Simulations Page
+
+

+
+
+ +
(3) VR Simulation Page
+
+

+
+
+ AIkya smart match +
(4) Quizzes Page
+
+
+ +## đŸ’« In a nutshell... +As AntarikXplorer takes you from one exoplanet to another, this isn’t just a journey through space — it’s a glimpse into the future of exploration and education. By blending cutting-edge VR with real-time data from the farthest reaches of our galaxy, we’ve transformed learning into an adventure where curiosity knows no bounds. Whether you’re a seasoned space enthusiast or a curious mind, AntarikXplorer gives you the chance to pilot your way through the universe and dive into worlds that were once unimaginable. +
+But we’re only scratching the surface. With multi-user interactions on the horizon, collaborative learning, and deeper insights into exoplanets, the future of AntarikXplorer is as vast and mysterious as the cosmos itself. This is more than just a simulation — it’s your ticket to the stars. +

+

đŸ‘©â€đŸš€Buckle up, because the universe is waiting, and we’re just getting started!

\ No newline at end of file diff --git a/krishna/app/components/blog/BlogCard.jsx b/krishna/app/components/blog/BlogCard.jsx new file mode 100644 index 00000000..8ec6a614 --- /dev/null +++ b/krishna/app/components/blog/BlogCard.jsx @@ -0,0 +1,50 @@ +import Link from "next/link"; +import Image from "next/image"; +import "@/app/components/global/global_components.css"; + +const BlogCard = ({ image, title, MetaDescription, slug }) => { + return ( +
+ + {title} + +
+ +
+ {title} +
+ +

{MetaDescription}

+ + Read more + + +
+
+ ); +}; + +export default BlogCard; diff --git a/krishna/app/components/blog/blogs.css b/krishna/app/components/blog/blogs.css new file mode 100644 index 00000000..8789077f --- /dev/null +++ b/krishna/app/components/blog/blogs.css @@ -0,0 +1,12 @@ +.scrollbar-thin::-webkit-scrollbar { + width: 8px; + height: 8px; + } + .scrollbar-thin::-webkit-scrollbar-thumb { + background-color: #8b5cf6; /* Thumb color (violet-500) */ + border-radius: 9999px; /* Fully rounded thumb */ + } + .scrollbar-thin::-webkit-scrollbar-track { + background-color: #d1d5db; /* Track color (gray-300) */ + border-radius: 9999px; /* Fully rounded track */ + } \ No newline at end of file diff --git a/krishna/app/components/global/button_gradient.jsx b/krishna/app/components/global/button_gradient.jsx new file mode 100644 index 00000000..1a038a37 --- /dev/null +++ b/krishna/app/components/global/button_gradient.jsx @@ -0,0 +1,16 @@ +import React from "react"; +import "./global_components.css"; + +const Button = ({ children, onClick, className, ...props }) => { + return ( + + ); +}; + +export default Button; diff --git a/krishna/app/components/global/footer.jsx b/krishna/app/components/global/footer.jsx new file mode 100644 index 00000000..beac171d --- /dev/null +++ b/krishna/app/components/global/footer.jsx @@ -0,0 +1,60 @@ +import Image from "next/image"; +import "./global_components.css"; + +const Footer = () => { + return ( + + ); +}; + +export default Footer; diff --git a/krishna/app/components/global/global_components.css b/krishna/app/components/global/global_components.css new file mode 100644 index 00000000..abd50d8d --- /dev/null +++ b/krishna/app/components/global/global_components.css @@ -0,0 +1,14 @@ +.button_gradient { + background: linear-gradient(63deg, rgba(126, 90, 203, 1) 0%, rgba(63, 45, 101, 1) 100%); + transition: transform 0.3s ease, background 0.5s ease; /* Smooth scaling and background transition */ + } + + .button_gradient:hover { + transform: scale(1.05); + background: linear-gradient(-63deg, rgba(63, 45, 101, 1) 0%, rgba(126, 90, 203, 1) 100%); + } + .footer_gradient { + background: rgb(45,48,101); +background: radial-gradient(circle, rgba(45,48,101,1) 12%, rgba(23,6,60,1) 100%); + } + \ No newline at end of file diff --git a/krishna/app/components/global/header.jsx b/krishna/app/components/global/header.jsx new file mode 100644 index 00000000..ebedb10d --- /dev/null +++ b/krishna/app/components/global/header.jsx @@ -0,0 +1,74 @@ +"use client"; + +import { useState, useEffect } from "react"; +import "../landing/landing.css"; +import Link from "next/link"; + +const Header = ({ logo, name, catchPhrase, options, accountIcon }) => { + const [isVisible, setIsVisible] = useState(true); + + useEffect(() => { + let lastScrollY = 0; + + const handleScroll = () => { + if (window.scrollY > lastScrollY) { + setIsVisible(false); + } else { + setIsVisible(true); + } + lastScrollY = window.scrollY; + }; + + window.addEventListener("scroll", handleScroll); + return () => { + window.removeEventListener("scroll", handleScroll); + }; + }, []); + + return ( +
+
+ {/* Logo and text on the left */} +
+ {/* Logo */} +
{logo}
+ + {/* Name and catchphrase */} +
+ + {name} + + + {catchPhrase} + +
+
+ + {/* Options in the center */} + + + {/* Account Icon on the right */} + + {accountIcon} + +
+
+ ); +}; + +export default Header; diff --git a/krishna/app/components/landing/calltoaction.jsx b/krishna/app/components/landing/calltoaction.jsx new file mode 100644 index 00000000..86168b7f --- /dev/null +++ b/krishna/app/components/landing/calltoaction.jsx @@ -0,0 +1,77 @@ +"use client"; +import Link from "next/link"; +import Button from "../global/button_gradient"; +import "./landing.css"; +import Image from "next/image"; +import { Typewriter } from "react-simple-typewriter"; + +const CallToAction = () => { + return ( +
+ {/* Background image */} + Background + + {/* Overlay content */} +
+ {/* Main Text */} +

+ Venture Beyond the
+ +

+

+ Experience the Cosmos Like Never Before: In an Immersive Simulation +

+ + {/* Sub-text */} +

+ Embark on Antarikxplorer’s VR and Gyro immersive experience and + explore distant exoplanets from the comfort of your space. Soar + through alien worlds, navigate star systems, and interact with + real-time NASA data. Your cosmic adventure awaits—are you ready to + explore? +

+ + {/* Button */} + +
+ + {/* Astronaut Image */} +
+ Astronaut +
+
+ ); +}; + +export default CallToAction; diff --git a/krishna/app/components/landing/landing.css b/krishna/app/components/landing/landing.css new file mode 100644 index 00000000..5adf1ce3 --- /dev/null +++ b/krishna/app/components/landing/landing.css @@ -0,0 +1,42 @@ +@import url("https://fonts.googleapis.com/css2?family=Viga&display=swap"); + +.viga-regular { + font-family: "Viga", sans-serif; + /* font-weight: 100; + font-style: normal; */ + } + + /* Ensure the astronaut container is positioned correctly */ +.astronaut-container { + position: absolute; + bottom: 0px; /* Adjust to place it just above where the footer starts */ + right: 4rem; /* Position it on the right side */ + z-index: 20; /* Ensure it's above the background and other elements */ + animation: emergeFromBottom 2s ease-out forwards; /* Animation */ +} + +/* Keyframe animation for the astronaut to rise from bottom to its final position */ +@keyframes emergeFromBottom { + 0% { + transform: translateY(100%); /* Start from below */ + opacity: 0; /* Initially invisible */ + } + 50% { + opacity: 1; /* Fade in during animation */ + } + 100% { + transform: translateY(0); /* End at its normal position */ + opacity: 1; /* Fully visible */ + } +} + +/* Optional: Adjust how the astronaut looks once it's settled */ +.astronaut { + width: 700px; /* Make the astronaut bigger */ + height: auto; + transition: transform 0.5s ease-in-out; /* Smooth hover effect */ +} + +.astronaut:hover { + transform: rotate(0deg) scale(1.05); /* Slight hover effect */ +} diff --git a/krishna/app/components/quiz/Quiz.jsx b/krishna/app/components/quiz/Quiz.jsx new file mode 100644 index 00000000..af057a1b --- /dev/null +++ b/krishna/app/components/quiz/Quiz.jsx @@ -0,0 +1,151 @@ +"use client"; + +import React, { useState } from "react"; +import axios from "axios"; + +export const dynamic = "force-dynamic"; + +const Quiz = ({ questions }) => { + const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0); + const [answers, setAnswers] = useState(Array(questions.length).fill(null)); + + const handleOptionClick = (option) => { + const newAnswers = [...answers]; + newAnswers[currentQuestionIndex] = option; + setAnswers(newAnswers); + }; + + const handleNextClick = () => { + if (currentQuestionIndex < questions.length - 1) { + setCurrentQuestionIndex(currentQuestionIndex + 1); + } + }; + + const handlePreviousClick = () => { + if (currentQuestionIndex > 0) { + setCurrentQuestionIndex(currentQuestionIndex - 1); + } + }; + + const handleQuizSubmit = async () => { + const questionsWithSelectedOptions = questions.map((question, index) => ({ + ...question, + selectedOption: answers[index], + })); + + try { + const response = await axios.post( + "https://ant.buckets.growsoc.arpan.xyz/questions/submit", + { questions: questionsWithSelectedOptions } + ); + if (response.status === 200) { + // Handle successful submission + console.log("Quiz submitted successfully"); + } else { + // Handle errors + console.error("Failed to submit quiz"); + } + } catch (error) { + console.error("Error submitting quiz:", error); + } + }; + + const currentQuestion = questions[currentQuestionIndex]; + const selectedOption = answers[currentQuestionIndex]; + const progress = ((currentQuestionIndex + 1) / questions.length) * 100; + + return ( +
+
+
+
+
+
+

+ {currentQuestion?.question} +

+
    + {currentQuestion?.option1 && ( +
  • handleOptionClick(currentQuestion.option1)} + > + {currentQuestion.option1} +
  • + )} + {currentQuestion?.option2 && ( +
  • handleOptionClick(currentQuestion.option2)} + > + {currentQuestion.option2} +
  • + )} + {currentQuestion?.option3 && ( +
  • handleOptionClick(currentQuestion.option3)} + > + {currentQuestion.option3} +
  • + )} + {currentQuestion?.option4 && ( +
  • handleOptionClick(currentQuestion.option4)} + > + {currentQuestion.option4} +
  • + )} +
+
+
+ + {currentQuestionIndex < questions.length - 1 ? ( + + ) : ( + + )} +
+
+
+ ); +}; + +export default Quiz; diff --git a/krishna/app/fonts/GeistMonoVF.woff b/krishna/app/fonts/GeistMonoVF.woff new file mode 100644 index 00000000..f2ae185c Binary files /dev/null and b/krishna/app/fonts/GeistMonoVF.woff differ diff --git a/krishna/app/fonts/GeistVF.woff b/krishna/app/fonts/GeistVF.woff new file mode 100644 index 00000000..1b62daac Binary files /dev/null and b/krishna/app/fonts/GeistVF.woff differ diff --git a/krishna/app/globals.css b/krishna/app/globals.css new file mode 100644 index 00000000..6e668099 --- /dev/null +++ b/krishna/app/globals.css @@ -0,0 +1,33 @@ +@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Viga&display=swap"); + +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + color: var(--foreground); + background: var(--background); + font-family: "Roboto", Helvetica, sans-serif; +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} +.any { + background-color: red; +} diff --git a/krishna/app/insights/[slug]/page.jsx b/krishna/app/insights/[slug]/page.jsx new file mode 100644 index 00000000..fa4f48e3 --- /dev/null +++ b/krishna/app/insights/[slug]/page.jsx @@ -0,0 +1,137 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { Client, Databases, Query } from "appwrite"; +import Header from "@/app/components/global/header"; +import { MdOutlineAccountCircle } from "react-icons/md"; +import Image from "next/image"; + +const BlogDetail = ({ params: { slug } }) => { + const [blog, setBlog] = useState(null); + const [loading, setLoading] = useState(true); + + const options = [ + { label: "Home", link: "/" }, + { label: "Simulation", link: "/simulation" }, + { label: "Quizzes", link: "/quizzes" }, + { label: "Insights", link: "/insights" }, + ]; + + useEffect(() => { + const client = new Client() + .setEndpoint("https://cloud.appwrite.io/v1") // Your Appwrite Endpoint + .setProject("66fa5a740004419aed12"); // Your project ID + + const databases = new Databases(client); + + const fetchBlog = async () => { + try { + const response = await databases.listDocuments( + "66fa5b7f002eb395a138", // Database ID + "66fa5b93001687e95345", // Collection ID + [Query.equal("slug", slug)] // Query by slug + ); + if (response.documents.length > 0) { + setBlog(response.documents[0]); + } else { + console.error("Blog not found"); + } + setLoading(false); + } catch (error) { + console.error("Error fetching blog:", error); + setLoading(false); + } + }; + + fetchBlog(); + }, [slug]); + + if (loading) { + return

Loading...

; + } + + if (!blog) { + return

Blog not found

; + } + + return ( + <> + {/* Header Component */} +
+ } + options={options} + name="AntarikXplorer" + catchPhrase="Beyond the stars" + accountIcon={ + + } + /> +
+ {/* Add a semi-transparent overlay to improve text readability */} +
+
+ {/* Blog Title */} +

+ {blog.title} +

+ + {/* Author and Views */} +
+ By {blog.author} + {blog.views} views +
+ + {/* Blog Hero Image */} + {blog.image && ( +
+ {blog.title} +
+ )} + + {/* Blog Body */} +
+

{blog.body}

+

{blog.body1}

+

{blog.body2}

+

{blog.body3}

+
+ + {/* Footer (Author and Additional Info) */} +
+
+ + Written by {blog.author} + +
+
+ {blog.views} views +
+
+
+
+
+ + ); +}; + +export default BlogDetail; diff --git a/krishna/app/insights/page.jsx b/krishna/app/insights/page.jsx new file mode 100644 index 00000000..27145cfe --- /dev/null +++ b/krishna/app/insights/page.jsx @@ -0,0 +1,164 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { Client, Databases } from "appwrite"; +import BlogCard from "@/app/components/blog/BlogCard"; +import { MdOutlineAccountCircle } from "react-icons/md"; +import Header from "@/app/components/global/header"; +import Image from "next/image"; + +const BlogList = () => { + const [blogs, setBlogs] = useState([]); + const [filteredBlogs, setFilteredBlogs] = useState([]); // State for filtered blogs + const [loading, setLoading] = useState(true); + const [searchQuery, setSearchQuery] = useState(""); // State for the search input + + const options = [ + { label: "Home", link: "/" }, + { label: "Simulation", link: "/simulation" }, + { label: "Quizzes", link: "/quizzes" }, + { label: "Insights", link: "/insights" }, + ]; + + useEffect(() => { + const client = new Client() + .setEndpoint(process.env.NEXT_PUBLIC_APPWRITE_API_ENDPOINT) // Appwrite API Endpoint from .env + .setProject(process.env.NEXT_PUBLIC_APPWRITE_PROJECT_ID); // Project ID from .env + + const databases = new Databases(client); + + const fetchBlogs = async () => { + try { + const response = await databases.listDocuments( + process.env.NEXT_PUBLIC_APPWRITE_DATABASE_ID, // Database ID from .env + process.env.NEXT_PUBLIC_APPWRITE_COLLECTION_ID // Collection ID from .env + ); + setBlogs(response.documents); + setFilteredBlogs(response.documents); // Initialize filtered blogs with all blogs + setLoading(false); + } catch (error) { + console.error("Error fetching blogs:", error); + setLoading(false); + } + }; + + fetchBlogs(); + }, []); + + // Function to handle search input changes + const handleSearch = (event) => { + const query = event.target.value.toLowerCase(); + setSearchQuery(query); + + // Filter blogs by title or meta description based on the search query + const filtered = blogs.filter((blog) => { + const titleMatches = + blog.title && blog.title.toLowerCase().includes(query); + const descriptionMatches = + blog.metaDescription && + blog.metaDescription.toLowerCase().includes(query); + return titleMatches || descriptionMatches; + }); + + setFilteredBlogs(filtered); + }; + + return ( +
+ {/* Video Background */} +
+ ); +}; + +export default BlogList; diff --git a/krishna/app/layout.js b/krishna/app/layout.js new file mode 100644 index 00000000..d2edf850 --- /dev/null +++ b/krishna/app/layout.js @@ -0,0 +1,36 @@ +import localFont from "next/font/local"; +import "./globals.css"; + +// Local fonts setup +const geistSans = localFont({ + src: "./fonts/GeistVF.woff", + variable: "--font-geist-sans", + weight: "100 900", +}); +const geistMono = localFont({ + src: "./fonts/GeistMonoVF.woff", + variable: "--font-geist-mono", + weight: "100 900", +}); + +export const metadata = { + title: "AntaraikXplorer", + description: "Generated by create next app", +}; + +export default function RootLayout({ children }) { + return ( + + + + + + + + {children} + + + ); +} diff --git a/krishna/app/login/page.jsx b/krishna/app/login/page.jsx new file mode 100644 index 00000000..9c859e95 --- /dev/null +++ b/krishna/app/login/page.jsx @@ -0,0 +1,86 @@ +"use client"; +import { useState } from "react"; +import { useRouter } from "next/navigation"; +import axios from "axios"; +import Link from "next/link"; + +const Page = () => { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const router = useRouter(); + + const handleSubmit = async (e) => { + e.preventDefault(); + try { + const response = await axios.post( + "https://ant.buckets.growsoc.arpan.xyz/login", + { + email, + pass: password, + } + ); + + if (response.status === 200) { + router.push("/account"); + } else { + // Handle error response + console.error("Login failed"); + } + } catch (error) { + console.error("An error occurred:", error); + } + }; + + return ( +
+
+

Login

+
+ + setEmail(e.target.value)} + /> +
+
+ + setPassword(e.target.value)} + /> +
+ +

+ Don{`'`}t have an account?{" "} + + Sign up + +

+
+
+ ); +}; + +export default Page; diff --git a/krishna/app/page.js b/krishna/app/page.js new file mode 100644 index 00000000..54deb126 --- /dev/null +++ b/krishna/app/page.js @@ -0,0 +1,29 @@ +import Image from "next/image"; +import CallToAction from "./components/landing/calltoaction"; +import Header from "./components/global/header"; +import { MdOutlineAccountCircle } from "react-icons/md"; +import Footer from "./components/global/footer"; + +export default async function Home() { + const options = [ + { label: "Home", link: "/" }, + { label: "Simulation", link: "/simulation" }, + { label: "Quizzes", link: "/quizzes" }, + { label: "Insights", link: "/insights" }, + ]; + + return ( + <> +
} + options={options} + name="AntarikXplorer" + catchPhrase="Beyond the stars" + accountIcon={} + /> + +