A web application for students of FAST-NUCES Islamabad to anonymously browse, search, and review faculty members. All reviews are completely anonymous and cannot be traced back to individual users.
- Faculty Directory — Browse 240+ faculty members across 9 departments. Each card displays the faculty member's photo, name, department, office location, and current star rating.
- Search & Filter — Search faculty by name in real time and filter by department using the dropdown.
- Pagination — Browse results in pages of 12, 24, or 48 faculty per page.
- HOD Badge — Heads of Department are highlighted with a "HOD" badge on their card.
- Faculty Profile Modal — Click any faculty card to open a detailed profile showing their school, office, email address, a link to their official university profile page, an anonymous review form, and all existing reviews.
- Anonymous Reviews — Submit a star rating (1–5) and an optional written comment (up to 500 characters). Reviews cannot be edited, deleted, or traced back to the submitter.
- Review Sorting — Sort reviews for a faculty member by most recent, highest rated, or lowest rated.
- Leaderboard — A dedicated page showing the top 10 highest-rated faculty, a department rankings bar chart, a rating distribution pie chart, and site-wide stats (total reviews, average rating, number of rated faculty, total departments).
- Recent Reviews Bell — A notification button in the header lets you quickly see the latest reviews posted across all faculty.
- Dark / Light Mode — Toggle between dark and light themes using the sun/moon button in the header.
- Mobile Responsive — On mobile, faculty can be browsed in a swipeable carousel view or a compact list view. A hamburger menu consolidates navigation options.
- Admin Panel — Authenticated admins can access a protected admin panel to manage faculty data.
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite |
| UI Components | shadcn/ui, Radix UI primitives |
| Styling | Tailwind CSS |
| Backend / Database | Supabase (PostgreSQL + Auth) |
| Data Fetching | TanStack React Query |
| Charts | Recharts |
| Routing | React Router v6 |
- Node.js (v18 or later)
- npm
# 1. Clone the repository
git clone https://github.com/ammarasad2005/faculty-review
# 2. Navigate into the project directory
cd faculty-review
# 3. Install dependencies
npm install
# 4. Start the development server
npm run devThe app will be available at http://localhost:8080.
npm run buildnpm testsrc/
├── components/ # Reusable UI components (Header, FacultyCard, ReviewForm, etc.)
├── contexts/ # React context providers (AuthContext)
├── hooks/ # Custom hooks for data fetching (useFacultyData, useReviews)
├── integrations/ # Supabase client setup
├── pages/ # Top-level page components (Index, Leaderboard, NotFound)
└── types/ # TypeScript type definitions


