diff --git a/apps/frontend/app/components/Onboarding.tsx b/apps/frontend/app/components/Onboarding.tsx
new file mode 100644
index 0000000..865743a
--- /dev/null
+++ b/apps/frontend/app/components/Onboarding.tsx
@@ -0,0 +1,67 @@
+export default function Onboarding({ onBack }: { onBack: () => void }) {
+ return (
+
+
+
+
+
Welcome to CS+SG
+
Set up your basic profile
+
+
+ {/* Avatar and Identity Fields */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Links Section */}
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/frontend/app/components/SignUpForm.tsx b/apps/frontend/app/components/SignUpForm.tsx
new file mode 100644
index 0000000..342757c
--- /dev/null
+++ b/apps/frontend/app/components/SignUpForm.tsx
@@ -0,0 +1,37 @@
+import Link from "next/link";
+
+export default function SignupForm({ onSignupSuccess }: { onSignupSuccess: () => void }) {
+ return (
+
+
Register
+
+
+
+ Have an account?{" "}
+
+ Login
+
+
+
+ );
+}
diff --git a/apps/frontend/app/forgot-password/page.tsx b/apps/frontend/app/forgot-password/page.tsx
new file mode 100644
index 0000000..468f9e1
--- /dev/null
+++ b/apps/frontend/app/forgot-password/page.tsx
@@ -0,0 +1,12 @@
+export default function ForgotPasswordPage() {
+ return (
+
+
+
Forgot Password
+
Enter your email to reset your password.
+
+
+
+
+ );
+}
diff --git a/apps/frontend/app/login/page.tsx b/apps/frontend/app/login/page.tsx
new file mode 100644
index 0000000..1d19a5d
--- /dev/null
+++ b/apps/frontend/app/login/page.tsx
@@ -0,0 +1,92 @@
+"use client";
+import { useState } from "react";
+import Link from "next/link";
+
+export default function LoginPage() {
+ const [email, setEmail] = useState("");
+ const [password, setPassword] = useState("");
+
+ const logLoginAttempt = (method: "standard" | "github" | "google") => {
+ console.log("Login attempt", {
+ method,
+ email,
+ password,
+ });
+ };
+
+ const handleLogin = () => logLoginAttempt("standard");
+ const handleGithubLogin = () => logLoginAttempt("github");
+ const handleGoogleLogin = () => logLoginAttempt("google");
+
+ return (
+
+
+
Login
+
+
+
+
+ Forgot Password?
+
+
+ {/* ... Divider ... */}
+
+
+
+
+
+ Don't have an account?{" "}
+
+ Register
+
+
+
+
+ );
+}
diff --git a/apps/frontend/app/signup/page.tsx b/apps/frontend/app/signup/page.tsx
new file mode 100644
index 0000000..52497d4
--- /dev/null
+++ b/apps/frontend/app/signup/page.tsx
@@ -0,0 +1,18 @@
+"use client";
+import { useState } from "react";
+import SignUpForm from "../components/SignUpForm";
+import Onboarding from "../components/Onboarding";
+
+export default function SignupPage() {
+ const [isSignedUp, setIsSignedUp] = useState(false);
+
+ return (
+
+ {isSignedUp ? (
+ setIsSignedUp(false)} />
+ ) : (
+ setIsSignedUp(true)} />
+ )}
+
+ );
+}