Skip to content

Prajyot#11

Merged
Prajyot05 merged 14 commits into
stagingfrom
prajyot
Jun 7, 2026
Merged

Prajyot#11
Prajyot05 merged 14 commits into
stagingfrom
prajyot

Conversation

@Prajyot05

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings June 7, 2026 17:36
@vercel

vercel Bot commented Jun 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
developer-collaboration Building Building Preview, Comment Jun 7, 2026 5:36pm

@Prajyot05 Prajyot05 merged commit a75a660 into staging Jun 7, 2026
1 of 2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR significantly expands the app’s product surface by introducing a dark-mode design system (CSS variables + Tailwind extensions), adding new backend models/routes for collaboration features (join requests, notifications, project updates, hackathons, feedback, leaderboard), and modernizing multiple UI pages to consume those APIs.

Changes:

  • Added a theme system (CSS variables, Tailwind theme extensions, dark-mode class strategy) and refreshed many pages to use the new theme-aware styles.
  • Introduced new Mongoose models + API routes for notifications, join requests, project updates/comments, hackathons, feedback, applications, and leaderboard.
  • Updated auth/session handling and routing (NextAuth session callback, middleware-based route protection, / redirect), plus added Sonner-based toasts across the UI.

Reviewed changes

Copilot reviewed 91 out of 93 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
tailwind.config.ts Enables class-based dark mode and extends theme tokens (fonts/colors/shadows/animations).
package.json Adds sonner for toast notifications.
package-lock.json Locks sonner dependency and its metadata.
next.config.ts Adds root redirect to /project and restricts allowed image hosts.
middleware.ts Adds cookie-based auth gate for selected private routes.
app/utils/userActions.ts Server action for fetching authenticated user data.
app/types/user.ts Updates User type to use collegeDetails instead of instituteName.
app/types/projects.ts Adds typed Project/ProjectOwner interfaces for project pages.
app/store/useThemeStore.ts Adds Zustand store to toggle dark mode via documentElement.classList.
app/store/useSettingsStore.ts Adds persisted Zustand store for user settings toggles.
app/models/User.ts Updates projectIds to ObjectId refs instead of strings.
app/models/ProjectUpdate.ts Adds model for project updates with comment references.
app/models/Projects.ts Adds hackathon reference on projects and timestamps-based expiration logic.
app/models/Notification.ts Adds notification model for user/system/project events.
app/models/JoinRequest.ts Adds join request model (replacing misspelled legacy file).
app/models/JionRequest.ts Removes legacy misspelled join request model file.
app/models/Hackathon.ts Adds hackathon model for community-submitted events.
app/models/Feedback.ts Adds feedback model tied to the authenticated user.
app/models/Comment.ts Adds comment model for project update discussions.
app/lib/cloudinary.ts Moves Cloudinary config from hard-coded secrets to environment variables.
app/layout.tsx Adds Inter font, updates metadata, and switches body to theme-based classes.
app/globals.css Introduces CSS-variable design system + theme-aware utility classes and animations.
app/components/Sidebar.tsx Removes old sidebar implementation (migrating UI structure elsewhere).
app/components/ProfileCard.tsx Removes old profile card component (replaced under (root)/components).
app/components/Nav/SignOutButton.tsx Removes old sign-out button implementation.
app/components/Nav/SignInButton.tsx Removes old sign-in button implementation.
app/components/Nav/ProfileButton.tsx Removes old profile button implementation.
app/components/EditProfile.tsx Removes old edit profile implementation (replaced under (root)/components).
app/components/Badge.tsx Removes old badge component (replaced under (root)/components).
app/components/AchievementsCard.tsx Removes old achievements card (replaced under (root)/components).
app/auth.ts Adds NextAuth session callback to include session.user.id.
app/api/user/[id]/route.ts Adds auth + ownership checks and expands allowed update fields.
app/api/update/[update_id]/comment/route.ts Adds endpoint to create comments for a project update.
app/api/project/user_id/[user_id]/route.ts Secures project creation endpoint and switches to JSON body creation flow.
app/api/project/project_id/[project_id]/route.ts Secures and expands project fetch to populate owner/team.
app/api/project/[project_id]/updates/route.ts Adds endpoint to fetch project updates with populated nested comments.
app/api/project/[project_id]/update/route.ts Adds endpoint for project owners to post new updates.
app/api/notifications/route.ts Adds list + mark-as-read endpoints for user notifications.
app/api/notifications/[id]/route.ts Adds endpoint to fetch a single notification by ID (scoped to user).
app/api/list/request/[project_id]/route.ts Adds secured endpoint to list join requests for a project (owner-only).
app/api/list/all/route.ts Adds secured project listing with domain/search/institute filters.
app/api/linkage/request/[user_id]/[project_id]/route.ts Renames join-request model import (but route still exists).
app/api/linkage/reject/[request_id]/route.ts Adds endpoint for project owners to reject a join request.
app/api/linkage/leave/[user_id]/[project_id]/route.ts Fixes missing await on project save when leaving.
app/api/linkage/join/[user_id]/[project_id]/route.ts Changes semantics to “send join request” with auth + optional attachment.
app/api/linkage/accept/[request_id]/route.ts Adds endpoint for project owners to accept join request + add to team.
app/api/leaderboard/route.ts Adds leaderboard endpoint (top users by score).
app/api/hackathons/route.ts Adds hackathons list + submit endpoints.
app/api/feedback/route.ts Adds feedback submission endpoint.
app/api/applications/route.ts Adds endpoint to list the current user’s join requests (“applications”).
app/actions/requestActions.ts Adds server action to fetch join requests for a project.
app/(root)/TabsComponent2.tsx Restyles MUI tabs and improves a11y IDs.
app/(root)/TableComponent.tsx Replaces dummy data with empty state rendering.
app/(root)/settings/page.tsx Rebuilds settings UI using Zustand stores + glass-card theme styling.
app/(root)/qna/page.tsx Rebuilds QnA UI with search + animated expand/collapse and theme styles.
app/(root)/project/page.tsx Wraps sidebar/project list in Suspense and applies theme background.
app/(root)/project/[id]/requests/page.tsx Adds UI for owners to view/accept/reject join requests.
app/(root)/project/[id]/ProjectUpdates.tsx Adds UI to view/post project updates and comments (Sonner toasts).
app/(root)/project/[id]/page.tsx Applies theme layout styling to project detail page shell.
app/(root)/project/[id]/Detail.tsx Rebuilds project detail UI and integrates updates + request-management link.
app/(root)/profile/page.tsx Migrates profile page to new themed components + collegeDetails structure.
app/(root)/page.tsx Rebuilds landing page as client-side, themed hero with search routing.
app/(root)/notification/page.tsx Implements notifications list UI backed by /api/notifications.
app/(root)/notification/[id]/page.tsx Implements notification details page backed by /api/notifications/[id].
app/(root)/leaderboard/page.tsx Implements leaderboard UI backed by /api/leaderboard.
app/(root)/leaderboard/layout.tsx Rebuilds leaderboard tab UI with theme styles and animations.
app/(root)/leaderboard/c/page.tsx Updates hard-coded leaderboard C-rank sample data.
app/(root)/home/page.tsx Adds a separate themed home page (similar hero/search as root page).
app/(root)/help/page.tsx Rebuilds help/FAQ page with search + animated expand/collapse and theme styles.
app/(root)/hackathons/submit/page.tsx Adds modal-style hackathon submission UI backed by /api/hackathons.
app/(root)/hackathons/page.tsx Adds hackathons browsing UI backed by /api/hackathons.
app/(root)/feedback/page.tsx Adds feedback submission UI backed by /api/feedback.
app/(root)/dashboard/page.tsx Rebuilds dashboard UI; tabs now show announcements + projects.
app/(root)/dashboard/AnnouncementsList.tsx Adds announcements view derived from notifications API.
app/(root)/components/SignOutButton.tsx Adds session-aware themed sign-out button.
app/(root)/components/SignInButton.tsx Adds session-aware themed sign-in button with callback URL.
app/(root)/components/Signature.tsx Restyles signature upload UI with theme-aware components.
app/(root)/components/ProfileCard.tsx Adds new themed profile card using collegeDetails and skill chips.
app/(root)/components/OnboardingModal.tsx Adds onboarding modal to collect basic profile info and persist it.
app/(root)/components/Hero.tsx Adds animated hero visual component + custom CSS file.
app/(root)/components/hero.css Adds custom hero animation CSS.
app/(root)/components/EditProfile.tsx Adds new themed edit profile form wired to /api/user/[id].
app/(root)/components/Badge.tsx Adds new themed badge component.
app/(root)/components/AchievementsCard.tsx Adds new themed achievements card (currently static placeholders).
app/(root)/application/page.tsx Rebuilds applications status UI backed by /api/applications.
app/(root)/application/ApplicationsList.tsx Implements filtered applications list UI.
Comments suppressed due to low confidence (1)

