A comprehensive feedback management system built with Next.js for educational institutions to collect, manage, and analyze feedback from students, faculty, and guests.
- Overview
- Features
- Tech Stack
- Project Structure
- Getting Started
- User Roles
- Database Schema
- API Routes
- Contributing
- License
This feedback system allows educational institutions to efficiently collect and analyze feedback from students about faculty, curriculum, and guest lectures. It features role-based access control, analytics dashboards, and export capabilities.
- Role-based access for students, faculty, coordinators, and administrators
- Faculty feedback collection and analysis
- Curriculum feedback from both students and faculty
- Guest lecture feedback collection
- Analytics dashboards with visual representations
- Export functionality for feedback data to CSV
- Mobile-responsive design
- Frontend: Next.js 14, React, TailwindCSS
- Backend: Next.js API Routes, Server Actions
- Database: SQLite (Prisma ORM)
- Authentication: NextAuth.js
- Visualizations: Recharts
- Styling: TailwindCSS
- Animations: GSAP
src/
├── app/ # Next.js App Router files
│ ├── admin/ # Admin dashboard and features
│ ├── api/ # API routes and authentication
│ ├── components/ # Shared components
│ ├── coordinator/ # Coordinator dashboard and features
│ │ ├── actions/ # Server actions for coordinators
│ │ └── components/ # Coordinator-specific components
│ ├── faculty/ # Faculty dashboard and features
│ │ ├── actions/ # Server actions for faculty
│ │ └── components/ # Faculty-specific components
│ ├── guest/ # Guest feedback pages
│ ├── student/ # Student dashboard and features
│ │ ├── actions/ # Server actions for students
│ │ ├── curriculum-feedback/ # Curriculum feedback pages
│ │ ├── faculty-feedback/ # Faculty feedback pages
│ │ └── guest-feedback/ # Guest feedback pages
│ └── team/ # Team information page
├── prisma/ # Prisma schema and migrations
└── public/ # Static assets
- Node.js 18.x or higher
- npm, yarn, or pnpm package manager
- Git
-
Clone the repository:
git clone https://github.com/yourusername/feedback-pbl.git cd feedback-pbl -
Install dependencies:
npm install # or yarn install # or pnpm install
-
Set up the database:
npx prisma migrate dev
Create a .env file in the root directory and add the following variables:
# Database
DATABASE_URL="file:./dev.db"
# Google Auth
GOOGLE_CLIENT_ID="your-client-id"
GOOGLE_CLIENT_SECRET="your-secret-key"
# NextAuth
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL=http://localhost:3000/
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the application.
- Submit feedback for faculty and subjects
- Submit curriculum feedback
- Submit guest lecture feedback
- View submission status
- View feedback analytics for their courses
- Access additional text feedback
- Submit curriculum feedback
- View overall performance metrics
- Download reports for faculty feedback
- Download reports for curriculum feedback
- Manage students and faculty
- View branch-specific analytics
- Export data as CSV files
- Manage all users
- Upload subject and specialization data
- Configure system settings
- Access all feedback data
- Submit curriculum feedback
The main entities in the database include:
- User: Base user information
- Student: Student-specific data
- Faculty: Faculty-specific data
- Subject: Course information
- Faculty_Subject: Many-to-many relationship between faculty and subjects
- Feedback: Individual feedback entries
- Feedback_Name: Types of feedback (Faculty, Curriculum, Guest)
- Questions: Questions for different feedback types
- Remarks: Additional text feedback
The application uses Next.js API routes for authentication and server actions for data operations:
/api/auth/[...nextauth]: Authentication endpoints/api/auth/logout: Logout endpoint
The application uses Next.js middleware for:
- Route protection based on user roles
- Authentication verification
- Redirecting unauthenticated users
- Access control for different sections of the application
Server actions are organized by role:
- Student actions: Submitting feedback, checking submission status
- Faculty actions: Getting analytics, submitting curriculum feedback
- Coordinator actions: Generating reports, managing users
- Admin actions: System configuration
The application can be deployed using Vercel or any other Next.js compatible hosting:
npm run build
# or
yarn buildFor production deployment, use:
npm run start
# or
yarn start- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- The ideation for this project was done by Dr. Deepali Vora, Head CS IT, Symbiosis Institute of Technology, Pune.
- This project was built under the mentorship of Dr.Sonali Kothari, Department of Computer Science and Engineering, Pune.
- This project was developed by Ankush Dutta, Mitiksha Paliwal, and Tanvee Patil from the Department of Computer Science and Engineering at Symbiosis Institute of Technology, Pune.