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 (
+
+
+
+
+
+
+
+
+
+
+ {/* Mobile menu button */}
+
+ Open main menu
+
+
+
+
+
+
+
+
+ Dashboard
+
+
+ Team
+
+
+ Projects
+
+
+ Calendar
+
+
+
+
+ )
+}
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.
-
-
- Get started
-
-
- Deploy Now
-
-
-
-
-
-
-
- {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==