app/api/user/[id]/route.ts:47

  • This console.log will emit user IDs to server logs on every profile update request. It’s noisy and can leak identifiers in logs; please remove it.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +32 to +35
link: { type: String },
read: { type: Boolean, default: false },
relatedProject: { type: Schema.Types.ObjectId, ref: "Projects" },
relatedUser: { type: Schema.Types.ObjectId, ref: "User" },
Comment on lines +22 to +27
try {
// NOTE: The API path '/api/join-requests/' is inferred from your model name "JoinRequest".
// Please adjust this path if your actual API route is different.
const { data: requests } = await axios.get(
`${process.env.NEXT_PUBLIC_CLIENT_URL}/api/list/requests/${projectId}`
);
Comment thread app/api/list/all/route.ts
Comment on lines +23 to +26
if (domains) {
const domainList = domains.split(",");
// Allow case insensitive matching
query.domains = { $in: domainList.map(d => new RegExp(`^${d}$`, "i")) };
Comment thread app/api/list/all/route.ts
query.instituteName = { $regex: institute, $options: "i" };
}

const list = (await Projects.find(query).select("-team -owner")).reverse();
Comment thread app/utils/userActions.ts
Comment on lines 9 to 13
const { data: user } = await axios.get(
`${process.env.NEXT_PUBLIC_CLIENT_URL}/api/user/${session.user.id}`
);
console.log("USER: ", user);
return user;
Comment on lines +27 to +29
const body = await req.json();
const { content } = body;

Comment on lines +21 to +24
const [textEditing, setTextEditing] = useState<boolean>(false);

console.log("", textEditing);

Comment on lines 2 to 6
import { connectDB } from "@/app/lib/db";
import Projects from "@/app/models/Projects";
import User from "@/app/models/User";
import JionRequest from "@/app/models/JionRequest";
import JoinRequest from "@/app/models/JoinRequest";
//request to join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants