Wednesday, July 16, 2025

Demo SIRF web site index.php code

 <!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>State Institutional Ranking Framework - Government of Tamil Nadu</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background: linear-gradient(135deg, #2fd84bff 0%, #2d2d2d 50%, #000000 100%);
            min-height: 100vh;
            color: #10ef2aff;
            line-height: 1.6;
        }

        /* Animated background elements */
        .bg-animation {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        .particle {
            position: absolute;
            /* background: rgba(255, 255, 255, 0.05); */
            background: rgba(47, 255, 0, 0.55);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 50%;
            animation: float 8s ease-in-out infinite;
        }

        .particle:nth-child(1) { width: 80px; height: 80px; left: 10%; animation-delay: 0s; }
        .particle:nth-child(2) { width: 120px; height: 120px; left: 20%; animation-delay: 2s; }
        .particle:nth-child(3) { width: 60px; height: 60px; left: 35%; animation-delay: 4s; }
        .particle:nth-child(4) { width: 100px; height: 100px; left: 50%; animation-delay: 1s; }
        .particle:nth-child(5) { width: 40px; height: 40px; left: 70%; animation-delay: 3s; }
        .particle:nth-child(6) { width: 90px; height: 90px; left: 85%; animation-delay: 5s; }

        @keyframes float {
            0%, 100% { transform: translateY(0px) rotate(0deg); opacity: 0.3; }
            50% { transform: translateY(-80px) rotate(180deg); opacity: 0.1; }
        }

        /* Glass morphism with high contrast */
        .glass {
            /* background: rgba(255, 255, 255, 0.95);  */
            background: rgba(0, 0, 255, 0.95);
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            border: 2px solid rgba(255, 255, 255, 0.2);
            border-radius: 15px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            color: #ffffff;
        }

        .glass-dark {
            background: rgba(0, 0, 255, 0.75);
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            border: 2px solid rgba(255, 255, 255, 0.1);
            border-radius: 15px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
            color: #ffffff;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
            position: relative;
            z-index: 10;
        }

        /* Header */
        .header {
            text-align: center;
            margin-bottom: 40px;
            padding: 40px 30px;
            animation: slideDown 1s ease-out;
        }

        .logo {
            width: 80px;
            height: 80px;
            background: #000000;
            border: 3px solid #ffffff;
            border-radius: 50%;
            margin: 0 auto 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            font-weight: bold;
            color: #ffffff;
            animation: pulse 2s infinite;
        }

        .title {
            font-size: 2.8rem;
            font-weight: 800;
            color: #ffffff;
            margin-bottom: 10px;
            text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
            letter-spacing: -0.5px;
        }

        .subtitle {
            font-size: 1.2rem;
            color: #ffffff;
            font-weight: 500;
        }

        /* Navigation */
        .nav {
            display: flex;
            justify-content: center;
            gap: 15px;
            margin-bottom: 40px;
            flex-wrap: wrap;
        }

        .nav-item {
            padding: 12px 24px;
            background: #ffffff;
            border: 2px solid #1a1a1a;
            border-radius: 8px;
            color: #1a1a1a;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: 600;
            text-decoration: none;
            display: inline-block;
            font-size: 0.95rem;
        }

        .nav-item:hover {
            background: #1a1a1a;
            color: #ffffff;
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }

        .nav-item.active {
            background: #1a1a1a;
            color: #ffffff;
        }

        .login-btn {
            background: #000000 !important;
            color: #ffffff !important;
            border: 2px solid #ffffff !important;
        }

        .login-btn:hover {
            background: #ffffff !important;
            color: #000000 !important;
            border: 2px solid #000000 !important;
        }

        /* Statistics section */
        .stats {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 20px;
            margin-bottom: 40px;
        }

        .stat-card {
            text-align: center;
            padding: 30px 25px;
            animation: scaleIn 0.6s ease-out;
        }

        .stat-number {
            font-size: 3.5rem;
            font-weight: 900;
            color: #ffffff;
            margin-bottom: 10px;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
        }

        .stat-label {
            color: #ffffff;
            font-size: 1.1rem;
            font-weight: 600;
        }

        /* Carousel Styles */
        .carousel-section {
            margin-bottom: 40px;
        }

        .carousel-container {
            padding: 30px;
            position: relative;
            overflow: hidden;
        }

        .carousel-header {
            text-align: center;
            margin-bottom: 30px;
        }

        .carousel-header h2 {
            color: #ffffff;
            font-size: 2.2rem;
            margin-bottom: 10px;
            font-weight: 700;
        }

        .carousel-header p {
            color: #cccccc;
            font-size: 1.1rem;
            font-weight: 500;
        }

        .carousel {
            position: relative;
            width: 100%;
            height: 400px;
            overflow: hidden;
            border-radius: 15px;
            border: 2px solid rgba(255, 255, 255, 0.1);
        }

        .carousel-track {
            display: flex;
            transition: transform 0.5s ease-in-out;
            height: 100%;
        }

        .carousel-slide {
            min-width: 100%;
            height: 100%;
            opacity: 0;
            transition: opacity 0.5s ease-in-out;
        }

        .carousel-slide.active {
            opacity: 1;
        }

        .slide-content {
            display: flex;
            height: 100%;
            align-items: center;
            gap: 30px;
            padding: 30px;
            background: rgba(255, 255, 255, 0.95);
        }

        .slide-image {
            flex: 1;
            height: 100%;
        }

        .placeholder-image {
            width: 100%;
            height: 100%;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 4rem;
            color: #ffffff;
            position: relative;
            overflow: hidden;
            border: 3px solid #1a1a1a;
        }

        .image-overlay {
            position: absolute;
            bottom: 20px;
            left: 20px;
            background: rgba(0, 0, 0, 0.9);
            color: #ffffff;
            padding: 12px 20px;
            border-radius: 8px;
            font-size: 1rem;
            font-weight: 700;
            border: 1px solid #ffffff;
        }

        .slide-info {
            flex: 1;
            color: #1a1a1a;
            padding: 20px;
        }

        .slide-info h3 {
            font-size: 2rem;
            margin-bottom: 15px;
            font-weight: 800;
            color: #000000;
        }

        .slide-info p {
            font-size: 1.2rem;
            line-height: 1.6;
            color: #333333;
            font-weight: 500;
        }

        .carousel-btn {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            background: rgba(0, 0, 0, 0.8);
            border: 2px solid #ffffff;
            color: #ffffff;
            font-size: 2rem;
            padding: 15px 20px;
            border-radius: 50%;
            cursor: pointer;
            transition: all 0.3s ease;
            font-weight: bold;
        }

        .carousel-btn:hover {
            background: #ffffff;
            color: #000000;
            transform: translateY(-50%) scale(1.1);
        }

        .carousel-btn.prev {
            left: 20px;
        }

        .carousel-btn.next {
            right: 20px;
        }

        .carousel-indicators {
            display: flex;
            justify-content: center;
            gap: 15px;
            margin-top: 20px;
        }

        .indicator {
            width: 15px;
            height: 15px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.4);
            border: 2px solid #ffffff;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .indicator.active {
            background: #ffffff;
            transform: scale(1.2);
        }

        .indicator:hover {
            background: rgba(255, 255, 255, 0.8);
        }

        /* Main content */
        .main-content {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            gap: 30px;
            margin-bottom: 40px;
        }

        .card {
            padding: 30px;
            transition: all 0.3s ease;
            animation: fadeInUp 0.8s ease-out;
        }

        .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.4);
        }

        .card h3 {
            color: #ffffff;
            font-size: 1.5rem;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px;
            font-weight: 700;
        }

        .card-icon {
            width: 35px;
            height: 35px;
            background: #1abf57ff;
            color: #ffffff;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            border: 2px solid #1a1a1a;
        }

        .card p {
            color: #ffffff;
            line-height: 1.7;
            margin-bottom: 20px;
            font-size: 1rem;
            font-weight: 500;
        }

        .btn {
            background: #000000;
            color: #ffffff;
            border: 2px solid #000000;
            padding: 12px 24px;
            border-radius: 8px;
            cursor: pointer;
            font-weight: 600;
            transition: all 0.3s ease;
            display: inline-block;
            text-decoration: none;
            font-size: 0.95rem;
        }

        .btn:hover {
            background: #ffffff;
            color: #000000;
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }

        /* Modal Styles */
        .modal {
            display: none;
            position: fixed;
            z-index: 1000;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 0, 0, 0.8);
            backdrop-filter: blur(5px);
            animation: fadeIn 0.3s ease-out;
        }

        .modal-content {
            position: relative;
            margin: 5% auto;
            padding: 0;
            width: 90%;
            max-width: 500px;
            border-radius: 15px;
            animation: slideInDown 0.3s ease-out;
        }

        .close {
            position: absolute;
            right: 20px;
            top: 15px;
            color: #ffffff;
            font-size: 28px;
            font-weight: bold;
            cursor: pointer;
            z-index: 1001;
        }

        .close:hover {
            color: #cccccc;
        }

        .modal-header {
            text-align: center;
            padding: 30px 30px 20px;
            border-bottom: 2px solid rgba(255, 255, 255, 0.1);
        }

        .modal-header h2 {
            color: #ffffff;
            margin-bottom: 10px;
            font-size: 1.8rem;
            font-weight: 700;
        }

        .modal-header p {
            color: #cccccc;
            font-weight: 500;
        }

        .login-form {
            padding: 30px;
        }

        .form-group {
            margin-bottom: 20px;
        }

        .form-group label {
            display: block;
            color: #ffffff;
            margin-bottom: 8px;
            font-weight: 600;
            font-size: 0.95rem;
        }

        .form-group input,
        .form-group select {
            width: 100%;
            padding: 15px;
            border: 2px solid rgba(255, 255, 255, 0.3);
            border-radius: 8px;
            background: rgba(255, 255, 255, 0.95);
            color: #1a1a1aff;
            font-size: 1rem;
            font-weight: 500;
            transition: all 0.3s ease;
        }

        .form-group input:focus,
        .form-group select:focus {
            outline: none;
            border-color: #ffffff;
            background: #ffffff;
            box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
        }

        .form-group input::placeholder {
            color: #666666;
            font-weight: 500;
        }

        .checkbox-group {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .checkbox-group input[type="checkbox"] {
            width: auto;
            margin: 0;
        }

        .login-btn-submit {
            width: 100%;
            padding: 15px;
            background: #ffffff;
            border: 2px solid #ffffff;
            border-radius: 8px;
            color: #000000;
            font-size: 1.1rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-bottom: 20px;
        }

        .login-btn-submit:hover {
            background: #000000;
            color: #ffffff;
            transform: translateY(-2px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }

        .login-links {
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 10px;
        }

        .login-links a {
            color: #ffffff;
            text-decoration: underline;
            font-size: 0.9rem;
            font-weight: 500;
            transition: color 0.3s ease;
        }

        .login-links a:hover {
            color: #cccccc;
        }

        /* Footer */
        .footer {
            text-align: center;
            padding: 30px;
            color: #ffffff;
            border-top: 2px solid rgba(255, 255, 255, 0.1);
            font-weight: 500;
        }

        /* Animations */
        @keyframes slideDown {
            from { transform: translateY(-50px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }

        @keyframes fadeInUp {
            from { transform: translateY(30px); opacity: 0; }
            to { transform: translateY(0); opacity: 1; }
        }

        @keyframes scaleIn {
            from { transform: scale(0.8); opacity: 0; }
            to { transform: scale(1); opacity: 1; }
        }

        @keyframes pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.05); }
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        @keyframes slideInDown {
            from {
                opacity: 0;
                transform: translateY(-50px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Responsive design */
        @media (max-width: 768px) {
            .title {
                font-size: 2.2rem;
            }
           
            .nav {
                flex-direction: column;
                align-items: center;
            }
           
            .main-content {
                grid-template-columns: 1fr;
            }
           
            .stats {
                grid-template-columns: repeat(2, 1fr);
            }

            .slide-content {
                flex-direction: column;
                text-align: center;
                padding: 20px;
            }

            .slide-image {
                height: 200px;
            }

            .carousel-btn {
                font-size: 1.5rem;
                padding: 10px 15px;
            }

            .modal-content {
                width: 95%;
                margin: 10% auto;
            }

            .carousel {
                height: 350px;
            }
        }

        @media (max-width: 480px) {
            .container {
                padding: 10px;
            }
           
            .card {
                padding: 20px;
            }
           
            .stats {
                grid-template-columns: 1fr;
            }

            .title {
                font-size: 1.8rem;
            }

            .carousel {
                height: 300px;
            }

            .slide-info h3 {
                font-size: 1.5rem;
            }

            .slide-info p {
                font-size: 1rem;
            }
        }
       
        .circle-image {
            width: 200px;        /* or any fixed width */
            height: 200px;       /* same as width */
            object-fit: cover;   /* ensures the image fills the circle */
            border-radius: 50%;  /* makes it circular */
            border: 2px solid #fff; /* optional: adds a white border */
        }
        .circle-image1 {
            width: 125px;        /* or any fixed width */
            height: 125px;       /* same as width */
            object-fit: cover;   /* ensures the image fills the circle */
            border-radius: 50%;  /* makes it circular */
            border: 2px solid #fff; /* optional: adds a white border */
        }
    </style>
   
<body>
    <div class="bg-animation">
        <div class="particle"></div>
        <div class="particle"></div>
        <div class="particle"></div>
        <div class="particle"></div>
        <div class="particle"></div>
        <div class="particle"></div>
    </div>

    <div class="container">
        <header class="header glass">
        <!-- <div class="logo">TN</div> -->
            <div>
                <h1 class="title"><img class ="circle-image" src="cmsir.jpg">State Institutional Ranking Framework</h1>
               <p class="subtitle">Government of Tamil Nadu</p>
            </div>
        </div>
        </header>

        <nav class="nav">
            <a href="#overview" class="nav-item active">Overview</a>
            <a href="#rankings" class="nav-item">Rankings</a>
            <a href="#methodology" class="nav-item">Methodology</a>
            <a href="#institutions" class="nav-item">Institutions</a>
            <a href="#reports" class="nav-item">Reports</a>
            <a href="#contact" class="nav-item">Contact</a>
            <button onclick="openLoginModal()" class="nav-item login-btn">๐Ÿ” Login</button>
        </nav>

        <section class="stats">
            <div class="stat-card glass-dark">
                <div class="stat-number">1632</div>
                <div class="stat-label">Institutions Ranked</div>
            </div>
            <div class="stat-card glass-dark">
                <div class="stat-number">5</div>
                <div class="stat-label">Categories</div>
            </div>
            <div class="stat-card glass-dark">
                <div class="stat-number">12</div>
                <div class="stat-label">Parameters</div>
            </div>
            <div class="stat-card glass-dark">
                <div class="stat-number">2025</div>
                <div class="stat-label">Current Year</div>
            </div>
        </section>

        <!-- Image Carousel -->
        <section class="carousel-section">
            <div class="carousel-container glass-dark">
                <div class="carousel-header">
                    <h2>Featured Institutions & Achievements</h2>
                    <p>Showcasing excellence in Tamil Nadu's educational landscape</p>
                </div>
                <div class="carousel">
                    <div class="carousel-track">
                        <div class="carousel-slide active ">
                            <div class="slide-content">
                                <div class="slide-image">
                                    <div class="placeholder-image" style="background: linear-gradient(45deg, #2d2d2d, #1a1a1a);">
                                        <span>๐Ÿ›️</span>
                                        <div class="image-overlay">IIT Madras</div>
                                    </div>
                                </div>
                                <div class="slide-info">
                                    <h3>Indian Institute of Technology Madras</h3>
                                    <p>Premier engineering institution leading in research and innovation with world-class faculty and state-of-the-art facilities.</p>
                                </div>
                            </div>
                        </div>
                        <div class="carousel-slide active">
                            <div class="slide-content">
                                <div class="slide-image">
                                    <div class="placeholder-image" style="background: linear-gradient(45deg, #3d3d3d, #2a2a2a);">
                                        <span>๐Ÿฅ</span>
                                        <div class="image-overlay">AIIMS Chennai</div>
                                    </div>
                                </div>
                                <div class="slide-info">
                                    <h3>All Institute of Medical Sciences</h3>
                                    <p>Excellence in medical education and healthcare services, providing comprehensive medical training and patient care.</p>
                                </div>
                            </div>
                        </div>
                        <div class="carousel-slide active">
                            <div class="slide-content">
                                <div class="slide-image">
                                    <div class="placeholder-image" style="background: linear-gradient(45deg, #4a4a4a, #333333);">
                                        <span>๐ŸŽ“</span>
                                        <div class="image-overlay">Anna University</div>
                                    </div>
                                </div>
                                <div class="slide-info">
                                    <h3>Anna University</h3>
                                    <p>Leading technical university with outstanding academic programs, research initiatives, and industry partnerships.</p>
                                </div>
                            </div>
                        </div>
                        <div class="carousel-slide active">
                            <div class="slide-content">
                                <div class="slide-image">
                                    <div class="placeholder-image" style="background: linear-gradient(45deg, #555555, #3c3c3c);">
                                        <span>๐Ÿ’ผ</span>
                                        <div class="image-overlay">IIM Tiruchirappalli</div>
                                    </div>
                                </div>
                                <div class="slide-info">
                                    <h3>Indian Institute of Management</h3>
                                    <p>Top-tier management education and business leadership development with innovative curriculum and expert faculty.</p>
                                </div>
                            </div>
                        </div>
                        <div class="carousel-slide active">
                            <div class="slide-content">
                                <div class="slide-image">
                                    <div class="placeholder-image" style="background: linear-gradient(45deg, #666666, #454545);">
                                        <span>๐Ÿ”ฌ</span>
                                        <div class="image-overlay">Research Excellence</div>
                                    </div>
                                </div>
                                <div class="slide-info">
                                    <h3>Research & Innovation Hub</h3>
                                    <p>Advancing scientific research and technological innovation through collaborative projects and cutting-edge facilities.</p>
                                </div>
                            </div>
                        </div>
                    </div>
                    <button class="carousel-btn prev" onclick="changeSlide(-1)"></button>
                    <button class="carousel-btn next" onclick="changeSlide(1)"></button>
                </div>
                <div class="carousel-indicators">
                    <span class="indicator active" onclick="currentSlide(1)"></span>
                    <span class="indicator" onclick="currentSlide(2)"></span>
                    <span class="indicator" onclick="currentSlide(3)"></span>
                    <span class="indicator" onclick="currentSlide(4)"></span>
                    <span class="indicator" onclick="currentSlide(5)"></span>
                </div>
            </div>
        </section>

        <main class="main-content">
            <div class="card glass">
                <h3>
                    <span class="card-icon">๐ŸŽฏ</span>
                    About the Framework
                </h3>
                <p>The Tamil Nadu State Institutional Ranking Framework is a comprehensive evaluation system designed to assess and rank educational institutions across various parameters including teaching quality, research output, infrastructure, and student outcomes.</p>
                <a href="#" class="btn">Learn More</a>
            </div>

            <div class="card glass">
                <h3>
                    <span class="card-icon">๐Ÿ“Š</span>
                    Ranking Methodology
                </h3>
                <p>Our robust methodology incorporates multiple indicators across five key dimensions: Teaching, Learning & Resources; Research and Professional Practice; Graduation Outcomes; Outreach and Inclusivity; and Perception.</p>
                <a href="#" class="btn">View Methodology</a>
            </div>

            <div class="card glass">
                <h3>
                    <span class="card-icon">๐Ÿ†</span>
                    Latest Rankings
                </h3>
                <p>Access the most recent institutional rankings across engineering, medical, management, pharmacy, and other professional education categories. Rankings are updated annually based on comprehensive data analysis.</p>
                <a href="#" class="btn">View Rankings</a>
            </div>

            <div class="card glass">
                <h3>
                    <span class="card-icon">๐Ÿ“ˆ</span>
                    Performance Analytics
                </h3>
                <p>Detailed performance analytics and comparative studies help institutions identify areas for improvement and track their progress over time through interactive dashboards and reports.</p>
                <a href="#" class="btn">View Analytics</a>
            </div>

            <div class="card glass">
                <h3>
                    <span class="card-icon">๐Ÿ”</span>
                    Institution Search
                </h3>
                <p>Find and compare institutions by category, location, ranking, and specific parameters. Our advanced search helps students and stakeholders make informed decisions.</p>
                <a href="#" class="btn">Search Institutions</a>
            </div>

            <div class="card glass">
                <h3>
                    <span class="card-icon">๐Ÿ“‹</span>
                    Resources & Guidelines
                </h3>
                <p>Access comprehensive resources including evaluation guidelines, data submission formats, quality assurance frameworks, and best practices for institutional excellence.</p>
                <a href="#" class="btn">Access Resources</a>
            </div>
        </main>

        <footer class="footer glass-dark">
            <p>&copy; 2025 Government of Tamil Nadu. All rights reserved.</p>
            <p>State Institutional Ranking Framework | Tamil Nadu State Council for Higher Education {TANSCHE}</p>
        </footer>
    </div>
        <script>
        let slideIndex = 0;

        const track = document.querySelector('.carousel-track');
        const slides = document.querySelectorAll('.carousel-slide');
        const indicators = document.querySelectorAll('.indicator');

        function updateCarousel() {
            const slideWidth = slides[0].offsetWidth;
            track.style.transform = `translateX(-${slideIndex * slideWidth}px)`;

            indicators.forEach((dot, i) => {
            dot.classList.toggle('active', i === slideIndex);
            });
        }

        function changeSlide(n) {
            slideIndex += n;
            if (slideIndex < 0) {
            slideIndex = slides.length - 1;
            } else if (slideIndex >= slides.length) {
            slideIndex = 0;
            }
            updateCarousel();
        }

        function currentSlide(n) {
            slideIndex = n - 1;
            updateCarousel();
        }

        // Initialize on page load
        window.addEventListener('load', () => {
            updateCarousel();
            window.addEventListener('resize', updateCarousel); // responsive
        });
        </script>
           
         <!-- Login Modal -->
    <div id="loginModal" class="modal">
        <div class="modal-content glass-dark">
            <span class="close" onclick="closeLoginModal()">&times;</span>
            <div class="modal-header">
                <h2>๐Ÿ” Login Portal</h2>
                <p>Access your institutional dashboard</p>
            </div>
            <form class="login-form" onsubmit="handleLogin(event)">
                <div class="form-group">
                    <label for="userType">Login As:</label>
                    <select id="userType" name="userType" required>
                        <option value="">Select User Type</option>
                        <option value="institution">Institution Admin</option>
                        <option value="government">Government Official</option>
                        <option value="evaluator">Evaluator</option>
                    </select>
                </div>
               
                <div class="form-group">
                    <label for="username">Username / Email:</label>
                    <input type="text" id="username" name="username" placeholder="Enter your username or email" required>
                </div>
               
                <div class="form-group">
                    <label for="password">Password:</label>
                    <div class="password-container">
                        <input type="password" id="password" name="password" placeholder="Enter your password" required>
                        <button type="button" class="password-toggle" onclick="togglePassword()">๐Ÿ‘️</button>
                    </div>
                </div>
               
                <div class="remember-forgot">
                    <label class="remember-me">
                        <input type="checkbox" id="rememberMe" name="rememberMe">
                        Remember me
                    </label>
                    <a href="#" class="forgot-password" onclick="showForgotPassword()">Forgot Password?</a>
                </div>
               
                <button type="submit" class="login-button" id="loginButton">
                    Login
                    <div class="loading-spinner" id="loadingSpinner"></div>
                </button>
               
                <div class="error-message" id="errorMessage"></div>
                <div class="success-message" id="successMessage"></div>
            </form>
        </div>
    </div>

    <script>
        // Demo credentials for testing
        const demoCredentials = {
            institution: {
                username: 'admin@institution.edu',
                password: 'admin123'
            },
            government: {
                username: 'gov.official@ministry.gov',
                password: 'gov123'
            },
            evaluator: {
                username: 'evaluator@assessment.org',
                password: 'eval123'
            }
        };

        // Modal functions
        function openLoginModal() {
            document.getElementById('loginModal').classList.add('show');
            document.body.style.overflow = 'hidden';
        }

        function closeLoginModal() {
            document.getElementById('loginModal').classList.remove('show');
            document.body.style.overflow = 'auto';
            clearMessages();
            resetForm();
        }

        // Password toggle
        function togglePassword() {
            const passwordInput = document.getElementById('password');
            const toggleButton = document.querySelector('.password-toggle');
           
            if (passwordInput.type === 'password') {
                passwordInput.type = 'text';
                toggleButton.textContent = '๐Ÿ™ˆ';
            } else {
                passwordInput.type = 'password';
                toggleButton.textContent = '๐Ÿ‘️';
            }
        }

        // Form validation
        function validateForm(userType, username, password) {
            if (!userType) {
                throw new Error('Please select a user type');
            }
           
            if (!username || username.length < 3) {
                throw new Error('Username must be at least 3 characters long');
            }
           
            if (!password || password.length < 6) {
                throw new Error('Password must be at least 6 characters long');
            }
           
            return true;
        }

        // Authentication function
        function authenticateUser(userType, username, password) {
            const demo = demoCredentials[userType];
           
            if (demo && demo.username === username && demo.password === password) {
                return {
                    success: true,
                    user: {
                        type: userType,
                        username: username,
                        fullName: getFullName(userType),
                        permissions: getPermissions(userType)
                    }
                };
            }
           
            return {
                success: false,
                error: 'Invalid credentials. Please check your username and password.'
            };
        }

        // Helper functions
        function getFullName(userType) {
            const names = {
                institution: 'Dr. Sarah Johnson',
                government: 'Michael Chen',
                evaluator: 'Prof. Emily Rodriguez'
            };
            return names[userType] || 'User';
        }

        function getPermissions(userType) {
            const permissions = {
                institution: ['manage_courses', 'view_reports', 'student_management'],
                government: ['policy_review', 'audit_access', 'compliance_monitoring'],
                evaluator: ['assessment_tools', 'evaluation_reports', 'quality_assurance']
            };
            return permissions[userType] || [];
        }

        // Main login handler
        async function handleLogin(event) {
            event.preventDefault();
           
            const loginButton = document.getElementById('loginButton');
            const loadingSpinner = document.getElementById('loadingSpinner');
            const form = event.target;
           
            // Get form data
            const formData = new FormData(form);
            const userType = formData.get('userType');
            const username = formData.get('username');
            const password = formData.get('password');
            const rememberMe = formData.get('rememberMe');
           
            // Clear previous messages
            clearMessages();
           
            try {
                // Validate form
                validateForm(userType, username, password);
               
                // Show loading state
                loginButton.disabled = true;
                loadingSpinner.style.display = 'inline-block';
               
                // Simulate API call delay
                await new Promise(resolve => setTimeout(resolve, 1500));
               
                // Authenticate user
                const result = authenticateUser(userType, username, password);
               
                if (result.success) {
                    showSuccessMessage(`Welcome back, ${result.user.fullName}!`);
                   
                    // Store user session (in a real app, this would be handled securely)
                    sessionStorage.setItem('currentUser', JSON.stringify(result.user));
                   
                    if (rememberMe) {
                        localStorage.setItem('rememberedUser', username);
                    }
                   
                    // Redirect to dashboard after success
                    setTimeout(() => {
                        closeLoginModal();
                        showDashboard(result.user);
                    }, 1000);
                   
                } else {
                    showErrorMessage(result.error);
                }
               
            } catch (error) {
                showErrorMessage(error.message);
            } finally {
                // Hide loading state
                loginButton.disabled = false;
                loadingSpinner.style.display = 'none';
            }
        }

        // Message functions
        function showErrorMessage(message) {
            const errorElement = document.getElementById('errorMessage');
            errorElement.textContent = message;
            errorElement.style.display = 'block';
           
            // Auto-hide after 5 seconds
            setTimeout(() => {
                errorElement.style.display = 'none';
            }, 5000);
        }

        function showSuccessMessage(message) {
            const successElement = document.getElementById('successMessage');
            successElement.textContent = message;
            successElement.style.display = 'block';
        }

        function clearMessages() {
            document.getElementById('errorMessage').style.display = 'none';
            document.getElementById('successMessage').style.display = 'none';
        }

        // Reset form
        function resetForm() {
            document.querySelector('.login-form').reset();
            document.getElementById('password').type = 'password';
            document.querySelector('.password-toggle').textContent = '๐Ÿ‘️';
        }

        // Forgot password handler
        function showForgotPassword() {
            alert('Forgot password functionality would typically send a reset link to your email. For demo purposes, use the credentials shown in the console.');
            console.log('Demo Credentials:');
            console.log('Institution Admin: admin@institution.edu / admin123');
            console.log('Government Official: gov.official@ministry.gov / gov123');
            console.log('Evaluator: evaluator@assessment.org / eval123');
        }

        // Dashboard simulation
        function showDashboard(user) {
            alert(`Dashboard loaded for ${user.fullName} (${user.type})\nPermissions: ${user.permissions.join(', ')}`);
        }

        // Close modal when clicking outside
        document.getElementById('loginModal').addEventListener('click', function(event) {
            if (event.target === this) {
                closeLoginModal();
            }
        });

        // Handle ESC key
        document.addEventListener('keydown', function(event) {
            if (event.key === 'Escape') {
                closeLoginModal();
            }
        });

        // Auto-fill remembered user on page load
        window.addEventListener('load', function() {
            const rememberedUser = localStorage.getItem('rememberedUser');
            if (rememberedUser) {
                document.getElementById('username').value = rememberedUser;
                document.getElementById('rememberMe').checked = true;
            }
        });

        // Show demo credentials in console
        console.log('=== DEMO CREDENTIALS ===');
        console.log('Institution Admin: admin@institution.edu / admin123');
        console.log('Government Official: gov.official@ministry.gov / gov123');
        console.log('Evaluator: evaluator@assessment.org / eval123');
    </script>



        </body>

</html>
   

#11 Unified Institutional Ranking Mechanism

Let's create a complete PHP/MySQL-based dashboard for computing UIRF (Unified Institutional Ranking Framework) scores.


✅ Features of the Tool

  • Admin login

  • Add/Edit institutions

  • Data capture for UIRF parameters

  • Auto calculation of UIRF scores (weighted)

  • Institution-wise view, search, and export

  • Bootstrap-styled responsive UI


๐Ÿ“ File Structure

uirf_dashboard/
├── config/
│   └── db.php                # Database connection
├── auth/
│   └── login.php             # Simple admin login
├── institutions/
│   ├── add.php               # Add/Edit form
│   ├── list.php              # View and calculate scores
├── includes/
│   ├── header.php
│   └── footer.php
├── uirf_logic.php            # Score calculation functions
└── index.php

1️⃣ config/db.php

<?php
$conn = new mysqli("localhost", "root", "", "uirf_db");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

2️⃣ uirf_logic.php – UIRF Score Calculation

<?php
function calculateUIRFScore($data) {
    $score = 0;
    $score += $data['academic_rep'] * 0.10;
    $score += $data['faculty_phd'] * 0.05;
    $score += $data['citations'] * 0.08;
    $score += $data['publications'] * 0.07;
    $score += $data['placements'] * 0.10;
    $score += $data['median_ctc'] * 0.10;
    $score += $data['diversity'] * 0.05;
    $score += $data['intl_students'] * 0.05;
    $score += $data['patents'] * 0.10;
    $score += $data['industry_collab'] * 0.10;
    $score += $data['startup_count'] * 0.10;
    $score += $data['mou_count'] * 0.10;
    return round($score, 2);
}
?>

3️⃣ institutions/add.php – Data Entry Form

<?php include '../config/db.php'; include '../includes/header.php'; ?>
<h2>Add Institutional Data</h2>
<form method="post">
    <?php
    $fields = ["academic_rep", "faculty_phd", "citations", "publications", "placements", "median_ctc",
               "diversity", "intl_students", "patents", "industry_collab", "startup_count", "mou_count"];
    foreach ($fields as $field) {
        echo "<label>" . ucfirst(str_replace("_", " ", $field)) . "</label>
              <input type='number' step='0.01' name='$field' required class='form-control mb-2'>";
    }
    ?>
    <input type="text" name="institution_name" placeholder="Institution Name" required class="form-control mb-2">
    <button type="submit" name="submit" class="btn btn-primary">Save</button>
</form>

<?php
if (isset($_POST['submit'])) {
    $data = $_POST;
    $score = include '../uirf_logic.php'; $score = calculateUIRFScore($data);
    $stmt = $conn->prepare("INSERT INTO institutions SET institution_name=?, academic_rep=?, faculty_phd=?, citations=?, publications=?, placements=?, median_ctc=?, diversity=?, intl_students=?, patents=?, industry_collab=?, startup_count=?, mou_count=?, uirf_score=?");
    $stmt->bind_param("sddddddddddddd", $data['institution_name'], $data['academic_rep'], $data['faculty_phd'], $data['citations'],
        $data['publications'], $data['placements'], $data['median_ctc'], $data['diversity'], $data['intl_students'],
        $data['patents'], $data['industry_collab'], $data['startup_count'], $data['mou_count'], $score);
    $stmt->execute();
    echo "<div class='alert alert-success mt-2'>Data saved with UIRF Score: $score</div>";
}
include '../includes/footer.php';
?>

4️⃣ institutions/list.php – View All Institutions

<?php include '../config/db.php'; include '../includes/header.php'; ?>
<h2>Institution Ranking List</h2>
<table class="table table-bordered table-striped">
    <thead>
        <tr><th>Name</th><th>UIRF Score</th></tr>
    </thead>
    <tbody>
    <?php
    $result = $conn->query("SELECT institution_name, uirf_score FROM institutions ORDER BY uirf_score DESC");
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>{$row['institution_name']}</td><td>{$row['uirf_score']}</td></tr>";
    }
    ?>
    </tbody>
</table>
<?php include '../includes/footer.php'; ?>

5️⃣ includes/header.php and footer.php

<!-- header.php -->
<!DOCTYPE html>
<html><head>
    <title>UIRF Dashboard</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
</head><body class="p-4"><div class="container">
<!-- footer.php -->
</div></body></html>

6️⃣ SQL: CREATE DATABASE and Table

CREATE DATABASE uirf_db;
USE uirf_db;

CREATE TABLE institutions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    institution_name VARCHAR(255),
    academic_rep FLOAT,
    faculty_phd FLOAT,
    citations FLOAT,
    publications FLOAT,
    placements FLOAT,
    median_ctc FLOAT,
    diversity FLOAT,
    intl_students FLOAT,
    patents FLOAT,
    industry_collab FLOAT,
    startup_count FLOAT,
    mou_count FLOAT,
    uirf_score FLOAT
);

๐Ÿงช Run Locally

  1. Save files under uirf_dashboard/

  2. Import the SQL schema

  3. Run php -S localhost:8000 inside the folder

  4. Access via http://localhost:8000/institutions/add.php to add data
    or http://localhost:8000/institutions/list.php to view rankings


Here’s a fully upgraded version of the UIRF Ranking Dashboard with:

  1. Role-based login system (Admin and Institution)

  2. ๐Ÿ“Š Chart.js Integration to display UIRF score visualizations


๐Ÿ” 1. DATABASE STRUCTURE ADDITION: users TABLE

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) UNIQUE,
    password VARCHAR(255),
    role ENUM('admin', 'institution') NOT NULL
);

๐Ÿ”‘ Example admin user:

INSERT INTO users (username, password, role) VALUES
('admin', MD5('admin123'), 'admin'),
('inst1', MD5('instpass'), 'institution');

๐Ÿง  2. auth/login.php – Role-Based Login Page

<?php
session_start();
include '../config/db.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST["username"];
    $password = md5($_POST["password"]);

    $stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?");
    $stmt->bind_param("ss", $username, $password);
    $stmt->execute();
    $res = $stmt->get_result();
    if ($res->num_rows == 1) {
        $user = $res->fetch_assoc();
        $_SESSION["username"] = $user["username"];
        $_SESSION["role"] = $user["role"];
        header("Location: ../index.php");
    } else {
        $error = "Invalid Login";
    }
}
?>

<form method="post" class="container mt-5">
    <h3>Login</h3>
    <?php if (isset($error)) echo "<div class='alert alert-danger'>$error</div>"; ?>
    <input type="text" name="username" required class="form-control mb-2" placeholder="Username">
    <input type="password" name="password" required class="form-control mb-2" placeholder="Password">
    <button type="submit" class="btn btn-primary">Login</button>
</form>

๐Ÿ” 3. index.php – Role Based Redirect

<?php
session_start();
if (!isset($_SESSION['role'])) {
    header("Location: auth/login.php");
    exit;
}
$role = $_SESSION['role'];
if ($role == 'admin') {
    header("Location: institutions/list.php");
} else {
    header("Location: institutions/add.php");
}

๐Ÿ”’ 4. Restrict add.php and list.php Access

๐Ÿ”ธ Add this to top of both files:

session_start();
if (!isset($_SESSION['role'])) {
    header("Location: ../auth/login.php");
    exit;
}
if ($_SESSION['role'] != 'admin' && basename(__FILE__) == 'list.php') {
    die("Access denied. Only admin can view rankings.");
}

๐Ÿ“Š 5. Chart: Visualize UIRF Scores in list.php

Add inside list.php below table:

➕ Include Chart.js

<canvas id="uirfChart" height="100"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
    const ctx = document.getElementById('uirfChart').getContext('2d');
    const chartData = {
        labels: [<?php
            $res = $conn->query("SELECT institution_name FROM institutions ORDER BY uirf_score DESC");
            while($r = $res->fetch_assoc()) echo "'".$r['institution_name']."',";
        ?>],
        datasets: [{
            label: 'UIRF Score',
            data: [<?php
                $res = $conn->query("SELECT uirf_score FROM institutions ORDER BY uirf_score DESC");
                while($r = $res->fetch_assoc()) echo $r['uirf_score'].",";
            ?>],
            backgroundColor: 'rgba(54, 162, 235, 0.6)',
            borderColor: 'rgba(54, 162, 235, 1)',
            borderWidth: 1
        }]
    };

    new Chart(ctx, {
        type: 'bar',
        data: chartData,
        options: {
            responsive: true,
            scales: {
                y: {
                    beginAtZero: true,
                    title: { display: true, text: 'Score' }
                },
                x: {
                    ticks: { autoSkip: false }
                }
            }
        }
    });
