Skip to content

feat(placement-cell): Add full Placement Cell module with role-based UI#222

Open
vikrantwiz02 wants to merge 2 commits intoFusionIIIT:acad-mainfrom
vikrantwiz02:feat(placement)/placement-branch-vikrant
Open

feat(placement-cell): Add full Placement Cell module with role-based UI#222
vikrantwiz02 wants to merge 2 commits intoFusionIIIT:acad-mainfrom
vikrantwiz02:feat(placement)/placement-branch-vikrant

Conversation

@vikrantwiz02
Copy link
Copy Markdown
Member

@vikrantwiz02 vikrantwiz02 commented May 1, 2026

Summary

  • Adds a complete Placement Cell frontend module under src/Modules/PlacementCell/ with role-based tab views for Student, Placement Officer, Placement Chairman, and Dean/Faculty
  • UI is built to match the existing production design system — uses shared ModuleTabs (caret-arrow scrollable tabs) and CustomBreadcrumbs exactly as used in the Academics and Programme Curriculum modules
  • Table styling matches production: blue header (#C5E2F6 / #3498db), alternating row colors (#E6F7FF / #fff), rounded bordered container

Features by role

Student

  • Dashboard: active eligible job cards with deadline badges (red/orange/green), announcements, live CPI card
  • Job Openings: browse and apply; external apply-link support (tracks application in DB and opens external portal)
  • My Applications: color-coded status badges (applied / shortlisted / placed / rejected / withdrawn), withdraw button
  • My Profile: resume URL, LinkedIn, GitHub links; opted-out is one-way (shows permanent alert once set, cannot revert via portal)

Placement Officer

  • Students: batch select → table of students with live published CPI, placement status (On-Campus / Off-Campus / Placed / Not Placed), CPI filter (min/max), Export to XLSX/PDF; per-row Actions menu to mark placed or set opted-out
  • Off-Campus: record and delete off-campus placements (students automatically marked as placed in statistics)
  • Companies: full CRUD for company records
  • Job Posts: create/edit/activate/deactivate job posts; optional CTC/Stipend; optional external apply link; per-job applicant list with bulk status update
  • Announcements: create (with pin option) and delete announcements
  • Statistics: batch-wise live stats — total students, placed, on-campus vs off-campus breakdown, companies visited, avg/highest CTC
  • Export: download placement data as XLSX or PDF

Placement Chairman — Students, Statistics, Export (read + export only)

Dean/Faculty — Statistics, Announcements (read-only)

Other changes

  • src/components/sidebarContent.jsx: fixed sidebar URL from "/" to "/placement-cell"
  • src/routes/placementRoutes/index.jsx: all API route constants
  • src/App.jsx: registered /placement-cell route

Test plan

  • Login as student → verify Dashboard, Job Openings, My Applications, My Profile tabs appear with caret arrows
  • Login as placement officer → verify all 7 tabs appear; create a job post; apply as student; update status in Applicants
  • Add an off-campus placement → verify student appears as "Off-Campus" in Students tab
  • Set opted-out as student → verify it cannot be reverted via the portal
  • Apply via external link → verify application is tracked in DB and external URL opens
  • Statistics tab → select a batch → verify live counts appear
  • Login as dean → verify only Statistics and Announcements tabs appear

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.

1 participant