🚀 UTAS Oman Portal Demo - Complete AI-Enhanced University Portal
✨ Features: • Real AI chatbot with OpenRouter API (bilingual Arabic/English) • Comprehensive UTAS Oman content with programs and admissions • Modern responsive design with Tailwind CSS • Student/Admin authentication and dashboards • Full course catalog with search and filtering • Contact forms and application processes 🤖 AI Capabilities: • Language detection (Arabic/English) • UTAS Oman knowledge base integration • Contextual responses about programs, admissions, scholarships • No mock data - all responses from real AI 🛠️ Technology Stack: • Next.js 14 + React 19 + TypeScript • OpenRouter API with Meta LLaMA 3.1 • Prisma ORM with SQLite • Tailwind CSS for styling 📋 Demo Ready: • Test users file included (TEST-USERS.md) • Navigation test checklist (NAVIGATION-TEST.md) • Clean codebase with proper gitignore • Production-ready configuration
This commit is contained in:
@@ -1,339 +1,124 @@
|
||||
# University Portal - Next Generation AI-Enabled Platform
|
||||
# UTAS Oman University Portal
|
||||
|
||||
A comprehensive proof-of-concept for a modern university portal featuring AI-powered assistance, personalized content, accessibility tools, and mental health support.
|
||||
A modern, bilingual (Arabic/English) university portal for the University of Tasmania's campus in Muscat, Sultanate of Oman. Features an AI-powered chatbot using OpenRouter API for intelligent student assistance.
|
||||
|
||||
## 🚀 Features
|
||||
## 🌟 Features
|
||||
|
||||
### Core Capabilities
|
||||
- **24/7 Conversational Assistant**: Multilingual (EN/AR) GPT-4o powered chatbot
|
||||
- **Personalized Dashboard**: Login-based content with student data and advisor contact
|
||||
- **Accessibility Tools**: Automated WCAG 2.2 compliance checking with AI alt-text generation
|
||||
- **Mental Health Support**: Dedicated wellbeing chat with professional escalation
|
||||
- **Smart Feedback**: Real-time satisfaction surveys with live dashboard analytics
|
||||
- **Multilingual Interface**: Full English/Arabic support with RTL layout
|
||||
### 🤖 AI-Powered Chatbot
|
||||
- **Real AI**: Uses OpenRouter API with Meta LLaMA model
|
||||
- **Bilingual Support**: Automatically detects and responds in Arabic or English
|
||||
- **UTAS Oman Context**: Specialized knowledge about campus, programs, and admissions
|
||||
- **No Mock Data**: All responses generated by real AI
|
||||
|
||||
### Technical Features
|
||||
- **Next.js 14** with React Server Components and Tailwind CSS
|
||||
- **OpenAI Integration** for chat and vision capabilities
|
||||
- **Prisma ORM** with PostgreSQL database
|
||||
- **Supabase Auth** for secure authentication
|
||||
- **Real-time Analytics** with interactive charts
|
||||
- **Mobile-first Responsive Design**
|
||||
### 🎓 Academic Programs
|
||||
- Comprehensive undergraduate and postgraduate program listings
|
||||
- UTAS Oman-specific courses aligned with Oman Vision 2040
|
||||
- Detailed program information, requirements, and career outcomes
|
||||
- Search and filtering capabilities
|
||||
|
||||
## 🏗️ Architecture
|
||||
### 🌐 Bilingual Interface
|
||||
- Arabic and English language support
|
||||
- Cultural appropriateness for Omani students
|
||||
- RTL (Right-to-Left) text support for Arabic
|
||||
|
||||
```
|
||||
university-portal/
|
||||
├── src/
|
||||
│ ├── app/ # Next.js App Router
|
||||
│ │ ├── api/ # API routes
|
||||
│ │ ├── dashboard/ # Student dashboard
|
||||
│ │ ├── accessibility/ # Accessibility tools
|
||||
│ │ ├── wellbeing/ # Mental health support
|
||||
│ │ └── admin/ # Admin dashboard
|
||||
│ └── components/ # React components
|
||||
│ ├── providers/ # Context providers
|
||||
│ ├── ChatWidget.tsx # AI chat interface
|
||||
│ └── GDPRBanner.tsx # Compliance banner
|
||||
├── prisma/ # Database schema & migrations
|
||||
├── public/ # Static assets
|
||||
└── demo-accounts.json # Test account credentials
|
||||
```
|
||||
### 📱 Modern Design
|
||||
- Responsive design for all devices
|
||||
- Clean, professional interface
|
||||
- UTAS Oman branding and colors
|
||||
- Accessibility features
|
||||
|
||||
## 🚀 Quick Start
|
||||
## 🚀 Getting Started
|
||||
|
||||
### Prerequisites
|
||||
- Node.js 18+
|
||||
- Docker & Docker Compose (optional)
|
||||
- Git
|
||||
- Node.js 18+
|
||||
- OpenRouter API key
|
||||
|
||||
### Option 1: Development Setup (Recommended for Demo)
|
||||
```bash
|
||||
# Clone and navigate to project
|
||||
git clone <repository-url>
|
||||
cd university-portal
|
||||
### Installation
|
||||
|
||||
# Install dependencies
|
||||
npm install
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd university-portal
|
||||
```
|
||||
|
||||
# Generate Prisma client
|
||||
npx prisma generate
|
||||
2. **Install dependencies**
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
# Start development server
|
||||
npm run dev
|
||||
```
|
||||
3. **Set up environment variables**
|
||||
```bash
|
||||
cp .env.example .env.local
|
||||
```
|
||||
|
||||
Add your OpenRouter API key to `.env.local`:
|
||||
```
|
||||
OPENROUTER_API_KEY=your_openrouter_api_key_here
|
||||
```
|
||||
|
||||
The application will be available at `http://localhost:3000`
|
||||
4. **Run the development server**
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Option 2: Production with Docker
|
||||
```bash
|
||||
# Run one-click deployment
|
||||
./deploy.sh
|
||||
5. **Open your browser**
|
||||
Navigate to [http://localhost:3000](http://localhost:3000)
|
||||
|
||||
# Or manually with Docker Compose
|
||||
docker-compose up --build
|
||||
```
|
||||
## 🛠️ Technology Stack
|
||||
|
||||
### Demo Accounts
|
||||
- **Student**: `student@university.edu` / `password123`
|
||||
- **Admin**: `admin@university.edu` / `admin123`
|
||||
- **Framework**: Next.js 14+ with React 19
|
||||
- **Styling**: Tailwind CSS
|
||||
- **TypeScript**: Full type safety
|
||||
- **AI Integration**: OpenRouter API
|
||||
- **Database**: Prisma (for future enhancements)
|
||||
|
||||
## 🧪 Testing & Quality Assurance
|
||||
## 🎯 AI Chatbot Features
|
||||
|
||||
### Automated Testing
|
||||
```bash
|
||||
# Run comprehensive test suite
|
||||
./test-suite.sh
|
||||
The AI chatbot is the centerpiece of this portal:
|
||||
|
||||
# Run Lighthouse performance tests
|
||||
./lighthouse-test.sh
|
||||
- **Language Detection**: Automatically detects Arabic or English input
|
||||
- **Contextual Responses**: Uses UTAS Oman knowledge base for relevant information
|
||||
- **OpenRouter Integration**: Powered by Meta LLaMA 3.1 8B model
|
||||
- **Conversation Memory**: Maintains conversation history for context
|
||||
- **Error Handling**: Graceful fallbacks when API is unavailable
|
||||
|
||||
# Manual testing
|
||||
npm run build
|
||||
npm run start
|
||||
```
|
||||
### Testing the Chatbot
|
||||
|
||||
### Test Coverage
|
||||
- ✅ Environment configuration
|
||||
- ✅ TypeScript compilation
|
||||
- ✅ Build process
|
||||
- ✅ API routes structure
|
||||
- ✅ Component availability
|
||||
- ✅ Docker configuration
|
||||
- ✅ Demo data integrity
|
||||
Try these sample queries:
|
||||
|
||||
## 📊 Performance Metrics
|
||||
**English:**
|
||||
- "Tell me about MBA programs"
|
||||
- "What are the admission requirements?"
|
||||
- "How can I apply for scholarships?"
|
||||
|
||||
### Lighthouse Scores (Target)
|
||||
- **Performance**: 90+ (Desktop), 85+ (Mobile)
|
||||
- **Accessibility**: 95+ (WCAG 2.1 AA compliance)
|
||||
- **Best Practices**: 90+
|
||||
- **SEO**: 90+
|
||||
**Arabic:**
|
||||
- "أخبرني عن برامج الماجستير"
|
||||
- "ما هي متطلبات القبول؟"
|
||||
- "كيف يمكنني التقدم للحصول على منح دراسية؟"
|
||||
|
||||
### Key Performance Indicators
|
||||
- First Contentful Paint: < 1.5s
|
||||
- Largest Contentful Paint: < 2.5s
|
||||
- Time to Interactive: < 3.5s
|
||||
- Cumulative Layout Shift: < 0.1
|
||||
## 🏫 About UTAS Oman
|
||||
|
||||
## 🔄 Deployment Status
|
||||
This portal represents the University of Tasmania's campus in Muscat, Sultanate of Oman:
|
||||
|
||||
### ✅ Completed Features
|
||||
1. **Authentication System**
|
||||
- Mock authentication for demo
|
||||
- Role-based access control
|
||||
- Secure session management
|
||||
- **Location**: Knowledge Oasis Muscat
|
||||
- **Programs**: Aligned with Oman Vision 2040
|
||||
- **Quality**: Australian education standards
|
||||
- **Local Relevance**: Designed for Omani students and industry needs
|
||||
|
||||
2. **AI-Powered Chatbot**
|
||||
- Mock OpenAI integration
|
||||
- Multilingual support (EN/AR)
|
||||
- FAQ context awareness
|
||||
- Mental health escalation
|
||||
## 📞 Contact Information
|
||||
|
||||
3. **Accessibility Tools**
|
||||
- Image upload interface
|
||||
- Mock AI alt-text generation
|
||||
- WCAG compliance scoring
|
||||
- Audit history tracking
|
||||
- **Phone**: +968 2414 3555
|
||||
- **Email**: admissions@utas.edu.om
|
||||
- **Address**: Knowledge Oasis Muscat, Sultanate of Oman
|
||||
|
||||
4. **Admin Dashboard**
|
||||
- Real-time KPI visualization
|
||||
- Interactive analytics charts
|
||||
- User activity monitoring
|
||||
- Survey results dashboard
|
||||
## 🤝 Contributing
|
||||
|
||||
5. **Responsive Design**
|
||||
- Mobile-first approach
|
||||
- RTL language support
|
||||
- Cross-browser compatibility
|
||||
- Touch-friendly interface
|
||||
This is a demo project showcasing AI-enhanced university portal capabilities. For improvements or suggestions, please open an issue.
|
||||
|
||||
6. **Security & Privacy**
|
||||
- GDPR compliance
|
||||
- Privacy policy page
|
||||
- Secure headers
|
||||
- Data protection measures
|
||||
## 📄 License
|
||||
|
||||
### 🚀 Production Ready
|
||||
- Docker containerization
|
||||
- Environment configuration
|
||||
- Build optimization
|
||||
- Performance monitoring
|
||||
- Error handling
|
||||
- Logging system
|
||||
|
||||
## 🎯 Demo Script
|
||||
|
||||
For live demonstrations, follow the comprehensive demo script in `DEMO-SCRIPT.md`:
|
||||
|
||||
1. **Landing Page Tour** (3 min)
|
||||
2. **Authentication Demo** (2 min)
|
||||
3. **Student Dashboard** (5 min)
|
||||
4. **AI Chatbot Features** (4 min)
|
||||
5. **Accessibility Tools** (3 min)
|
||||
6. **Mental Health Support** (3 min)
|
||||
7. **Admin Analytics** (4 min)
|
||||
8. **Mobile Experience** (2 min)
|
||||
|
||||
Total demo time: ~25 minutes
|
||||
|
||||
## 🔧 Architecture Highlights
|
||||
|
||||
### Frontend Stack
|
||||
- **Next.js 14**: App Router, Server Components, Streaming
|
||||
- **React 18**: Concurrent features, Suspense
|
||||
- **TypeScript**: Type safety, Developer experience
|
||||
- **Tailwind CSS**: Utility-first, Responsive design
|
||||
|
||||
### Backend Integration
|
||||
- **Prisma ORM**: Type-safe database access
|
||||
- **PostgreSQL**: Robust relational database
|
||||
- **OpenAI API**: AI-powered features
|
||||
- **Supabase**: Authentication & real-time features
|
||||
|
||||
### DevOps & Deployment
|
||||
- **Docker**: Containerized deployment
|
||||
- **Docker Compose**: Multi-service orchestration
|
||||
- **GitHub Actions**: CI/CD pipeline (ready)
|
||||
- **Vercel/AWS**: Production deployment (ready)
|
||||
|
||||
## 🎨 Design System
|
||||
|
||||
### Color Palette
|
||||
- Primary: Blue (#2563eb)
|
||||
- Secondary: Gray (#6b7280)
|
||||
- Success: Green (#10b981)
|
||||
- Warning: Yellow (#f59e0b)
|
||||
- Error: Red (#ef4444)
|
||||
|
||||
### Typography
|
||||
- Headings: Geist Sans (Font weight: 600-700)
|
||||
- Body: Geist Sans (Font weight: 400-500)
|
||||
- Code: Geist Mono (Font weight: 400)
|
||||
|
||||
### Component Library
|
||||
- Buttons: Primary, Secondary, Ghost variants
|
||||
- Forms: Input, Select, Textarea with validation
|
||||
- Cards: Elevated, Outlined, Filled variants
|
||||
- Charts: Line, Bar, Pie, Donut with interactions
|
||||
|
||||
## 📱 Mobile Experience
|
||||
|
||||
### Responsive Breakpoints
|
||||
- Mobile: 320px - 768px
|
||||
- Tablet: 768px - 1024px
|
||||
- Desktop: 1024px+
|
||||
|
||||
### Touch Interactions
|
||||
- Swipe gestures for navigation
|
||||
- Pull-to-refresh functionality
|
||||
- Touch-friendly button sizes (44px minimum)
|
||||
- Haptic feedback support
|
||||
|
||||
### Progressive Web App Features
|
||||
- Service Worker (ready)
|
||||
- Offline capability (ready)
|
||||
- App manifest (ready)
|
||||
- Push notifications (ready)
|
||||
|
||||
## 🌐 Internationalization
|
||||
|
||||
### Supported Languages
|
||||
- English (LTR) - Primary
|
||||
- Arabic (RTL) - Full support
|
||||
|
||||
### Translation Coverage
|
||||
- UI Components: 100%
|
||||
- Content Pages: 100%
|
||||
- Error Messages: 100%
|
||||
- Admin Interface: 100%
|
||||
|
||||
### Cultural Adaptations
|
||||
- Date/time formatting
|
||||
- Number formatting
|
||||
- Currency display
|
||||
- Cultural color preferences
|
||||
|
||||
## 🔐 Security Measures
|
||||
|
||||
### Authentication
|
||||
- JWT token management
|
||||
- Session timeout handling
|
||||
- CSRF protection
|
||||
- XSS prevention
|
||||
|
||||
### Data Protection
|
||||
- Input sanitization
|
||||
- SQL injection prevention
|
||||
- File upload security
|
||||
- API rate limiting
|
||||
|
||||
### Privacy Compliance
|
||||
- GDPR cookie consent
|
||||
- Data retention policies
|
||||
- User data export
|
||||
- Right to be forgotten
|
||||
|
||||
## 📈 Analytics & Monitoring
|
||||
|
||||
### User Analytics
|
||||
- Page views and sessions
|
||||
- User journey tracking
|
||||
- Feature usage metrics
|
||||
- Performance monitoring
|
||||
|
||||
### Business Intelligence
|
||||
- Student engagement rates
|
||||
- Course popularity trends
|
||||
- Support ticket analysis
|
||||
- Satisfaction surveys
|
||||
|
||||
### Technical Monitoring
|
||||
- Error tracking
|
||||
- Performance metrics
|
||||
- API response times
|
||||
- Database query analysis
|
||||
|
||||
## 🎪 Live Demo Features
|
||||
|
||||
### Interactive Elements
|
||||
- Real-time chat responses
|
||||
- Dynamic form validation
|
||||
- Animated transitions
|
||||
- Hover effects and micro-interactions
|
||||
|
||||
### Data Visualization
|
||||
- Interactive charts and graphs
|
||||
- Real-time data updates
|
||||
- Drill-down capabilities
|
||||
- Export functionality
|
||||
|
||||
### Accessibility Features
|
||||
- Screen reader compatibility
|
||||
- Keyboard navigation
|
||||
- High contrast mode
|
||||
- Text scaling support
|
||||
|
||||
## 🚀 Future Enhancements
|
||||
|
||||
### Phase 2 Features
|
||||
- Advanced AI capabilities
|
||||
- Video conferencing integration
|
||||
- Mobile app development
|
||||
- Third-party integrations
|
||||
|
||||
### Scalability Improvements
|
||||
- Microservices architecture
|
||||
- Load balancing
|
||||
- CDN integration
|
||||
- Database sharding
|
||||
|
||||
### Advanced Analytics
|
||||
- Predictive modeling
|
||||
- A/B testing framework
|
||||
- Machine learning insights
|
||||
- Advanced reporting
|
||||
This project is for demonstration purposes.
|
||||
|
||||
---
|
||||
|
||||
**Status**: ✅ Production Ready | **Version**: 1.0.0 | **Last Updated**: December 2024
|
||||
**Built with ❤️ for UTAS Oman students and the future of education in Oman.**
|
||||
|
||||
Reference in New Issue
Block a user