</script>

✅ 6. Optional: Logout Script

auth/logout.php:

<?php
session_start();
session_destroy();
header("Location: login.php");
?>

Add in header:

<a href="../auth/logout.php" class="btn btn-sm btn-danger float-end">Logout</a>

✅ Final Notes

  • Admin sees ranking list with Chart.js bar graph

  • Institutions can only add their data

  • Extend later with:

    • User management UI

    • Export to Excel/PDF

    • Score breakdown per dimension



Thursday, June 26, 2025

Course Types, Distribution and Revision cycle

Suggested Course Types(CT)  and Distribution of CT

Course TypePercentage of Total CreditsDescription
Core Courses30–40%
Fundamental subjects of the discipline (e.g., Physics, Mathematics, Programming for CSE)

Professional/Discipline-Specific30–35%Advanced or applied courses in the major discipline (e.g., Data Structures, Machine Learning for CSE)

Elective Courses10–15%In-discipline electives chosen by students based on interest

Open Electives5–10%Interdisciplinary courses (e.g., humanities, business, design) taken across departments
Value-Added Courses5–10%Soft skills, ethics, environmental science, foreign languages, yoga, etc.
Internships / Projects / Capstone5–10%Industry projects, internships, or research-based projects
  •  

Thursday, June 12, 2025

Schema for SIRF

 Here is the complete SQL schema and sample data inserts for your educational ecosystem involving Universities, Colleges, Departments, Programs, Courses, Teachers, Students, Roles, Users, and Documents:


๐Ÿงฑ SQL DDL: Create Tables

-- Table: universities
CREATE TABLE universities (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    type ENUM('Public', 'Private') NOT NULL,
    location VARCHAR(255),
    state VARCHAR(100),
    website VARCHAR(255)
);

-- Table: colleges
CREATE TABLE colleges (
    id INT AUTO_INCREMENT PRIMARY KEY,
    university_id INT,
    name VARCHAR(255) NOT NULL,
    category ENUM('Affiliated', 'Autonomous', 'Campus') NOT NULL,
    location VARCHAR(255),
    email VARCHAR(255),
    contact_no VARCHAR(20),
    FOREIGN KEY (university_id) REFERENCES universities(id)
);

-- Table: departments
CREATE TABLE departments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    college_id INT,
    name VARCHAR(255) NOT NULL,
    code VARCHAR(50),
    FOREIGN KEY (college_id) REFERENCES colleges(id)
);

-- Table: programs
CREATE TABLE programs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    department_id INT,
    name VARCHAR(255) NOT NULL,
    level ENUM('UG', 'PG', 'PhD') NOT NULL,
    duration_years INT,
    FOREIGN KEY (department_id) REFERENCES departments(id)
);

-- Table: courses
CREATE TABLE courses (
    id INT AUTO_INCREMENT PRIMARY KEY,
    program_id INT,
    code VARCHAR(20),
    name VARCHAR(255),
    semester INT,
    credits INT,
    FOREIGN KEY (program_id) REFERENCES programs(id)
);

-- Table: teachers
CREATE TABLE teachers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    department_id INT,
    name VARCHAR(255),
    email VARCHAR(255),
    mobile VARCHAR(20),
    designation VARCHAR(100),
    qualification VARCHAR(100),
    doj DATE,
    photo VARCHAR(255),
    FOREIGN KEY (department_id) REFERENCES departments(id)
);

-- Table: students
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    department_id INT,
    program_id INT,
    name VARCHAR(255),
    email VARCHAR(255),
    mobile VARCHAR(20),
    gender ENUM('Male', 'Female', 'Other'),
    dob DATE,
    enrollment_no VARCHAR(100),
    admission_year YEAR,
    current_sem INT,
    photo VARCHAR(255),
    FOREIGN KEY (department_id) REFERENCES departments(id),
    FOREIGN KEY (program_id) REFERENCES programs(id)
);

-- Table: roles
CREATE TABLE roles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL UNIQUE
);

-- Table: users
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(255),
    role_id INT,
    student_id INT,
    teacher_id INT,
    FOREIGN KEY (role_id) REFERENCES roles(id),
    FOREIGN KEY (student_id) REFERENCES students(id),
    FOREIGN KEY (teacher_id) REFERENCES teachers(id)
);

