Index: src/app/api/prof/grade/add/route.ts
===================================================================
--- src/app/api/prof/grade/add/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
+++ src/app/api/prof/grade/add/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
@@ -0,0 +1,13 @@
+import { NextResponse } from "next/server";
+import { setGrade, type AddGrade } from "@/lib/prof-demo-store";
+
+export async function POST(req: Request) {
+  try {
+    const payload = (await req.json()) as AddGrade;
+    const result = setGrade(payload, "add");
+    return NextResponse.json({ ok: true, ...result });
+  } catch (err) {
+    const message = err instanceof Error ? err.message : "Unknown error";
+    return NextResponse.json({ ok: false, message }, { status: 400 });
+  }
+}
Index: src/app/api/prof/grade/edit/route.ts
===================================================================
--- src/app/api/prof/grade/edit/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
+++ src/app/api/prof/grade/edit/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
@@ -0,0 +1,13 @@
+import { NextResponse } from "next/server";
+import { setGrade, type AddGrade } from "@/lib/prof-demo-store";
+
+export async function POST(req: Request) {
+  try {
+    const payload = (await req.json()) as AddGrade;
+    const result = setGrade(payload, "edit");
+    return NextResponse.json({ ok: true, ...result });
+  } catch (err) {
+    const message = err instanceof Error ? err.message : "Unknown error";
+    return NextResponse.json({ ok: false, message }, { status: 400 });
+  }
+}
Index: src/app/api/prof/grade/remove/route.ts
===================================================================
--- src/app/api/prof/grade/remove/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
+++ src/app/api/prof/grade/remove/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
@@ -0,0 +1,13 @@
+import { NextResponse } from "next/server";
+import { setGrade, type AddGrade } from "@/lib/prof-demo-store";
+
+export async function POST(req: Request) {
+  try {
+    const payload = (await req.json()) as AddGrade;
+    const result = setGrade(payload, "remove");
+    return NextResponse.json({ ok: true, ...result });
+  } catch (err) {
+    const message = err instanceof Error ? err.message : "Unknown error";
+    return NextResponse.json({ ok: false, message }, { status: 400 });
+  }
+}
Index: src/app/api/prof/students/route.ts
===================================================================
--- src/app/api/prof/students/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
+++ src/app/api/prof/students/route.ts	(revision 298f9b3987050da08cb65ce62c3d1f8295faeff4)
@@ -0,0 +1,6 @@
+import { NextResponse } from "next/server";
+import { getSubjects } from "@/lib/prof-demo-store";
+
+export async function GET() {
+  return NextResponse.json(getSubjects());
+}
