671 lines
21 KiB
PHP
671 lines
21 KiB
PHP
@extends('layouts.studentportalnav')
|
|
|
|
@section('title', 'Dashboard')
|
|
|
|
@section('content')
|
|
|
|
|
|
<head>
|
|
<!-- <meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Dashboard - Student Portal</title>
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css"> -->
|
|
|
|
<style>
|
|
:root{
|
|
--primary:#5E244E;
|
|
--secondary:#8B3A74;
|
|
--light:#f8f4f7;
|
|
--sidebar-width: 260px;
|
|
}
|
|
|
|
body{
|
|
font-family:'Inter', sans-serif;
|
|
background:#f5f3f6;
|
|
}
|
|
|
|
/* ---------- Sidebar ---------- */
|
|
.sidebar{
|
|
width:var(--sidebar-width);
|
|
min-height:100vh;
|
|
background:var(--primary);
|
|
color:#fff;
|
|
position:fixed;
|
|
top:0;
|
|
left:0;
|
|
padding:24px 0;
|
|
transition:.3s;
|
|
z-index:1030;
|
|
}
|
|
|
|
.sidebar .brand{
|
|
padding:0 24px 24px;
|
|
font-weight:700;
|
|
font-size:1.15rem;
|
|
border-bottom:1px solid rgba(255,255,255,.12);
|
|
margin-bottom:12px;
|
|
}
|
|
|
|
.sidebar .nav-link{
|
|
color:rgba(255,255,255,.75);
|
|
padding:12px 24px;
|
|
border-radius:0;
|
|
font-size:.95rem;
|
|
display:flex;
|
|
align-items:center;
|
|
gap:12px;
|
|
transition:.2s;
|
|
border-left:3px solid transparent;
|
|
}
|
|
|
|
.sidebar .nav-link i{ width:20px; text-align:center; }
|
|
|
|
.sidebar .nav-link:hover{
|
|
background:rgba(255,255,255,.06);
|
|
color:#fff;
|
|
}
|
|
|
|
.sidebar .nav-link.active{
|
|
background:rgba(255,255,255,.1);
|
|
color:#fff;
|
|
border-left:3px solid #fff;
|
|
font-weight:600;
|
|
}
|
|
|
|
.sidebar .logout-link{
|
|
color:rgba(255,255,255,.6);
|
|
}
|
|
|
|
.sidebar .logout-link:hover{
|
|
color:#fff;
|
|
background:rgba(220,53,69,.25);
|
|
}
|
|
|
|
/* ---------- Main content ---------- */
|
|
.main{
|
|
margin-left:var(--sidebar-width);
|
|
padding:28px 32px 60px;
|
|
}
|
|
|
|
.topbar{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:space-between;
|
|
margin-bottom:28px;
|
|
}
|
|
|
|
.avatar{
|
|
width:42px;
|
|
height:42px;
|
|
border-radius:50%;
|
|
background:var(--secondary);
|
|
color:#fff;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
font-weight:600;
|
|
}
|
|
|
|
/* ---------- Stat cards ---------- */
|
|
.stat-card{
|
|
border:none;
|
|
border-radius:14px;
|
|
padding:22px;
|
|
box-shadow:0 5px 20px rgba(0,0,0,.06);
|
|
height:100%;
|
|
}
|
|
|
|
.stat-icon{
|
|
width:48px;
|
|
height:48px;
|
|
border-radius:12px;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
font-size:20px;
|
|
color:#fff;
|
|
margin-bottom:14px;
|
|
}
|
|
|
|
.stat-value{
|
|
font-size:1.6rem;
|
|
font-weight:700;
|
|
color:#1e1e2f;
|
|
}
|
|
|
|
.stat-label{
|
|
color:#6b7280;
|
|
font-size:.85rem;
|
|
}
|
|
|
|
/* ---------- Panels ---------- */
|
|
.panel{
|
|
background:#fff;
|
|
border-radius:14px;
|
|
padding:24px;
|
|
box-shadow:0 5px 20px rgba(0,0,0,.06);
|
|
}
|
|
|
|
.panel h5{
|
|
font-weight:700;
|
|
color:#1e1e2f;
|
|
margin-bottom:18px;
|
|
}
|
|
|
|
.course-row{
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:space-between;
|
|
padding:14px 0;
|
|
border-bottom:1px solid #f1f1f4;
|
|
}
|
|
|
|
.course-row:last-child{ border-bottom:none; }
|
|
|
|
.course-tag{
|
|
width:38px;
|
|
height:38px;
|
|
border-radius:10px;
|
|
background:var(--light);
|
|
color:var(--primary);
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
font-weight:700;
|
|
font-size:.85rem;
|
|
}
|
|
|
|
.progress{
|
|
height:6px;
|
|
border-radius:10px;
|
|
background:#eee;
|
|
}
|
|
|
|
.progress-bar{
|
|
background:var(--primary);
|
|
}
|
|
|
|
.deadline-item{
|
|
display:flex;
|
|
gap:14px;
|
|
padding:12px 0;
|
|
border-bottom:1px solid #f1f1f4;
|
|
}
|
|
|
|
.deadline-item:last-child{ border-bottom:none; }
|
|
|
|
.deadline-date{
|
|
min-width:52px;
|
|
text-align:center;
|
|
background:var(--light);
|
|
color:var(--primary);
|
|
border-radius:10px;
|
|
padding:6px 4px;
|
|
font-weight:700;
|
|
font-size:.8rem;
|
|
line-height:1.2;
|
|
}
|
|
|
|
.badge-soft{
|
|
background:var(--light);
|
|
color:var(--primary);
|
|
font-weight:600;
|
|
padding:5px 10px;
|
|
border-radius:8px;
|
|
font-size:.75rem;
|
|
}
|
|
|
|
/* ---------- Mobile ---------- */
|
|
.sidebar-toggle{
|
|
display:none;
|
|
}
|
|
|
|
@media (max-width: 991px){
|
|
.sidebar{
|
|
left:calc(-1 * var(--sidebar-width));
|
|
}
|
|
.sidebar.show{
|
|
left:0;
|
|
}
|
|
.main{
|
|
margin-left:0;
|
|
}
|
|
.sidebar-toggle{
|
|
display:inline-flex;
|
|
}
|
|
}
|
|
|
|
|
|
.portal-card{
|
|
border:none;
|
|
border-radius:15px;
|
|
transition:.4s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
box-shadow:0 5px 20px rgba(0,0,0,.08);
|
|
border: 1px solid #efeff4;
|
|
}
|
|
|
|
.portal-card:hover{
|
|
transform:translateY(-8px);
|
|
border-color: var(--primary);
|
|
box-shadow: 0 15px 30px rgba(94, 36, 78, 0.1);
|
|
}
|
|
|
|
.portal-icon{
|
|
width:70px;
|
|
height:70px;
|
|
background:#5E244E;
|
|
color:#fff;
|
|
border-radius:50%;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
font-size:28px;
|
|
margin:auto;
|
|
transition: 0.4s ease;
|
|
}
|
|
|
|
.portal-card:hover .portal-icon {
|
|
background: var(--secondary);
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.btn-portal{
|
|
background:#5E244E;
|
|
color:#fff;
|
|
padding:12px 35px;
|
|
border: none;
|
|
border-radius: 8px;
|
|
font-weight: 600;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.btn-portal:hover{
|
|
background:#8B3A74;
|
|
color:#fff;
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 5px 15px rgba(94, 36, 78, 0.3);
|
|
}
|
|
|
|
.modal-content {
|
|
border: none;
|
|
border-radius: 16px;
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
|
|
|
|
.modal.fade .modal-dialog {
|
|
transform: scale(0.85);
|
|
transition: transform 0.3s ease-out;
|
|
}
|
|
.modal.show .modal-dialog {
|
|
transform: scale(1);
|
|
}
|
|
|
|
.modal-header {
|
|
background: transparent;
|
|
border-bottom: none;
|
|
padding: 25px 25px 10px;
|
|
}
|
|
|
|
.modal-title {
|
|
color: var(--primary);
|
|
font-weight: 700;
|
|
font-size: 1.35rem;
|
|
}
|
|
|
|
.modal-body {
|
|
padding: 10px 25px 20px;
|
|
}
|
|
|
|
.input-group-text {
|
|
background-color: #f8fafc;
|
|
border-color: #cbd5e1;
|
|
color: #64748b;
|
|
border-top-left-radius: 8px;
|
|
border-bottom-left-radius: 8px;
|
|
}
|
|
|
|
.form-label {
|
|
color: #475569;
|
|
font-weight: 500;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.form-control {
|
|
border: 1px solid #cbd5e1;
|
|
padding: 0.65rem 0.75rem;
|
|
font-size: 0.95rem;
|
|
border-top-right-radius: 8px;
|
|
border-bottom-right-radius: 8px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.form-control:focus {
|
|
border-color: var(--secondary);
|
|
box-shadow: 0 0 0 4px rgba(139, 58, 116, 0.12);
|
|
outline: 0;
|
|
}
|
|
|
|
.input-group:focus-within .input-group-text {
|
|
border-color: var(--secondary);
|
|
color: var(--secondary);
|
|
}
|
|
|
|
.modal-footer {
|
|
background: transparent;
|
|
border-top: none;
|
|
padding: 0 25px 30px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
|
|
|
|
|
|
<!-- Main content -->
|
|
<div class="main">
|
|
<div class="topbar">
|
|
<div>
|
|
<!-- <button class="btn btn-sm btn-outline-secondary sidebar-toggle me-2" id="sidebarToggle"><i class="fa-solid fa-bars"></i></button> -->
|
|
<h4 class="fw-bold mb-0 d-inline">Welcome back, Imaa</h4>
|
|
<p class="text-muted mb-0">Here's what's happening with your studies today.</p>
|
|
</div>
|
|
<div class="d-flex align-items-center gap-3">
|
|
<i class="fa-regular fa-bell fs-5 text-secondary"></i>
|
|
<div class="avatar">N</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Stat cards -->
|
|
<div class="row g-3 mb-4">
|
|
<div class="col-6 col-lg-3" >
|
|
|
|
<div class="card stat-card">
|
|
<div class="stat-icon" style="background:#5E244E;"><i class="fa-solid fa-book"></i></div>
|
|
<div class="stat-value">6</div>
|
|
<div class="stat-label">Enrolled Courses</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="col-6 col-lg-3">
|
|
<div class="card stat-card">
|
|
<div class="stat-icon" style="background:#0d9488;"><i class="fa-solid fa-file-circle-check"></i></div>
|
|
<div class="stat-value">3</div>
|
|
<div class="stat-label">Pending Assignments</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-6 col-lg-3">
|
|
<div class="card stat-card">
|
|
<div class="stat-icon" style="background:#d97706;"><i class="fa-solid fa-square-poll-vertical"></i></div>
|
|
<div class="stat-value">78%</div>
|
|
<div class="stat-label">Average Result</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-6 col-lg-3">
|
|
<div class="card stat-card">
|
|
<div class="stat-icon" style="background:#dc2626;"><i class="fa-solid fa-credit-card"></i></div>
|
|
<div class="stat-value">2</div>
|
|
<div class="stat-label">Examination Notices</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row g-3">
|
|
<!-- Courses -->
|
|
<section class="py-5 overflow-hidden">
|
|
<div class="container">
|
|
<div class="text-center mb-5 animate-item fade-up-init" >
|
|
<h2 class="fw-bold">Student Services</h2>
|
|
<p class="text-muted">
|
|
Everything you need during your academic journey.
|
|
</p>
|
|
</div>
|
|
|
|
|
|
<div class="row g-4 animate-item fade-in-init">
|
|
<div class="col-md-4">
|
|
<a href="/mycourse" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-book"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">My Courses</h4>
|
|
<p class="text-muted mb-0">View enrolled courses and learning materials.</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<a href="/timetable" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-calendar-days"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">Class Timetable</h4>
|
|
<p class="text-muted mb-0">Check your weekly lecture schedule.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<a href="/Assignments" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-file-lines"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">Assignments</h4>
|
|
<p class="text-muted mb-0">Submit assignments and download resources.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<a href="/results" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-square-poll-vertical"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">Exam Results</h4>
|
|
<p class="text-muted mb-0">View semester and final examination results.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<a href="/Feedback&Complain" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-credit-card"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">Feedback & Complain Form</h4>
|
|
<p class="text-muted mb-0">Feedback & Complain Form.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<a href="/StudentProfile" style="text-decoration: none;">
|
|
<div class="card portal-card h-100 text-center p-4">
|
|
<div class="portal-icon">
|
|
<i class="fa-solid fa-user"></i>
|
|
</div>
|
|
<h4 class="mt-4 fw-bold">Student Profile</h4>
|
|
<p class="text-muted mb-0">Update your personal information securely.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<!-- <div class="col-lg-7">
|
|
<div class="panel mb-3">
|
|
<h5>My Courses</h5>
|
|
|
|
<div class="course-row">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="course-tag">DS</div>
|
|
<div>
|
|
<div class="fw-semibold">Data Structures & Algorithms</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Dr. K. Perera</div>
|
|
</div>
|
|
</div>
|
|
<div style="width:120px;">
|
|
<div class="progress"><div class="progress-bar" style="width:72%"></div></div>
|
|
<div class="text-muted text-end" style="font-size:.75rem;">72%</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="course-row">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="course-tag">WD</div>
|
|
<div>
|
|
<div class="fw-semibold">Web Application Development</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Ms. S. Fernando</div>
|
|
</div>
|
|
</div>
|
|
<div style="width:120px;">
|
|
<div class="progress"><div class="progress-bar" style="width:58%"></div></div>
|
|
<div class="text-muted text-end" style="font-size:.75rem;">58%</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="course-row">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="course-tag">DB</div>
|
|
<div>
|
|
<div class="fw-semibold">Database Management Systems</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Mr. R. Silva</div>
|
|
</div>
|
|
</div>
|
|
<div style="width:120px;">
|
|
<div class="progress"><div class="progress-bar" style="width:85%"></div></div>
|
|
<div class="text-muted text-end" style="font-size:.75rem;">85%</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="course-row">
|
|
<div class="d-flex align-items-center gap-3">
|
|
<div class="course-tag">NW</div>
|
|
<div>
|
|
<div class="fw-semibold">Computer Networks</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Dr. A. Bandara</div>
|
|
</div>
|
|
</div>
|
|
<div style="width:120px;">
|
|
<div class="progress"><div class="progress-bar" style="width:40%"></div></div>
|
|
<div class="text-muted text-end" style="font-size:.75rem;">40%</div>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
|
|
<!-- Exam Results -->
|
|
<!-- <div class="panel">
|
|
<h5>Recent Exam Results</h5>
|
|
<div class="table-responsive">
|
|
<table class="table table-borderless align-middle mb-0">
|
|
<thead>
|
|
<tr class="text-muted" style="font-size:.8rem;">
|
|
<th>Course</th>
|
|
<th>Semester</th>
|
|
<th>Grade</th>
|
|
<th>Status</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Data Structures & Algorithms</td>
|
|
<td>Sem 3</td>
|
|
<td class="fw-semibold">A-</td>
|
|
<td><span class="badge-soft">Passed</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Database Management Systems</td>
|
|
<td>Sem 3</td>
|
|
<td class="fw-semibold">B+</td>
|
|
<td><span class="badge-soft">Passed</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td>Computer Networks</td>
|
|
<td>Sem 2</td>
|
|
<td class="fw-semibold">B</td>
|
|
<td><span class="badge-soft">Passed</span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
|
|
<!-- Sidebar right column -->
|
|
<!-- <div class="col-lg-5">
|
|
<div class="panel mb-3">
|
|
<h5>Upcoming Deadlines</h5>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">12<br>JUL</div>
|
|
<div>
|
|
<div class="fw-semibold">Database Assignment 02</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Database Management Systems</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">15<br>JUL</div>
|
|
<div>
|
|
<div class="fw-semibold">Web Dev Project Submission</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Web Application Development</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">20<br>JUL</div>
|
|
<div>
|
|
<div class="fw-semibold">Networks Quiz 03</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Computer Networks</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="panel">
|
|
<h5>Today's Timetable</h5>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">9<br>AM</div>
|
|
<div>
|
|
<div class="fw-semibold">Data Structures & Algorithms</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Lecture Hall 2</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">11<br>AM</div>
|
|
<div>
|
|
<div class="fw-semibold">Database Lab</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Computer Lab 1</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="deadline-item">
|
|
<div class="deadline-date">2<br>PM</div>
|
|
<div>
|
|
<div class="fw-semibold">Computer Networks</div>
|
|
<div class="text-muted" style="font-size:.8rem;">Lecture Hall 5</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
document.getElementById('sidebarToggle')?.addEventListener('click', function () {
|
|
document.getElementById('sidebar').classList.toggle('show');
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |