diff --git a/app/apply/org/page.tsx b/app/apply/org/page.tsx deleted file mode 100644 index 6bb0fd5..0000000 --- a/app/apply/org/page.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import Link from "next/link"; -import PublicLayout from "@/components/layout/PublicLayout"; - -export default function OrgApplyPage() { - return ( - - - - Organization Application - - Coming soon. - - - Back to Apply - - - - ); -} - diff --git a/app/apply/organization/page.tsx b/app/apply/organization/page.tsx new file mode 100644 index 0000000..b3e4986 --- /dev/null +++ b/app/apply/organization/page.tsx @@ -0,0 +1,126 @@ +"use client"; + +import { useState } from "react"; +import PublicLayout from "@/components/layout/PublicLayout"; + +type ProjectFormState = { + companyName: string; + projectTitle: string; + budget: string; + description: string; +}; + +export default function CompanyProjectPage() { + const [form, setForm] = useState({ + companyName: "", + projectTitle: "", + budget: "", + description: "", + }); + + function updateField( + key: K, + value: string, + ) { + setForm((prev) => ({ ...prev, [key]: value })); + } + + function handleSubmit(e: React.FormEvent) { + e.preventDefault(); + console.log("Submitting Company Project:", form); + alert("Project details logged to console!"); + } + + return ( + + + + + New Company Project + + + Submit your project proposal for review. All fields are required. + + + + + {/* Company Name Field */} + + + Company / Organization Name + + updateField("companyName", e.target.value)} + className="rounded-md border border-gray-300 px-3 py-2 focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" + placeholder="Acme Corp" + /> + + + + {/* Project Title Field */} + + + Project Title + + updateField("projectTitle", e.target.value)} + className="rounded-md border border-gray-300 px-3 py-2" + placeholder="Internal CRM Redesign" + /> + + + + {/* Budget Field */} + + + Estimated Budget + + updateField("budget", e.target.value)} + className="rounded-md border border-gray-300 px-3 py-2" + placeholder="e.g. $25,000" + /> + + + {/* Description Field */} + + + Project Description + + updateField("description", e.target.value)} + className="rounded-md border border-gray-300 px-3 py-2" + placeholder="Outline the main objectives and deliverables..." + /> + + + {/* Form Actions */} + + + Submit + + + + + + ); +} diff --git a/app/apply/page.tsx b/app/apply/page.tsx index 1ac0232..20cbde4 100644 --- a/app/apply/page.tsx +++ b/app/apply/page.tsx @@ -13,13 +13,22 @@ export default function ApplyPage() { Application Types - + Startup Application - + Org Application - + Team Application @@ -27,4 +36,4 @@ export default function ApplyPage() { ); -} \ No newline at end of file +} diff --git a/auth.ts b/auth.ts index b9e609a..46b75b7 100644 --- a/auth.ts +++ b/auth.ts @@ -7,4 +7,5 @@ export const { auth, handlers, signIn, signOut } = NextAuth({ strategy: "jwt", maxAge: 30 * 24 * 60 * 60, // 30 days }, + secret: process.env.AUTH_SECRET, }); diff --git a/components/layout/PublicLayout.tsx b/components/layout/PublicLayout.tsx index c32a11d..8c1f1d6 100644 --- a/components/layout/PublicLayout.tsx +++ b/components/layout/PublicLayout.tsx @@ -19,7 +19,7 @@ export default function PublicLayout({ {children} > ); diff --git a/package-lock.json b/package-lock.json index 9e939c9..7fd39b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -301,6 +301,16 @@ "node": ">=18" } }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.34.5", "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", @@ -1190,7 +1200,7 @@ "license": "MIT", "optional": true, "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.8.0" } }, "node_modules/@types/json5": { @@ -5724,6 +5734,26 @@ "preact": ">=10" } }, + "node_modules/preact": { + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz", + "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==", + "license": "MIT", + "peerDependencies": { + "preact": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -5757,6 +5787,7 @@ "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@prisma/config": "6.19.2", "@prisma/engines": "6.19.2" @@ -5863,6 +5894,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -6986,6 +7018,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver"
Coming soon.
+ Submit your project proposal for review. All fields are required. +