Compare commits
2 commits
0d3ad083c6
...
4895d3b889
Author | SHA1 | Date | |
---|---|---|---|
|
4895d3b889 | ||
|
ff81a070cf |
5 changed files with 192 additions and 47 deletions
|
@ -1,24 +0,0 @@
|
|||
import Image from "next/image";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<main className="grid min-h-full place-items-center bg-white px-6 py-24 sm:py-32 lg:px-8">
|
||||
<div className="text-center">
|
||||
<p className="text-base font-semibold text-indigo-600">404</p>
|
||||
<h1 className="mt-4 text-3xl font-bold tracking-tight text-gray-900 sm:text-5xl">Page not found</h1>
|
||||
<p className="mt-6 text-base leading-7 text-gray-600">Sorry, we couldn’t find the page you’re looking for.</p>
|
||||
<div className="mt-10 flex items-center justify-center gap-x-6">
|
||||
<a
|
||||
href="#"
|
||||
className="rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Go back home
|
||||
</a>
|
||||
<a href="#" className="text-sm font-semibold text-gray-900">
|
||||
Contact support <span aria-hidden="true">→</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
67
app/page.tsx
67
app/page.tsx
|
@ -1,25 +1,50 @@
|
|||
import Image from "next/image";
|
||||
|
||||
async function getData( url: string ) {
|
||||
const res = await fetch( url );
|
||||
// The return value is *not* serialized
|
||||
// You can return Date, Map, Set, etc.
|
||||
|
||||
if (!res.ok) {
|
||||
// This will activate the closest `error.js` Error Boundary
|
||||
throw new Error('Failed to fetch data');
|
||||
import { Fragment } from 'react'
|
||||
import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react'
|
||||
import { ChevronDownIcon } from '@heroicons/react/20/solid'
|
||||
function classNames(...classes) {
|
||||
return classes.filter(Boolean).join(' ')
|
||||
}
|
||||
|
||||
return res.json()
|
||||
}
|
||||
|
||||
export default async function Home() {
|
||||
const data = await getData( "http://localhost:4000/questions" );
|
||||
export default function Example() {
|
||||
return (
|
||||
<main>
|
||||
{ data.map( (item: any) => (
|
||||
<p className = "text-lg font-sans hover:text-xl">{ item.question } </p>
|
||||
) ) }
|
||||
</main>
|
||||
);
|
||||
<div className="bg-black">
|
||||
<div style={{ display:"flex", alignItems: 'center', justifyContent: 'center', paddingTop:'40px'}}><img className="flex" src="/logo-no-background.png" height="auto" width="40%" style={{ alignSelf: 'center'}}></img></div>
|
||||
<div className="mx-auto max-w-7xl py-24 sm:px-6 sm:py-32 lg:px-8">
|
||||
<div className="relative isolate overflow-hidden bg-gray-900 px-6 pt-16 shadow-2xl sm:rounded-3xl sm:px-16 md:pt-24 lg:flex lg:gap-x-20 lg:px-24 lg:pt-0">
|
||||
<svg
|
||||
viewBox="0 0 1024 1024"
|
||||
className="absolute left-1/2 top-1/2 -z-10 h-[64rem] w-[64rem] -translate-y-1/2 [mask-image:radial-gradient(closest-side,white,transparent)] sm:left-full sm:-ml-80 lg:left-1/2 lg:ml-0 lg:-translate-x-1/2 lg:translate-y-0"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<circle cx={512} cy={512} r={512} fill="url(#759c1415-0410-454c-8f7c-9a820de03641)" fillOpacity="0.7" />
|
||||
<defs>
|
||||
<radialGradient id="759c1415-0410-454c-8f7c-9a820de03641">
|
||||
<stop stopColor="#7775D6" />
|
||||
<stop offset={1} stopColor="#E935C1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="mx-auto max-w-md text-center lg:mx-0 lg:flex-auto lg:py-32 lg:text-left">
|
||||
<h2 className="text-3xl font-bold tracking-tight text-white sm:text-4xl">
|
||||
Start using flash cards
|
||||
<br />
|
||||
Begin with our app today.
|
||||
</h2>
|
||||
<p className="mt-6 text-lg leading-8 text-gray-300">
|
||||
Get questions from a multitude of different subjects that include cybersecurity, geography and C++
|
||||
</p>
|
||||
<div className="mt-10 flex items-center justify-center gap-x-6 lg:justify-start">
|
||||
<a
|
||||
href="sessionconfig"
|
||||
className="rounded-md bg-white px-3.5 py-2.5 text-sm font-semibold text-gray-900 shadow-sm hover:bg-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white"
|
||||
>
|
||||
Get started
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
144
app/sessionconfig/page.tsx
Normal file
144
app/sessionconfig/page.tsx
Normal file
|
@ -0,0 +1,144 @@
|
|||
import { CheckIcon } from '@heroicons/react/20/solid'
|
||||
|
||||
const includedFeatures = [
|
||||
'Private forum access',
|
||||
'Member resources',
|
||||
'Entry to annual conference',
|
||||
'Official member t-shirt',
|
||||
]
|
||||
|
||||
export default function Example() {
|
||||
return (
|
||||
<div className="bg-black py-24 sm:py-32">
|
||||
<div style={{ display:"flex", alignItems: 'center', justifyContent: 'center', paddingTop:'40px'}}><img className="flex" src="/logo-no-background.png" height="auto" width="40%" style={{ alignSelf: 'center'}}></img></div>
|
||||
<div className="mx-auto max-w-7xl px-6 lg:px-8">
|
||||
<div className="mx-auto mt-16 max-w-2xl rounded-3xl ring-1 ring-gray-200 sm:mt-20 lg:mx-0 lg:flex lg:max-w-none relative isolate overflow-hidden bg-gray-900 px-6 pt-16 shadow-2xl sm:rounded-3xl sm:px-16 md:pt-24 lg:flex lg:gap-x-20 lg:px-24 lg:pt-0">
|
||||
<svg
|
||||
viewBox="0 0 1024 1024"
|
||||
className="absolute left-1/2 top-1/2 -z-10 h-[64rem] w-[64rem] -translate-y-1/2 [mask-image:radial-gradient(closest-side,white,transparent)] sm:left-full sm:-ml-80 lg:left-1/2 lg:ml-0 lg:-translate-x-1/2 lg:translate-y-0"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<circle cx={512} cy={512} r={512} fill="url(#759c1415-0410-454c-8f7c-9a820de03641)" fillOpacity="0.7" />
|
||||
<defs>
|
||||
<radialGradient id="759c1415-0410-454c-8f7c-9a820de03641">
|
||||
<stop stopColor="#7775D6" />
|
||||
<stop offset={1} stopColor="#E935C1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="p-8 sm:p-10 lg:flex-auto ">
|
||||
<h3 className="text-2xl font-bold tracking-tight text-gray-200">Learn cybersecurity</h3>
|
||||
<p className="mt-6 text-base leading-7 text-gray-200">
|
||||
Learning cybersecurity is like becoming the guardian of the digital realm.
|
||||
It's about mastering the art of protecting information, systems, and networks from cyber threats.
|
||||
From understanding encryption algorithms to detecting malware, every lesson equips you with tools to fortify against cyber-attacks.
|
||||
</p>
|
||||
</div>
|
||||
<div className="-mt-2 p-2 lg:mt-0 lg:w-full lg:max-w-md lg:flex-shrink-0">
|
||||
<div className="rounded-2xl bg-gray-50 py-10 text-center ring-1 ring-inset ring-gray-900/5 lg:flex lg:flex-col lg:justify-center lg:py-16">
|
||||
<div className="mx-auto max-w-xs px-8">
|
||||
<p className="mt-6 flex items-baseline justify-center gap-x-2">
|
||||
<span className="text-5xl font-bold tracking-tight text-gray-900">Start</span>
|
||||
<span className="text-sm font-semibold leading-6 tracking-wide text-gray-900">now!</span>
|
||||
</p>
|
||||
<a
|
||||
href="#"
|
||||
className="mt-10 block w-full rounded-md bg-indigo-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Begin
|
||||
</a>
|
||||
<p className="mt-6 text-xs leading-5 text-gray-600">
|
||||
Take a short quiz to begin learning faster than ever
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mx-auto mt-16 max-w-2xl rounded-3xl ring-1 ring-gray-200 sm:mt-20 lg:mx-0 lg:flex lg:max-w-none relative isolate overflow-hidden bg-gray-900 px-6 pt-16 shadow-2xl sm:rounded-3xl sm:px-16 md:pt-24 lg:flex lg:gap-x-20 lg:px-24 lg:pt-0">
|
||||
<svg
|
||||
viewBox="0 0 1024 1024"
|
||||
className="absolute left-1/2 top-1/2 -z-10 h-[64rem] w-[64rem] -translate-y-1/2 [mask-image:radial-gradient(closest-side,white,transparent)] sm:left-full sm:-ml-80 lg:left-1/2 lg:ml-0 lg:-translate-x-1/2 lg:translate-y-0"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<circle cx={512} cy={512} r={512} fill="url(#759c1415-0410-454c-8f7c-9a820de03641)" fillOpacity="0.7" />
|
||||
<defs>
|
||||
<radialGradient id="759c1415-0410-454c-8f7c-9a820de03641">
|
||||
<stop stopColor="#7775D6" />
|
||||
<stop offset={1} stopColor="#E935C1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="p-8 sm:p-10 lg:flex-auto ">
|
||||
<h3 className="text-2xl font-bold tracking-tight text-gray-200">Learn cybersecurity</h3>
|
||||
<p className="mt-6 text-base leading-7 text-gray-200">
|
||||
Learning cybersecurity is like becoming the guardian of the digital realm.
|
||||
It's about mastering the art of protecting information, systems, and networks from cyber threats.
|
||||
From understanding encryption algorithms to detecting malware, every lesson equips you with tools to fortify against cyber-attacks.
|
||||
</p>
|
||||
</div>
|
||||
<div className="-mt-2 p-2 lg:mt-0 lg:w-full lg:max-w-md lg:flex-shrink-0">
|
||||
<div className="rounded-2xl bg-gray-50 py-10 text-center ring-1 ring-inset ring-gray-900/5 lg:flex lg:flex-col lg:justify-center lg:py-16">
|
||||
<div className="mx-auto max-w-xs px-8">
|
||||
<p className="mt-6 flex items-baseline justify-center gap-x-2">
|
||||
<span className="text-5xl font-bold tracking-tight text-gray-900">Start</span>
|
||||
<span className="text-sm font-semibold leading-6 tracking-wide text-gray-900">now!</span>
|
||||
</p>
|
||||
<a
|
||||
href="#"
|
||||
className="mt-10 block w-full rounded-md bg-indigo-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Begin
|
||||
</a>
|
||||
<p className="mt-6 text-xs leading-5 text-gray-600">
|
||||
Take a short quiz to begin learning faster than ever
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="mx-auto mt-16 max-w-2xl rounded-3xl ring-1 ring-gray-200 sm:mt-20 lg:mx-0 lg:flex lg:max-w-none relative isolate overflow-hidden bg-gray-900 px-6 pt-16 shadow-2xl sm:rounded-3xl sm:px-16 md:pt-24 lg:flex lg:gap-x-20 lg:px-24 lg:pt-0">
|
||||
<svg
|
||||
viewBox="0 0 1024 1024"
|
||||
className="absolute left-1/2 top-1/2 -z-10 h-[64rem] w-[64rem] -translate-y-1/2 [mask-image:radial-gradient(closest-side,white,transparent)] sm:left-full sm:-ml-80 lg:left-1/2 lg:ml-0 lg:-translate-x-1/2 lg:translate-y-0"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<circle cx={512} cy={512} r={512} fill="url(#759c1415-0410-454c-8f7c-9a820de03641)" fillOpacity="0.7" />
|
||||
<defs>
|
||||
<radialGradient id="759c1415-0410-454c-8f7c-9a820de03641">
|
||||
<stop stopColor="#7775D6" />
|
||||
<stop offset={1} stopColor="#E935C1" />
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="p-8 sm:p-10 lg:flex-auto ">
|
||||
<h3 className="text-2xl font-bold tracking-tight text-gray-200">Learn cybersecurity</h3>
|
||||
<p className="mt-6 text-base leading-7 text-gray-200">
|
||||
Learning cybersecurity is like becoming the guardian of the digital realm.
|
||||
It's about mastering the art of protecting information, systems, and networks from cyber threats.
|
||||
From understanding encryption algorithms to detecting malware, every lesson equips you with tools to fortify against cyber-attacks.
|
||||
</p>
|
||||
</div>
|
||||
<div className="-mt-2 p-2 lg:mt-0 lg:w-full lg:max-w-md lg:flex-shrink-0">
|
||||
<div className="rounded-2xl bg-gray-50 py-10 text-center ring-1 ring-inset ring-gray-900/5 lg:flex lg:flex-col lg:justify-center lg:py-16">
|
||||
<div className="mx-auto max-w-xs px-8">
|
||||
<p className="mt-6 flex items-baseline justify-center gap-x-2">
|
||||
<span className="text-5xl font-bold tracking-tight text-gray-900">Start</span>
|
||||
<span className="text-sm font-semibold leading-6 tracking-wide text-gray-900">now!</span>
|
||||
</p>
|
||||
<a
|
||||
href="#"
|
||||
className="mt-10 block w-full rounded-md bg-indigo-600 px-3 py-2 text-center text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||
>
|
||||
Begin
|
||||
</a>
|
||||
<p className="mt-6 text-xs leading-5 text-gray-600">
|
||||
Take a short quiz to begin learning faster than ever
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
BIN
public/logo-no-background.png
Normal file
BIN
public/logo-no-background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
|
@ -3,7 +3,7 @@
|
|||
"lib": ["dom", "dom.iterable", "esnext"],
|
||||
"allowJs": true,
|
||||
"skipLibCheck": true,
|
||||
"strict": false,
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"module": "esnext",
|
||||
|
@ -22,6 +22,6 @@
|
|||
"@/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "app/components/Dropdown.js"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue