NSU LinkUp is a comprehensive web-based platform designed to bridge the gap between students and faculty at North South University. It facilitates research collaboration, provides AI-powered academic assistance, and creates a seamless environment for academic networking and growth.
- Connect students with research opportunities
- Streamline the research application process
- Provide AI-powered guidance for academic success
- Foster collaboration between students and faculty
- Create a centralized hub for academic announcements
- Research Discovery: Browse and filter research opportunities by department, salary, and requirements
- AI Study Assistant: Get personalized recommendations for research positions matching your profile
- Smart Application System: Apply for positions with CGPA verification and skill matching
- Comprehensive Profile: Showcase skills, achievements, publications, and experience
- Application Tracking: Real-time status updates on submitted applications
- Peer Networking: Connect with fellow students for collaboration
- Research Post Management: Create, edit, and manage research opportunities
- Application Review System: Efficiently review and manage student applications
- AI Research Assistant: Access faculty-exclusive insights about student qualifications
- Student Discovery: Find qualified candidates based on CGPA, skills, and interests
- Profile Management: Display research interests, office hours, and publications
- Analytics Dashboard: Track application statistics and post performance
- User Management: Verify faculty/organizer accounts, manage user roles
- Announcement System: Post and manage system-wide announcements
- Comprehensive Audit Logs: Track all platform activities for security
- Contact Query Management: Handle and respond to platform inquiries
- AI Chatbot Configuration: Manage OpenAI settings and monitor usage
- System Statistics: View platform metrics and user engagement data
- Language: PHP 7.4+
- Database: MySQL 5.7+
- Server: Apache/Nginx
- Session Management: PHP Sessions with role-based access
- HTML5 - Semantic markup
- CSS3 - Custom styling with responsive design
- JavaScript - Dynamic interactions and AJAX
- Font Awesome 6.0 - Icon library
- OpenAI GPT API - Powers the intelligent chatbot assistants
- Custom Intent Analysis - Smart query understanding and routing
- Prepared Statements - SQL injection prevention
- Input Sanitization - XSS protection
- Role-Based Access Control - Granular permission system
- Audit Logging - Comprehensive activity tracking
Before you begin, ensure you have the following installed:
- PHP 7.4 or higher
- MySQL 5.7 or higher
- Apache/Nginx web server
- Git for version control
- OpenAI API key (optional, for chatbot functionality)
- Registration: Use secret key
NSU_ADMIN_2025 - Capabilities: Full system access, user management, system configuration
- Access Path:
/admin/*
- Registration: Requires admin verification
- Capabilities: Create research posts, review applications, access AI assistant
- Access Path:
/faculty/*
- Registration: Immediate access after signup
- Capabilities: Apply for research, manage profile, use AI assistant
- Access Path:
/student/*
nsu-linkup/
│
├── admin/ # Admin portal pages
│ ├── dashboard.php # Admin dashboard
│ ├── announcements.php # Announcement management
│ ├── audit-logs.php # System audit logs
│ ├── contact-queries.php # Contact form submissions
│ ├── manage-users.php # User management
│ └── verify-users.php # User verification
│
├── api/ # API endpoints
│ ├── chatbot.php # AI chatbot endpoint
│ ├── get-faculty-profile.php # Faculty data API
│ ├── get-student-profile.php # Student data API
│ ├── submit-application.php # Application submission
│ └── upload-profile-pic.php # Profile picture upload
│
├── assets/ # Static resources
│ ├── css/ # Stylesheets
│ │ ├── common.css # Global styles
│ │ ├── dashboard.css # Dashboard styles
│ │ └── [role-specific].css # Role-specific styles
│ ├── js/ # JavaScript files
│ │ ├── common.js # Global scripts
│ │ ├── chatbot.js # Chatbot functionality
│ │ └── [page-specific].js # Page-specific scripts
│ └── uploads/ # User uploads
│ └── profiles/ # Profile pictures
│
├── auth/ # Authentication pages
│ ├── login.php # Unified login
│ ├── student-signup.php # Student registration
│ ├── faculty-signup.php # Faculty registration
│ ├── admin-signup.php # Admin registration
│ └── logout.php # Logout handler
│
├── faculty/ # Faculty portal
│ ├── dashboard.php # Faculty dashboard
│ ├── profile.php # Profile management
│ ├── create-research.php # Create research posts
│ ├── manage-posts.php # Manage research posts
│ ├── applications.php # Review applications
│ ├── students.php # Browse students
│ ├── faculty.php # Faculty directory
│ └── chatbot.php # AI assistant
│
├── includes/ # Core includes
│ ├── config.php # Configuration
│ ├── db_connect.php # Database connection
│ ├── functions.php # Helper functions
│ ├── auth_check.php # Authentication check
│ ├── header.php # Page header
│ └── footer.php # Page footer
│
└── student/ # Student portal
├── dashboard.php # Student dashboard
├── profile.php # Profile management
├── research.php # Browse research
├── students.php # Student directory
├── faculty.php # Faculty directory
├── chatbot.php # AI assistant
└── announcements.php # View announcements
In php.ini:
session.save_path = "/var/lib/php/sessions"
session.gc_maxlifetime = 3600
session.cookie_httponly = 1
session.use_only_cookies = 1In php.ini:
file_uploads = On
upload_max_filesize = 10M
post_max_size = 10M
max_file_uploads = 20- SQL Injection Prevention: All queries use prepared statements
- XSS Protection: Input sanitization and output encoding
- CSRF Protection: Token validation on forms
- Session Security: HTTP-only cookies, session regeneration
- File Upload Security: Type validation, size limits, secure storage
- Access Control: Role-based permissions, page-level restrictions
- Audit Logging: Comprehensive activity tracking with IP logging
users- User authentication and basic infostudents- Student profiles and detailsfaculty- Faculty profiles and informationadmins- Administrator accountsorganizers- Event organizer accounts
research_posts- Research opportunitiesresearch_applications- Student applicationsannouncements- System announcementsevents- Campus eventscontact_queries- Contact form submissions
student_skills- Student skill listingsstudent_experience- Work experiencestudent_achievements- Awards and certificationsstudent_publications- Academic publicationsaudit_logs- System activity logschatbot_logs- AI conversation historychatbot_settings- AI configuration
- Research opportunity matching based on profile
- Skill gap analysis and recommendations
- Application tips and guidance
- Academic planning advice
- Student qualification insights
- Research trend analysis
- Application pattern recognition
- Collaboration recommendations
# Check permissions
ls -la assets/uploads/
# Fix permissions
sudo chmod -R 755 assets/uploads/
sudo chown -R www-data:www-data assets/uploads/# Check session directory
ls -la /var/lib/php/sessions/
# Fix permissions
sudo chmod 1733 /var/lib/php/sessions/- User registration (all roles)
- Login/logout functionality
- Research post creation
- Application submission
- AI chatbot responses
- File uploads
- Search and filters
- Mobile responsiveness
Submit a message to the AI assistant
Request:
{
"message": "Find research opportunities in AI",
"context": []
}
Response:
{
"success": true,
"response": "Based on your profile...",
"data": {}
}Get detailed research post information
Parameters:
- id: Research post ID
Response:
{
"success": true,
"research": { ... }
}
Submit application for research position
Request:
{
"research_id": 123,
"cover_letter": "I am interested in..."
}- Follow PSR-12 for PHP code
- Use meaningful variable names
- Comment complex logic
- Write secure, sanitized code







