Skip to content

feat: Create Page to Display Current Tenure (POR Holders) #116

@harshitap1305

Description

@harshitap1305

Description

This feature introduces a new public-facing page where all users can view the list of current student representatives holding Positions of Responsibility (PORs). The page will be structured to clearly display who holds which position within each club, council, and committee. This will improve transparency and make it easy for students to identify and contact the current office-bearers.


Key Features

  • Group by Organization: The primary view should not be a flat list. Instead, it should group all position holders by their OrganizationalUnit (e.g., a card for "Coding Club" listing all its members, a card for "Cultural Council", etc.).
  • Hierarchical View (Optional but Recommended): To improve navigation, the page could display top-level Councils first, with the Clubs and Committees that fall under them nested accordingly.
  • POR Holder Card: Each person listed should have a "card" displaying key information:
    • Profile Picture (user.personal_info.profilePic)
    • Full Name (user.personal_info.name)
    • Position Title (position.title)
  • Search and Filter: The page must include a search bar to allow users to quickly find a specific student or organization.

Acceptance Criteria (Task Checklist)

Backend

  • Create the GET /api/por/current endpoint.
  • Implement the query to fetch all active PositionHolders.
  • Use nested Mongoose populate to fetch related user, position, and unit details.
  • Structure the API response by grouping holders by their organizational unit.

Frontend

  • Create the new page to display the tenure information.
  • Fetch and display the data in a grouped-by-organization format.
  • Implement the individual card UI for each position holder.
  • Add a functional search/filter bar.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions