academy/resources/views/StudentPortal.blade.php

473 lines
16 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<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;
}
}
</style>
</head>
<body>
<!-- Sidebar -->
<aside class="sidebar" id="sidebar">
<div class="brand"><i class="fa-solid fa-graduation-cap me-2"></i>Student Portal</div>
<nav class="nav flex-column">
<a href="#" class="nav-link active"><i class="fa-solid fa-gauge"></i>Dashboard</a>
<a href="#" class="nav-link"><i class="fa-solid fa-book"></i>My Courses</a>
<a href="#" class="nav-link"><i class="fa-solid fa-calendar-days"></i>Class Timetable</a>
<a href="#" class="nav-link"><i class="fa-solid fa-file-lines"></i>Assignments</a>
<a href="#" class="nav-link"><i class="fa-solid fa-square-poll-vertical"></i>Exam Results</a>
<a href="#" class="nav-link"><i class="fa-solid fa-credit-card"></i>Fee Payments</a>
<a href="#" class="nav-link"><i class="fa-solid fa-user"></i>Profile</a>
<a href="student-portal-fixed.html" class="nav-link logout-link mt-3"><i class="fa-solid fa-right-from-bracket"></i>Logout</a>
</nav>
</aside>
<!-- 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, Nimasha</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">Rs. 12,000</div>
<div class="stat-label">Balance Due</div>
</div>
</div>
</div>
<div class="row g-3">
<!-- Courses -->
<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 &amp; 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 &amp; 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 &amp; 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>