✨ Major Features Added: - AI Chat with conversation memory and university-specific knowledge base - Multi-tenant university support with white-label capabilities - Professional admin interface for knowledge base management - Advanced database schema with Prisma ORM - Comprehensive documentation and guides - Modern Next.js 15 + React 19 architecture - Bilingual support (English/Arabic) - Role-based access control - Real-time chat interface with loading states 🔧 Technical Improvements: - Fixed all linter errors and TypeScript issues - Cleaned up codebase and removed legacy files - Added comprehensive .gitignore - Updated README with detailed setup instructions - Optimized database schema and migrations - Enhanced error handling and user experience 📚 Documentation: - AI Conversation Memory Guide - AI Enhancement Summary - Developer Guide - User Guide - Complete setup and deployment instructions 🚀 Ready for GitHub deployment and production use!
8.5 KiB
8.5 KiB
University Portal - Production Platform
A comprehensive, production-ready university portal platform with authentication, course management, and AI integration.
🚀 Features
Core Platform
- Multi-tenant Architecture: Support for multiple universities
- Authentication System: Secure login/registration with JWT tokens
- Role-based Access: Student, Staff, Admin, and Super Admin roles
- Database Management: Prisma ORM with SQLite/PostgreSQL support
- Responsive Design: Modern UI with Tailwind CSS
Academic Management
- Programs & Majors: Structured academic programs with course relationships
- Course Management: Detailed course information with prerequisites
- Student Dashboard: Personalized student experience with enrollment tracking
- Admissions System: Streamlined application process
- Scholarship Management: Scholarship listings and applications
AI Integration
- Ollama AI Chat: Local AI assistant for university information
- Knowledge Base: University-specific AI responses
- Pre-login Support: AI assistance available before authentication
Production Features
- Environment Configuration: Flexible environment setup
- Database Migrations: Automated schema management
- Process Management: PM2 integration for production
- Nginx Configuration: Reverse proxy setup
- SSL Support: Let's Encrypt integration
- Backup System: Automated database backups
- Monitoring: Log management and health checks
📋 Prerequisites
- Node.js 18+
- npm or yarn
- Git
- (Optional) PM2 for process management
- (Optional) Nginx for reverse proxy
- (Optional) Ollama for AI features
🛠️ Installation
1. Clone and Setup
git clone <repository-url>
cd university-portal
npm install
2. Environment Configuration
Create .env.local file:
# Database
DATABASE_URL="file:./dev.db"
# Authentication
JWT_SECRET="your-super-secret-jwt-key"
# Ollama AI Configuration
OLLAMA_HOST="http://localhost:11434"
OLLAMA_MODEL="llama2"
# Application
NODE_ENV="development"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
3. Database Setup
# Generate Prisma client
npx prisma generate
# Run migrations
npx prisma migrate dev
# Seed database with sample data
npx prisma db seed
4. Start Development Server
npm run dev
Access the application at: http://localhost:3000
🚀 Production Deployment
Automated Deployment
Use the provided deployment script:
chmod +x scripts/deploy-production.sh
./scripts/deploy-production.sh
Manual Deployment
-
Build the Application
npm ci --only=production npm run build -
Database Setup
npx prisma migrate deploy npx prisma generate -
Process Management with PM2
npm install -g pm2 pm2 start ecosystem.config.js pm2 save pm2 startup -
Nginx Configuration
sudo cp nginx.conf /etc/nginx/sites-available/university-portal sudo ln -s /etc/nginx/sites-available/university-portal /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx -
SSL Certificate
sudo certbot --nginx -d your-domain.com
🗄️ Database Schema
Core Models
- University: Multi-tenant university configuration
- User: Authentication and user management
- AcademicProgram: Majors and degree programs
- Course: Individual courses with prerequisites
- Enrollment: Student course enrollments
- UniversityContent: Dynamic content management
Relationships
University (1) ←→ (N) AcademicProgram
University (1) ←→ (N) User
University (1) ←→ (N) Course
AcademicProgram (1) ←→ (N) Course
User (1) ←→ (N) Enrollment
Course (1) ←→ (N) Enrollment
🔐 Authentication System
User Roles
- STUDENT: Access to courses, dashboard, and student services
- STAFF: Faculty and administrative access
- ADMIN: University-level administration
- SUPER_ADMIN: System-wide administration
API Endpoints
POST /api/auth/login- User loginPOST /api/auth/register- User registrationPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
Security Features
- JWT token-based authentication
- Password hashing with bcrypt
- Session management
- Role-based access control
- CSRF protection
🎓 Academic Structure
Programs (Majors)
- Undergraduate, Postgraduate, and PhD levels
- Duration and credit requirements
- Entry requirements and fees
- Campus locations
Courses
- Course codes and descriptions
- Credit hours and semesters
- Prerequisites and requirements
- Program associations
Student Experience
- Personalized dashboard
- Course enrollment tracking
- Academic progress monitoring
- GPA calculation
🤖 AI Integration
Ollama Setup
-
Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh -
Start Ollama Service
ollama serve -
Pull AI Model
ollama pull llama2
AI Features
- Pre-login Chat: AI assistance before authentication
- University Context: Institution-specific responses
- Knowledge Base: Dynamic Q&A system
- Multi-language Support: Arabic and English
📊 API Documentation
Core Endpoints
Authentication
POST /api/auth/login
Content-Type: application/json
{
"email": "user@university.edu",
"password": "password123"
}
Programs
GET /api/programs
GET /api/programs/[id]
Courses
GET /api/courses
GET /api/courses/[id]
AI Chat
POST /api/chat/ollama
Content-Type: application/json
{
"message": "What programs do you offer?",
"context": "university_info"
}
🔧 Maintenance
Database Backups
./maintenance.sh backup
Application Updates
./maintenance.sh update
Log Monitoring
./maintenance.sh logs
Application Restart
./maintenance.sh restart
📈 Performance Optimization
Database
- Indexed queries for fast retrieval
- Optimized relationships
- Connection pooling
Frontend
- Next.js 14 with App Router
- Static generation where possible
- Image optimization
- Code splitting
Caching
- Static asset caching
- API response caching
- Database query caching
🔒 Security Considerations
Data Protection
- Input validation and sanitization
- SQL injection prevention
- XSS protection
- CSRF tokens
Authentication
- Secure password hashing
- JWT token expiration
- Session management
- Rate limiting
Infrastructure
- HTTPS enforcement
- Security headers
- Environment variable protection
- Regular security updates
🧪 Testing
Unit Tests
npm run test
Integration Tests
npm run test:integration
E2E Tests
npm run test:e2e
📝 Environment Variables
| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
Database connection string | file:./dev.db |
JWT_SECRET |
JWT signing secret | Required |
OLLAMA_HOST |
Ollama AI service URL | http://localhost:11434 |
OLLAMA_MODEL |
AI model name | llama2 |
NODE_ENV |
Environment mode | development |
NEXT_PUBLIC_APP_URL |
Public application URL | http://localhost:3000 |
🐛 Troubleshooting
Common Issues
-
Database Connection
npx prisma db push npx prisma generate -
Authentication Issues
- Check JWT_SECRET is set
- Verify database migrations
- Clear browser cookies
-
AI Chat Not Working
- Ensure Ollama is running
- Check OLLAMA_HOST configuration
- Verify model is downloaded
-
Build Errors
rm -rf .next node_modules npm install npm run build
📞 Support
For technical support and questions:
- Documentation: Check this README and inline code comments
- Issues: Create GitHub issues for bugs and feature requests
- Discussions: Use GitHub Discussions for general questions
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
🎯 Roadmap
- Advanced analytics dashboard
- Mobile application
- Payment integration
- Video conferencing
- Advanced AI features
- Multi-language support
- Advanced reporting
- Integration APIs
Built with ❤️ for modern education