-- Table: documents
CREATE TABLE documents (
    id INT AUTO_INCREMENT PRIMARY KEY,
    student_id INT,
    doc_type ENUM('TC', 'MC', 'Marksheets') NOT NULL,
    file_path VARCHAR(255),
    uploaded_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (student_id) REFERENCES students(id)
);

Sample INSERT Statements (2 per table)

-- Sample Universities
INSERT INTO universities (name, type, location, state, website) VALUES 
('Tamil Nadu State University', 'Public', 'Chennai', 'Tamil Nadu', 'http://tnsu.edu.in'),
('Global Tech University', 'Private', 'Coimbatore', 'Tamil Nadu', 'http://gtu.ac.in');

-- Sample Colleges
INSERT INTO colleges (university_id, name, category, location, email, contact_no) VALUES 
(1, 'Government Arts College', 'Affiliated', 'Salem', 'gac@example.com', '0427-1234567'),
(2, 'GTU School of Engineering', 'Campus', 'Coimbatore', 'engg@gtu.ac.in', '0422-7654321');

-- Sample Departments
INSERT INTO departments (college_id, name, code) VALUES 
(1, 'Computer Science', 'CSE'),
(2, 'Electronics and Communication', 'ECE');

-- Sample Programs
INSERT INTO programs (department_id, name, level, duration_years) VALUES 
(1, 'B.Sc Computer Science', 'UG', 3),
(2, 'M.E Communication Systems', 'PG', 2);

