A comprehensive teacher management system built with Next.js, TypeScript, and Tailwind CSS. This application provides a complete solution for managing teachers, students, lessons, and administrative tasks in an educational institution.
- Teacher Management: Complete teacher profiles with qualifications, schedules, and performance tracking
- Student Management: Student enrollment, progress tracking, and academic records
- Lesson Scheduling: Advanced lesson scheduling with conflict detection and recurring patterns
- Payment System: Integrated UPI payment system for salary and course payments
- User Management: Role-based access control with admin, teacher, and staff roles
- Reports & Analytics: Comprehensive reporting with Excel export functionality
- Modern Design: Clean, responsive interface built with Tailwind CSS
- Dark/Light Mode: Theme switching with system preference detection
- Mobile Responsive: Optimized for all device sizes
- Accessibility: WCAG AA compliant with proper ARIA labels and keyboard navigation
- TypeScript: Full type safety throughout the application
- Form Validation: Robust form validation using React Hook Form and Zod
- State Management: Efficient state management with SWR for data fetching
- Testing: Comprehensive test suite with Jest and React Testing Library
- Performance: Optimized with Next.js App Router and server components
Before you begin, ensure you have the following installed:
- Node.js (version 18.0 or higher)
- npm or yarn package manager
- Git
```bash git clone https://github.com/HarshDeo7543/Teacher-Portal cd teacher-management-portal ```
```bash npm install
yarn install ```
Create a .env.local file in the root directory:
```env
DATABASE_URL="your_database_url"
NEXTAUTH_SECRET="your_secret_key" NEXTAUTH_URL="http://localhost:3000"
UPI_API_KEY="your_upi_api_key" PAYMENT_GATEWAY_SECRET="your_payment_secret" ```
```bash npm run dev
yarn dev ```
Open http://localhost:3000 in your browser to see the application.
```bash npm run build npm start
yarn build yarn start ```
- Profile Management: Comprehensive teacher profiles with personal and professional information
- Qualification Tracking: Multiple qualification types (private and group)
- Schedule Management: Time slot management with availability tracking
- Performance Analytics: Student feedback and lesson completion rates
- Enrollment System: Complete student onboarding with parent/guardian information
- Academic Tracking: Subject enrollment and progress monitoring
- Communication: Direct communication channels with teachers and parents
- Smart Scheduling: Conflict detection and availability checking
- Recurring Lessons: Support for weekly, bi-weekly, and monthly recurring patterns
- Resource Management: Room and equipment allocation
- Status Tracking: Real-time lesson status updates
- UPI Integration: Native UPI payment support for Indian market
- Salary Management: Automated teacher salary processing
- Course Payments: Student fee collection and tracking
- Transaction History: Comprehensive payment audit trail
- Role-Based Access: Admin, teacher, and staff role permissions
- Profile Management: User profile customization and settings
- Authentication: Secure login and session management
- Campus Assignment: Multi-campus support with location-based access
- Excel Export: Comprehensive data export functionality
- Performance Metrics: Teacher and student performance analytics
- Financial Reports: Revenue and payment tracking
- Custom Reports: Configurable report generation
- Next.js App Router: Chosen for its performance benefits and modern React patterns
- TypeScript: Ensures type safety and better developer experience
- Tailwind CSS: Provides utility-first styling with excellent customization
- shadcn/ui: Offers high-quality, accessible components with consistent design
- SWR: Used for server state management with automatic revalidation
- React Hook Form: Handles form state with excellent performance
- Zod: Provides runtime type validation for forms and API responses
- Server Components: Leverages Next.js server components for better performance
- Client Components: Used only when necessary for interactivity
- API Routes: RESTful API design with proper error handling
- Component-Based: Each component is self-contained with its own styles
- Responsive Design: Mobile-first approach with breakpoint-based layouts
- Theme System: Consistent color palette and spacing using CSS variables
The project uses a custom Tailwind configuration with:
- Custom color palette for the education theme
- Extended spacing and typography scales
- Component-specific utilities
- Dark mode support
Strict TypeScript configuration with:
- Strict null checks
- No implicit any
- Path mapping for clean imports
- Comprehensive type definitions
Jest and React Testing Library setup with:
- Component testing utilities
- Mock implementations for external dependencies
- Coverage reporting
- Snapshot testing for UI components
The application is specifically designed for the Indian education market:
- Names: All sample data uses authentic Indian names
- Locations: Indian cities (New Delhi, Mumbai, Bengaluru, Chennai, etc.)
- Currency: Indian Rupees (βΉ) for all financial transactions
- Phone Numbers: Indian mobile number format (+91)
- UPI Integration: Native support for Indian payment systems
- New Delhi Main Campus
- Mumbai West Campus
- Bengaluru Tech Campus
- Chennai South Campus
- Hyderabad Central Campus
- Kolkata East Campus
- Pune North Campus
- Ahmedabad Campus
- Secure password hashing (when implementing real auth)
- Session management with proper expiration
- Role-based access control
- CSRF protection
- Input validation and sanitization
- SQL injection prevention
- XSS protection
- Secure API endpoints
- GDPR compliance considerations
- Data encryption for sensitive information
- Audit logging for administrative actions
- User consent management
```bash npm install -g vercel vercel ```
```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"] ```
```env NODE_ENV=production DATABASE_URL=your_production_database_url NEXTAUTH_SECRET=your_production_secret NEXTAUTH_URL=https://your-domain.com ```
```bash npm run test
yarn test ```
```bash npm run test:coverage
yarn test:coverage ```
- Unit Tests: Individual component and function testing
- Integration Tests: Feature-level testing
- E2E Tests: Full user journey testing (when implemented)
- Image optimization with next/image
- Automatic code splitting
- Server-side rendering where appropriate
- Static generation for public pages
- Tree shaking for unused code elimination
- Dynamic imports for code splitting
- Optimized dependencies
- Compression and minification
- Memoization of expensive calculations
- Efficient re-rendering with React.memo
- Optimized state updates
- Lazy loading of non-critical components
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use ESLint and Prettier for code formatting
- Write comprehensive tests for new features
- Update documentation for significant changes
``` feat: add new feature fix: bug fix docs: documentation update style: formatting changes refactor: code refactoring test: add or update tests chore: maintenance tasks ```
- Teachers can have multiple qualifications and subjects
- Students can be enrolled in multiple subjects simultaneously
- Lessons are scheduled in fixed time slots
- Payment processing is handled externally (UPI gateway)
- Users have basic computer literacy
- Internet connectivity is generally stable
- Mobile usage is common (responsive design priority)
- Multiple users may access the system simultaneously
- Academic year follows standard Indian education calendar
- Payment cycles are monthly for salaries
- Course fees are collected per semester/term
- Teachers can update their own availability
- Modern browser support (ES2020+)
- JavaScript enabled in browsers
- Local storage available for user preferences
- API responses are in JSON format
- System designed for medium-scale institutions (100-1000 users)
- Database can handle concurrent read/write operations
- File uploads are limited to reasonable sizes
- Caching strategies implemented for frequently accessed data
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review existing issues for solutions
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js for the amazing React framework
- Tailwind CSS for the utility-first CSS framework
- shadcn/ui for the beautiful component library
- Lucide React for the icon library
- React Hook Form for form management
- SWR for data fetching
- Zod for schema validation
Built with β€οΈ by Harsh Deo for the Indian education system