diff --git a/.gitignore b/.gitignore index b56f9b8..88b3734 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ build # misc .DS_Store *.pem +.idea # debug npm-debug.log* diff --git a/components/Footer/Footer.tsx b/components/Footer/Footer.tsx new file mode 100644 index 0000000..91f66b2 --- /dev/null +++ b/components/Footer/Footer.tsx @@ -0,0 +1,9 @@ +import Image from "next/image"; + +export default function Footer() { + return ( + + ) +} diff --git a/components/Layout/Layout.tsx b/components/Layout/Layout.tsx new file mode 100644 index 0000000..bc66007 --- /dev/null +++ b/components/Layout/Layout.tsx @@ -0,0 +1,23 @@ +import Head from "next/head" +import Footer from "../Footer/Footer" +import Navbar from "../Navbar/Navbar" + +export default function Layout({ children }) { + return ( + <> + + + + + + + IsaCon + +
+ +
{children}
+
+ + ) +} diff --git a/components/Navbar/Navbar.tsx b/components/Navbar/Navbar.tsx new file mode 100644 index 0000000..636272c --- /dev/null +++ b/components/Navbar/Navbar.tsx @@ -0,0 +1,54 @@ +export default function Navbar() { + return ( + + ) +} diff --git a/components/Tooltip/Tooltip.tsx b/components/Tooltip/Tooltip.tsx deleted file mode 100644 index 59585e2..0000000 --- a/components/Tooltip/Tooltip.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import * as RadixTooltip from "@radix-ui/react-tooltip" -import { cva, VariantProps } from "class-variance-authority" -import React from "react" -import { twMerge } from "tailwind-merge" - -const tooltipContent = cva([], { - variants: { - intent: { - primary: ["rounded-0.5md", "bg-zinc-700", "font-open-sans", "text-white"], - }, - size: { - md: ["px-4", "py-2.5", "text-2xs"], - }, - }, - defaultVariants: { - intent: "primary", - size: "md", - }, -}) - -const tooltipArrow = cva([], { - variants: { - intent: { - primary: ["fill-zinc-700"], - }, - size: { - md: ["w-4", "h-2"], - }, - }, - defaultVariants: { - intent: "primary", - size: "md", - }, -}) - -export interface TooltipProps extends VariantProps, RadixTooltip.TooltipProps { - explainer: React.ReactElement | string - children: React.ReactElement - className?: string - withArrow?: boolean - side?: "top" | "right" | "bottom" | "left" -} - -export function Tooltip({ - children, - explainer, - open, - defaultOpen, - onOpenChange, - intent, - size, - side = "top", - className, - withArrow, -}: TooltipProps) { - return ( - - - {children} - - - {explainer} - {withArrow ? : null} - - - - - ) -} diff --git a/env.mjs b/env.mjs index a3adf0e..1e277bb 100644 --- a/env.mjs +++ b/env.mjs @@ -3,6 +3,7 @@ import { z } from "zod" export const env = createEnv({ server: { + MONGODB_URI: z.string(), ANALYZE: z .enum(["true", "false"]) .optional() @@ -11,5 +12,6 @@ export const env = createEnv({ client: {}, runtimeEnv: { ANALYZE: process.env.ANALYZE, + MONGODB_URI: process.env.MONGODB_URI, }, }) diff --git a/lib/mongodb.ts b/lib/mongodb.ts new file mode 100644 index 0000000..2b8b6c0 --- /dev/null +++ b/lib/mongodb.ts @@ -0,0 +1,11 @@ +import { MongoClient, ServerApiVersion } from "mongodb" + +const client = new MongoClient(process.env.MONGODB_URI, { + serverApi: { + version: ServerApiVersion.v1, + strict: true, + deprecationErrors: true, + }, +}) + +export default client diff --git a/lp-items.tsx b/lp-items.tsx deleted file mode 100644 index 3a97992..0000000 --- a/lp-items.tsx +++ /dev/null @@ -1,416 +0,0 @@ -export const LP_GRID_ITEMS = [ - { - title: "Next.js", - description: "Fast by default, with config optimized for performance.", - icon: ( - - - - ), - }, - { - title: "Tailwind CSS", - description: "A utility-first CSS framework for rapid UI development.", - icon: ( - - - - ), - }, - { - title: "ESlint & Prettier", - description: "For clean, consistent, and error-free code.", - icon: ( - - - - ), - }, - { - title: "Extremely strict TypeScript", - description: "With `ts-reset` library for ultimate type safety.", - icon: ( - - - - ), - }, - { - title: "Bundle analyzer plugin", - description: "Keep an eye on your bundle size.", - icon: ( - - - - ), - }, - { - title: "Jest & React Testing Library", - description: "For rock-solid unit and integration tests.", - icon: ( - - - - ), - }, - { - title: "Playwright", - description: "Write end-to-end tests like a pro.", - icon: ( - - - - ), - }, - { - title: "Storybook", - description: "Create, test, and showcase your components.", - icon: ( - - - - ), - }, - { - title: "Smoke Testing & Acceptance Tests", - description: "For confidence in your deployments.", - icon: ( - - - - ), - }, - { - title: "Conventional commits git hook", - description: "Keep your commit history neat and tidy.", - icon: ( - - - - ), - }, - { - title: "Observability", - description: "Open Telemetry integration for seamless monitoring.", - icon: ( - - - - - ), - }, - { - title: "Absolute imports", - description: "No more spaghetti imports.", - icon: ( - - - - ), - }, - { - title: "Health checks", - description: "Kubernetes-compatible for robust deployments.", - icon: ( - - - - ), - }, - { - title: "Radix UI", - description: "Headless UI components for endless customization.", - icon: ( - - - - ), - }, - { - title: "CVA", - description: "Create a consistent, reusable, and atomic design system.", - icon: ( - - - - ), - }, - { - title: "Renovate BOT", - description: "Auto-updating dependencies, so you can focus on coding.", - icon: ( - - - - ), - }, - { - title: "Patch-package", - description: "Fix external dependencies without losing your mind.", - icon: ( - - - - ), - }, - { - title: "Components coupling & cohesion graph", - description: "A tool for managing component relationships.", - icon: ( - - - - - ), - }, - { - title: "GitHub Actions", - description: "Pre-configured actions for smooth workflows, including Bundle Size and performance stats.", - icon: ( - - - - ), - }, - { - title: "Automated ChatGPT Code Reviews", - description: "Stay on the cutting edge with AI-powered code reviews!", - icon: ( - - - - ), - }, - { - title: "Semantic Release", - description: "For automatic changelog generation.", - icon: ( - - - - ), - }, -] diff --git a/package.json b/package.json index d988867..3f0ff1c 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@vercel/otel": "^0.3.0", "class-variance-authority": "^0.6.0", "lodash": "^4.17.21", + "mongodb": "^5.7.0", "next": "^13.3.0", "next-compose-plugins": "^2.2.1", "react": "^18.2.0", diff --git a/pages/_app.tsx b/pages/_app.tsx index 3d83a02..3ba068b 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -1,9 +1,12 @@ import "../styles/tailwind.css" - import { AppProps } from "next/app" +import Layout from "../components/Layout/Layout"; + function MyApp({ Component, pageProps }: AppProps) { - return + return + + } export default MyApp diff --git a/pages/api/players.ts b/pages/api/players.ts new file mode 100644 index 0000000..e05ad78 --- /dev/null +++ b/pages/api/players.ts @@ -0,0 +1,16 @@ +import client from "../../lib/mongodb" + +export default async function handler(req, res) { + const db = client.db("SloppyFuckers") + switch (req.method) { + case "POST": + let bodyObject = JSON.parse(req.body) + let myPost = await db.collection("players").insertOne(bodyObject) + res.json(myPost.ops[0]) + break + case "GET": + const allPosts = await db.collection("players").find({}).toArray() + res.json({ status: 200, data: allPosts }) + break + } +} diff --git a/pages/index.tsx b/pages/index.tsx index eef65b9..1f623bd 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,55 +1,29 @@ -import Head from "next/head" -import { Button } from "components/Button/Button" -import { LP_GRID_ITEMS } from "../lp-items" +export async function getServerSideProps({ res }) { + res.setHeader("Cache-Control", "public, s-maxage=10, stale-while-revalidate=59") + const response = await fetch("http://localhost:3000/api/players", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }) + const allPlayers = await response.json() -export default function Web() { + return { + props: { allPlayers }, + } +} + +export default function Web({ allPlayers }) { return ( <> - - - - - - - Next.js Enterprise Boilerplate - -
+
-

- Next.js Enterprise Boilerplate +

+ IsaCon

-

- Jumpstart your enterprise project with our feature-packed, high-performance Next.js boilerplate! - Experience rapid UI development, AI-powered code reviews, and an extensive suite of tools for a smooth and - enjoyable development process. -

- - -
-
-
-
-
-
- {LP_GRID_ITEMS.map((singleItem) => ( -
-
- {singleItem.icon} -
-

{singleItem.title}

-

{singleItem.description}

-
+ {allPlayers.data.map((player) => ( +
{player.name}
))}
diff --git a/public/Isacon logo RGB_1.png b/public/Isacon logo RGB_1.png new file mode 100644 index 0000000..3fef194 Binary files /dev/null and b/public/Isacon logo RGB_1.png differ diff --git a/public/Isacon logo RGB_2_small.png b/public/Isacon logo RGB_2_small.png new file mode 100644 index 0000000..9d435ab Binary files /dev/null and b/public/Isacon logo RGB_2_small.png differ diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000..4f3091b Binary files /dev/null and b/public/apple-touch-icon.png differ diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png new file mode 100644 index 0000000..c055ba9 Binary files /dev/null and b/public/favicon-16x16.png differ diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000..ce70427 Binary files /dev/null and b/public/favicon-32x32.png differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..0e82f14 Binary files /dev/null and b/public/favicon.ico differ diff --git a/tailwind.config.js b/tailwind.config.js index c37df6d..181b211 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -18,16 +18,16 @@ module.exports = { extend: { colors: { primary: { - 50: "#eff6ff", - 100: "#dbeafe", - 200: "#bfdbfe", - 300: "#93c5fd", - 400: "#60a5fa", - 500: "#3b82f6", - 600: "#2563eb", - 700: "#1d4ed8", - 800: "#1e40af", - 900: "#1e3a8a", + 50: "#c9c8aa", + 100: "#efefb9", + 200: "#f3f2a2", + 300: "#f9f871", + 400: "#bfcd61", + 500: "#8ca350", + 600: "#60793f", + 700: "#3b512d", + 800: "#1d2b1a", + 900: "#0e0e0e", }, }, fontFamily: { diff --git a/yarn.lock b/yarn.lock index 00693e4..cacb05d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5585,6 +5585,19 @@ dependencies: "@types/node" "*" +"@types/webidl-conversions@*": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" + integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== + +"@types/whatwg-url@^8.2.1": + version "8.2.2" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" + integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== + dependencies: + "@types/node" "*" + "@types/webidl-conversions" "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -6937,6 +6950,11 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" +bson@^5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-5.4.0.tgz#0eea77276d490953ad8616b483298dbff07384c6" + integrity sha512-WRZ5SQI5GfUuKnPTNmAYPiKIof3ORXAF4IRU5UcgmivNIon01rWQlw5RUH954dpu8yGL8T59YShVddIPaU/gFA== + buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -12365,6 +12383,11 @@ memoizerific@^1.11.3: dependencies: map-or-similar "^1.5.0" +memory-pager@^1.0.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" + integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== + meow@^8.1.2: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -12614,6 +12637,25 @@ module-details-from-path@^1.0.3: resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== +mongodb-connection-string-url@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" + integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== + dependencies: + "@types/whatwg-url" "^8.2.1" + whatwg-url "^11.0.0" + +mongodb@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-5.7.0.tgz#e16d2fcdfd9f8503ec2d88288392dc3235bb3ecc" + integrity sha512-zm82Bq33QbqtxDf58fLWBwTjARK3NSvKYjyz997KSy6hpat0prjeX/kxjbPVyZY60XYPDNETaHkHJI2UCzSLuw== + dependencies: + bson "^5.4.0" + mongodb-connection-string-url "^2.6.0" + socks "^2.7.1" + optionalDependencies: + saslprep "^1.0.3" + mri@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -14848,6 +14890,13 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +saslprep@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" + integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== + dependencies: + sparse-bitfield "^3.0.3" + sass-loader@^12.4.0: version "12.6.0" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-12.6.0.tgz#5148362c8e2cdd4b950f3c63ac5d16dbfed37bcb" @@ -15164,7 +15213,7 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" -socks@^2.6.2: +socks@^2.6.2, socks@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== @@ -15208,6 +15257,13 @@ space-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== +sparse-bitfield@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" + integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== + dependencies: + memory-pager "^1.0.2" + spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" @@ -16712,6 +16768,7 @@ wordwrap@^1.0.0: integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==