academy/resources/views/students.blade.php

412 lines
12 KiB
PHP

@extends('layouts.app')
@section('title', 'Student Portal')
@section('content')
<style>
:root{
--primary:#5E244E;
--secondary:#8B3A74;
--light:#f8f4f7;
}
body {
font-family: Arial, Helvetica, sans-serif;
}
.hero{
background:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,.65)),
url('https://images.pexels.com/photos/3802510/pexels-photo-3802510.jpeg');
background-size:cover;
background-position:center;
color:#fff;
padding:80px 0;
text-align:center;
}
.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 එක Open වෙද්දී Zoom-In වෙන්න */
.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;
}
.btn-modal-cancel {
background: transparent;
border: 1.5px solid #cbd5e1;
color: #64748b;
font-weight: 600;
padding: 10px 0;
transition: all 0.2s;
width: 100%;
border-radius: 8px;
}
.btn-modal-cancel:hover {
background: #f1f5f9;
color: #334155;
border-color: #94a3b8;
}
.btn-modal-login {
background: var(--primary);
color: #fff;
border: none;
font-weight: 600;
padding: 10px 0;
box-shadow: 0 4px 12px rgba(94, 36, 78, 0.2);
transition: all 0.2s;
width: 100%;
border-radius: 8px;
}
.btn-modal-login:hover {
background: var(--secondary);
color: #fff;
transform: translateY(-1px);
box-shadow: 0 6px 15px rgba(94, 36, 78, 0.3);
}
/* ========================================================
Custom CSS Scroll Animations
======================================================== */
.animate-item {
opacity: 0;
will-change: transform, opacity;
transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
}
.fade-up-init {
transform: translateY(30px);
}
.fade-in-init {
transform: scale(0.98);
}
.slide-right-init {
transform: translateX(30px);
}
.animate-item.animated {
opacity: 1;
transform: translate(0) scale(1);
}
</style>
<section class="hero">
<div class="container">
<div class="animate-item animated fade-up-init">
<h1 class="fw-bold display-5">Student Portal</h1>
<p class="mt-3 fs-5" style="max-width: 700px; margin: auto;">
Access your courses, timetable, assignments, examination results,
payments and profile from one place.
</p>
<button onclick="studentlogin()" class="btn btn-portal mt-4 shadow">
Student Login
</button>
</div>
</div>
</section>
<!-- SERVICES SECTION -->
<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>
<!-- සේවා කාඩ් සියල්ල එකපාර ලස්සනට Fade-in වේ -->
<div class="row g-4 animate-item fade-in-init">
<div class="col-md-4">
<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>
</div>
<div class="col-md-4">
<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">
<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">
<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">
<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">Fee Payments</h4>
<p class="text-muted mb-0">Pay course fees and download payment receipts.</p>
</div>
</div>
<div class="col-md-4">
<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>
<!-- QUICK LINKS -->
<section class="py-5 bg-light overflow-hidden">
<div class="container">
<div class="text-center mb-5 animate-item fade-up-init">
<h2 class="fw-bold">Quick Links</h2>
</div>
<!-- දකුණේ සිට වමට Slide වේ -->
<div class="row text-center animate-item slide-right-init">
<div class="col-md-3 mb-3">
<a href="#" class="btn btn-outline-dark w-100 py-2 fw-semibold rounded-pill">Academic Calendar</a>
</div>
<div class="col-md-3 mb-3">
<a href="#" class="btn btn-outline-dark w-100 py-2 fw-semibold rounded-pill">Student Handbook</a>
</div>
<div class="col-md-3 mb-3">
<a href="#" class="btn btn-outline-dark w-100 py-2 fw-semibold rounded-pill">Examination Notices</a>
</div>
<div class="col-md-3 mb-3">
<a href="#" class="btn btn-outline-dark w-100 py-2 fw-semibold rounded-pill">Contact Support</a>
</div>
</div>
</div>
</section>
<!-- BOTTOM CTA -->
<section class="py-5 bg-white">
<div class="container text-center animate-item fade-up-init">
<h2 class="fw-bold">Ready to Access Your Student Account?</h2>
<p class="text-muted fs-5">Log in to manage your academic activities and stay updated.</p>
<button onclick="studentlogin()" class="btn btn-portal mt-3 shadow">
Student Login
</button>
</div>
</section>
<!-- LOGIN MODAL -->
<div class="modal fade" id="studentLoginModal" tabindex="-1" aria-labelledby="studentLoginModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header d-flex align-items-center justify-content-between">
<h5 class="modal-title w-100 text-center" id="studentLoginModalLabel">
<i class="fa-solid fa-lock-open me-2" style="font-size: 20px; color: var(--secondary);"></i>
Student Portal Login
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form action="{{ route('student.login.submit') }}" method="POST" id="studentLoginForm">
@csrf
<div class="modal-body">
<div class="mb-3">
<label for="username" class="form-label">Username / Student ID</label>
<div class="input-group">
<span class="input-group-text"><i class="fa-solid fa-user-graduate"></i></span>
<input type="text" name="username" id="username" class="form-control" placeholder="Enter your student ID" required>
</div>
</div>
<div class="mb-3">
<label for="password" class="form-label">Password</label>
<div class="input-group">
<span class="input-group-text"><i class="fa-solid fa-key"></i></span>
<input type="password" name="password" id="password" class="form-control" placeholder="Enter your password" required>
</div>
</div>
<div class="mb-3">
<label for="pin" class="form-label">Security PIN</label>
<div class="input-group">
<span class="input-group-text"><i class="fa-solid fa-shield-halved"></i></span>
<input type="password" name="pin" id="pin" class="form-control" maxlength="6" placeholder="Enter 4-6 digit PIN" required>
</div>
</div>
</div>
<div class="modal-footer d-flex gap-2 justify-content-center">
<button type="button" class="btn btn-modal-cancel" data-bs-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-modal-login"> Login </button>
</div>
</form>
</div>
</div>
</div>
<script>
function studentlogin() {
var myModal = new bootstrap.Modal(document.getElementById('studentLoginModal'));
myModal.show();
}
document.addEventListener('DOMContentLoaded', function () {
const animatedElements = document.querySelectorAll('.animate-item');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('animated');
observer.unobserve(entry.target);
}
});
}, {
threshold: 0.10
});
animatedElements.forEach(el => observer.observe(el));
});
</script>
@endsection