A modern, responsive Enterprise Resource Planning (ERP) web application frontend for educational institutions built with React, TypeScript, Material UI (MUI v5), and Framer Motion.
✨ Modern Design
- Clean, professional, and visually appealing interface
- Soft shadows, rounded corners, smooth transitions, and subtle animations
- Production-ready UI components with Material Design principles
💬 AI Chat Assistant
- ChatGPT-style messaging interface with real-time interactions
- Message bubbles with timestamps and smooth animations
- User messages appear right-aligned, assistant messages left-aligned
- Typing indicator animation when generating responses
- Scrollable chat window with auto-scroll to latest message
- Enter key submission (Shift+Enter for new line)
🎨 Theme Support
- Light and dark theme toggle
- Persistent theme preference using localStorage
- Smooth theme transitions
🍃 Responsive Design
- Mobile-first approach
- Fully responsive across all device sizes
- Collapsible sidebar for mobile devices
- Optimized touch interactions
🧩 Component Architecture
- Reusable, well-organized components
- Custom hooks for theme and chat functionality
- Context API for state management
- Type-safe with TypeScript
📱 Sidebar Navigation
- Collapsible navigation menu for mobile devices
- Menu items: Dashboard, Students, Teachers, Attendance, Grades, Reports, Chat Assistant
- Active route highlighting with smooth indicator animation
- Logo and branding in sidebar header
⚡ Animations
- Framer Motion for smooth page transitions
- Message bubble entrance animations
- Button hover scaling effects
- Sidebar slide-in animations
- Typing indicator pulse effect
- Page entrance effects
- Frontend Framework: React 18 with TypeScript
- UI Library: Material UI (MUI) v5
- Animation Library: Framer Motion
- Routing: React Router v6
- Styling: Emotion (built-in with Material UI)
- Build Tool: Vite 5
- HTTP Client: Axios
- Node.js (v16 or higher)
- npm or yarn package manager
- Navigate to the project directory:
cd "ERP APP"- Install dependencies:
npm installStart the development server:
npm run devThe application will open automatically in your default browser at http://localhost:5173.
Build the application for production:
npm run buildPreview the production build:
npm run previewsrc/
├── components/
│ ├── chat/ # Chat-related components
│ │ ├── ChatPage.tsx # Main chat page
│ │ ├── ChatWindow.tsx # Message list container
│ │ ├── ChatInput.tsx # Input field with send button
│ │ ├── MessageBubble.tsx # Individual message component
│ │ └── TypingIndicator.tsx # Typing animation
│ ├── layout/ # Layout components
│ │ ├── MainLayout.tsx # Main layout wrapper
│ │ ├── Header.tsx # Top navigation bar
│ │ └── Sidebar.tsx # Side navigation menu
│ └── PlaceholderPage.tsx # Placeholder for other pages
├── context/ # Context providers
│ ├── ThemeContext.tsx # Theme management
│ └── ChatContext.tsx # Chat state management
├── theme/ # Theme configuration
│ └── theme.ts # Material UI theme setup
├── types/ # TypeScript type definitions
│ └── index.ts # Custom interfaces
├── App.tsx # Main application component
├── main.tsx # Entry point
└── index.css # Global styles
Wraps all pages with header and sidebar navigation. Handles sidebar toggle for mobile devices.
Top navigation bar with:
- Application branding
- Theme toggle (light/dark mode)
- User profile menu with settings and logout
Navigation menu with:
- Logo and branding
- Menu items with icons
- Active route highlighting
- Collapsible on mobile devices
- Footer with copyright
Full-featured chat interface with:
- Message list with auto-scroll
- Input field with send button
- Typing indicator animation
- Empty state display
Individual message component with:
- Different styling for user vs assistant messages
- Timestamps
- Entrance animations
- Hover effects
Edit src/theme/theme.ts to customize colors:
- Primary color (default: #6366f1 - Indigo)
- Secondary color (default: #ec4899 - Pink)
- Dark mode colors
Modify src/components/chat/ChatPage.tsx to:
- Connect to a real API/AI service
- Implement custom response logic
- Add real-time chat features
Edit the menuItems array in src/components/layout/Sidebar.tsx to:
- Add or remove menu items
- Change labels and icons
- Update navigation routes
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Code splitting with React Router lazy loading
- Optimized animations with GPU acceleration
- Efficient re-renders with React best practices
- Responsive images and optimized assets
- Smooth scrolling and transitions
- Semantic HTML structure
- ARIA labels and roles where applicable
- Keyboard navigation support
- Focus visible indicators
- Color contrast compliance (WCAG AA standard)
- Integration with real AI Chat API
- Student and teacher management modules
- Attendance tracking system
- Grade management system
- Advanced reporting features
- Real-time notifications
- File upload and sharing
- Multi-language support
This project is open source and available under the MIT License.
For issues, questions, or suggestions, please create an issue or reach out to the development team.
Built with ❤️ for educational institutions