-- Sample Courses
INSERT INTO courses (program_id, code, name, semester, credits) VALUES 
(1, 'CS101', 'Programming Fundamentals', 1, 4),
(2, 'EC501', 'Digital Signal Processing', 1, 4);

-- Sample Teachers
INSERT INTO teachers (department_id, name, email, mobile, designation, qualification, doj, photo) VALUES 
(1, 'Dr. R. Meena', 'meena@edu.in', '9000000001', 'Professor', 'Ph.D', '2010-06-15', 'meena.jpg'),
(2, 'Mr. K. Raj', 'raj@gtu.ac.in', '9000000002', 'Assistant Professor', 'M.Tech', '2018-07-10', 'raj.jpg');

-- Sample Students
INSERT INTO students (department_id, program_id, name, email, mobile, gender, dob, enrollment_no, admission_year, current_sem, photo) VALUES 
(1, 1, 'Anita Sharma', 'anita@edu.in', '9876543210', 'Female', '2003-04-22', 'UG2023CS001', 2023, 2, 'anita.jpg'),
(2, 2, 'Vijay Kumar', 'vijay@gtu.ac.in', '9876509876', 'Male', '2001-11-10', 'PG2024EC002', 2024, 1, 'vijay.jpg');

-- Sample Roles
INSERT INTO roles (name) VALUES 
('Admin'), 
('Teacher'), 
('Student');

-- Sample Users
INSERT INTO users (username, password, email, role_id, student_id, teacher_id) VALUES 
('anita23', 'hashed_pwd1', 'anita@edu.in', 3, 1, NULL),
('meena_r', 'hashed_pwd2', 'meena@edu.in', 2, NULL, 1);

-- Sample Documents
INSERT INTO documents (student_id, doc_type, file_path) VALUES 
(1, 'TC', 'docs/anita_tc.pdf'),
(1, 'Marksheets', 'docs/anita_marksheet1.pdf');

Would you like:

  • A downloadable .sql file with all the above?

  • PHP CRUD interfaces for any/all tables?

AI for Higher Education Teachers

https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/bade/documents/products-and-services/en-us/education/2025-Microsoft-...