diff --git a/README.md b/README.md
index c91ec4a..e4fc5e9 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# UPWayPoint
+
📍 UP WayPoint is a map that utilizes the Google Maps API to display a map of the campus of UP Diliman. Users with a UP email may sign up and place pins on certain points of interest. Both UP and non-UP users can then use the map as a reference for all the notable spots within the campus, or as a means of navigation.
_This is a course requirement for CS 191/CS192 Software Engineering Courses of the Department of Computer Science, College of Engineering, University of the Philippines, Diliman under the guidance of Prof. Ma. Rowena C. Solamo for the AY 2025-2026._
diff --git a/apps/web/app/admin/page.tsx b/apps/web/app/admin/page.tsx
index 8ac3308..31f034c 100644
--- a/apps/web/app/admin/page.tsx
+++ b/apps/web/app/admin/page.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useState, useEffect, useMemo } from "react";
+import { useState, useMemo } from "react";
import { useRouter } from "next/navigation";
import { signOut } from "@/lib/auth-client";
import { trpc } from "@/lib/trpc";
@@ -9,169 +9,150 @@ import { useTheme } from "@/lib/ThemeContext";
import Link from "next/link";
export default function AdminDashboard() {
- const router = useRouter();
-
- const { data, isLoading } = trpc.user.getCurrent.useQuery();
-
- const { data: pendingModifications } =
- trpc.modification.getPending.useQuery();
-
- const { data: pinCounts } = trpc.pin.getStatusCounts.useQuery();
- const { data: userCount } = trpc.user.getCount.useQuery();
- const { data: commentCount } = trpc.comment.getCount.useQuery();
- const { data: pendingPins } = trpc.pin.getAllAdmin.useQuery({
- status: "PENDING_VERIFICATION",
- });
-
- const { data: activePins } = trpc.pin.getAllAdmin.useQuery({
- status: "ACTIVE",
- limit: 5,
- });
- const utils = trpc.useUtils();
- const rejectPin = trpc.pin.reject.useMutation({
- onSuccess: (output) => {
- utils.pin.getAllAdmin.invalidate();
- utils.modification.getPending.invalidate();
- },
- });
- const approvePin = trpc.pin.approve.useMutation({
- onSuccess: (output) => {
- utils.pin.getAll.invalidate();
- utils.pin.getAllAdmin.invalidate();
- utils.modification.getPending.invalidate();
- },
- });
- const applyMod = trpc.pin.applyUpdate.useMutation({
- onSuccess: (output) => {
- utils.modification.getPending.invalidate();
- utils.pin.getAll.invalidate();
- utils.pin.getAllAdmin.invalidate();
- utils.pin.getStatusCounts.invalidate();
- },
- });
- const rejectMod = trpc.pin.rejectUpdate.useMutation({
- onSuccess: (output) => {
- utils.modification.getPending.invalidate();
- },
- });
-
- const deletePin = trpc.pin.adminDelete.useMutation({
- onSuccess: (output) => {
- utils.pin.getAllAdmin.invalidate();
- },
- });
-
- const [isSidebarOpen, setIsSidebarOpen] = useState(false);
- const { theme, toggleTheme } = useTheme();
- const [activeSection, setActiveSection] = useState("overview");
-
- const [isDeletingPin, setIsDeletingPin] = useState(false);
-
- useEffect(() => {
- const observer = new IntersectionObserver(
- (entries) => {
- entries.forEach((entry) => {
- if (entry.isIntersecting) {
- setActiveSection(entry.target.id);
- }
- });
- },
- {
- root: document.querySelector(".content-area"),
- rootMargin: "-10% 0px -70% 0px",
- },
- );
-
- const sections = document.querySelectorAll(".dashboard-section");
- sections.forEach((section) => {
- observer.observe(section);
- });
-
- return () => observer.disconnect();
- }, []);
-
- const scrollToSection = (sectionId: string) => {
- const element = document.getElementById(sectionId);
- if (element) {
- element.scrollIntoView({ behavior: "smooth", block: "start" });
- setActiveSection(sectionId);
- if (window.innerWidth <= 768) setIsSidebarOpen(false);
- }
- };
-
- const goToMap = () => router.push("/");
-
- const handleSignOut = async () => {
- await signOut();
- router.refresh();
- };
-
- const activePinCount = pinCounts?.ACTIVE || 0;
- const rejectedPinCount = pinCounts?.ARCHIVED || 0;
- const pendingPinCount = pinCounts?.PENDING_VERIFICATION || 0;
- const totalPins = activePinCount + rejectedPinCount + pendingPinCount;
-
- const pinTagCounts = {
- academic: 0,
- food: 0,
- transit: 0,
- utility: 0,
- social: 0,
- };
-
- const globalVerificationRate = useMemo(
- () => Math.round((activePinCount / (totalPins || 1)) * 100) || 0,
- [activePinCount, totalPins],
- );
-
- const globalUserStats = {
- totalUsers: userCount,
- totalComments: commentCount,
- // avgPins: 3.6,
- // avgComments: 5.3,
- // newUsers7Days: 14,
- // newUsers30Days: 45,
- };
-
- return (
-
- {/* --- MOBILE OVERLAY --- */}
- {isSidebarOpen && (
- // biome-ignore lint/a11y/noStaticElementInteractions:
- // biome-ignore lint/a11y/useKeyWithClickEvents:
- setIsSidebarOpen(false)}
- />
- )}
-
- {/* --- SIDEBAR --- */}
-