diff --git a/app/admin/applications/page.tsx b/app/admin/applications/page.tsx
new file mode 100644
index 0000000..6087a1a
--- /dev/null
+++ b/app/admin/applications/page.tsx
@@ -0,0 +1,58 @@
+export default function ApplicationsPage() {
+ const applications = [
+ {
+ id: 1,
+ name: "Jane Doe",
+ email: "jane@example.com",
+ role: "Frontend Engineer",
+ status: "Pending",
+ },
+ {
+ id: 2,
+ name: "John Smith",
+ email: "john@example.com",
+ role: "Backend Engineer",
+ status: "Accepted",
+ },
+ {
+ id: 3,
+ name: "Alice Johnson",
+ email: "alice@example.com",
+ role: "Product Designer",
+ status: "Rejected",
+ },
+ ];
+
+ return (
+
+
+ Applications
+
+
+
+
+
+
+ | Name |
+ Email |
+ Role |
+ Status |
+
+
+
+
+ {applications.map((app) => (
+
+ | {app.name} |
+ {app.email} |
+ {app.role} |
+ {app.status} |
+
+ ))}
+
+
+
+
+ );
+ }
+
\ No newline at end of file
diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx
new file mode 100644
index 0000000..1b7703b
--- /dev/null
+++ b/app/admin/layout.tsx
@@ -0,0 +1,6 @@
+import React from "react";
+import AdminLayout from "@/components/admin/AdminLayout";
+
+export default function Layout({ children }: { children: React.ReactNode }) {
+ return {children};
+}
diff --git a/app/admin/page.tsx b/app/admin/page.tsx
new file mode 100644
index 0000000..16a284c
--- /dev/null
+++ b/app/admin/page.tsx
@@ -0,0 +1,11 @@
+export default function AdminPage() {
+ return (
+
+
Admin Dashboard
+
+ Base admin layout shell is working & No auth yet.
+
+
+ );
+ }
+
\ No newline at end of file
diff --git a/components/admin/AdminLayout.tsx b/components/admin/AdminLayout.tsx
new file mode 100644
index 0000000..14de68d
--- /dev/null
+++ b/components/admin/AdminLayout.tsx
@@ -0,0 +1,20 @@
+import React from "react";
+
+export default function AdminLayout({
+ children,
+}: {
+ children: React.ReactNode;
+}) {
+ return (
+
+ {/* Sidebar placeholder */}
+
+
+ {/* Content area */}
+
{children}
+
+ );
+}
diff --git a/package-lock.json b/package-lock.json
index 2fcab37..7ff0144 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,8 +16,8 @@
"mongoose": "^8.9.0",
"next": "^15.0.3",
"playwright": "^1.49.0",
- "react": "19.0.0-rc-66855b96-20241106",
- "react-dom": "19.0.0-rc-66855b96-20241106",
+ "react": "^19.0.0-rc-66855b96-20241106",
+ "react-dom": "^19.0.0-rc-66855b96-20241106",
"tailwind-merge": "^2.5.5",
"zod": "^4.1.12"
},
@@ -95,8 +95,7 @@
"resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.3.15.tgz",
"integrity": "sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==",
"dev": true,
- "license": "Apache-2.0",
- "peer": true
+ "license": "Apache-2.0"
},
"node_modules/@electric-sql/pglite-socket": {
"version": "0.0.20",
@@ -957,7 +956,6 @@
"version": "1.49.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.0.tgz",
"integrity": "sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==",
- "peer": true,
"dependencies": {
"playwright": "1.49.0"
},
@@ -1180,7 +1178,6 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
"integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
"devOptional": true,
- "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
@@ -1246,7 +1243,6 @@
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz",
"integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==",
"dev": true,
- "peer": true,
"dependencies": {
"@typescript-eslint/scope-manager": "8.15.0",
"@typescript-eslint/types": "8.15.0",
@@ -1422,7 +1418,6 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"dev": true,
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -2536,7 +2531,6 @@
"integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
"deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dev": true,
- "peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
@@ -2712,7 +2706,6 @@
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
"integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"dev": true,
- "peer": true,
"dependencies": {
"@rtsao/scc": "^1.1.0",
"array-includes": "^3.1.8",
@@ -3576,7 +3569,6 @@
"integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==",
"dev": true,
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=16.9.0"
}
@@ -5078,7 +5070,6 @@
"url": "https://github.com/sponsors/ai"
}
],
- "peer": true,
"dependencies": {
"nanoid": "^3.3.7",
"picocolors": "^1.1.1",
@@ -5329,7 +5320,8 @@
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
"integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "peer": true
},
"node_modules/prop-types": {
"version": "15.8.1",
@@ -5421,7 +5413,7 @@
"version": "19.0.0-rc-66855b96-20241106",
"resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-66855b96-20241106.tgz",
"integrity": "sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==",
- "peer": true,
+ "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
@@ -5430,7 +5422,7 @@
"version": "19.0.0-rc-66855b96-20241106",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-66855b96-20241106.tgz",
"integrity": "sha512-D25vdaytZ1wFIRiwNU98NPQ/upS2P8Co4/oNoa02PzHbh8deWdepjm5qwZM/46OdSiGv4WSWwxP55RO9obqJEQ==",
- "peer": true,
+ "license": "MIT",
"dependencies": {
"scheduler": "0.25.0-rc-66855b96-20241106"
},
@@ -6169,7 +6161,6 @@
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz",
"integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==",
"dev": true,
- "peer": true,
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
@@ -6407,7 +6398,6 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
"dev": true,
- "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
diff --git a/package.json b/package.json
index 3f76db9..33bd87a 100644
--- a/package.json
+++ b/package.json
@@ -24,8 +24,8 @@
"mongoose": "^8.9.0",
"next": "^15.0.3",
"playwright": "^1.49.0",
- "react": "19.0.0-rc-66855b96-20241106",
- "react-dom": "19.0.0-rc-66855b96-20241106",
+ "react": "^19.0.0-rc-66855b96-20241106",
+ "react-dom": "^19.0.0-rc-66855b96-20241106",
"tailwind-merge": "^2.5.5",
"zod": "^4.1.12"
},