Files
unai/PRODUCTION_SETUP.md
T
Krikorios aa459f4bd6 🎉 Complete AI-Enhanced University Portal - Ready for Production
 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!
2025-07-20 08:26:25 +04:00

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

  1. Build the Application

    npm ci --only=production
    npm run build
    
  2. Database Setup

    npx prisma migrate deploy
    npx prisma generate
    
  3. Process Management with PM2

    npm install -g pm2
    pm2 start ecosystem.config.js
    pm2 save
    pm2 startup
    
  4. 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
    
  5. 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 login
  • POST /api/auth/register - User registration
  • POST /api/auth/logout - User logout
  • GET /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

  1. Install Ollama

    curl -fsSL https://ollama.ai/install.sh | sh
    
  2. Start Ollama Service

    ollama serve
    
  3. 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

  1. Database Connection

    npx prisma db push
    npx prisma generate
    
  2. Authentication Issues

    • Check JWT_SECRET is set
    • Verify database migrations
    • Clear browser cookies
  3. AI Chat Not Working

    • Ensure Ollama is running
    • Check OLLAMA_HOST configuration
    • Verify model is downloaded
  4. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. 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