2nd push
This commit is contained in:
parent
bd3763233d
commit
1d2790b421
|
|
@ -0,0 +1,91 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle Student Registration (POST)
|
||||||
|
*/
|
||||||
|
public function register(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'first_name' => 'required|string|max:255',
|
||||||
|
'last_name' => 'required|string|max:255',
|
||||||
|
'email' => 'required|string|email|max:255|unique:users',
|
||||||
|
'phone' => 'required|string|max:15',
|
||||||
|
'password' => 'required|string|min:8|confirmed',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::create([
|
||||||
|
'first_name' => $request->first_name,
|
||||||
|
'last_name' => $request->last_name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'phone' => $request->phone,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Automatically logs the new user in
|
||||||
|
Auth::login($user);
|
||||||
|
|
||||||
|
// FIX: Changed redirect from '/signin' to '/' because they are already logged in
|
||||||
|
return redirect('/')->with('success', 'Registration successful! Welcome to your dashboard.');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle Student Login (POST)
|
||||||
|
*/
|
||||||
|
public function login(Request $request)
|
||||||
|
{
|
||||||
|
$credentials = $request->validate([
|
||||||
|
'email' => 'required|email',
|
||||||
|
'password' => 'required|string',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (Auth::attempt($credentials)) {
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
return redirect()->intended('/')->with('success', 'Welcome back!');
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->withErrors([
|
||||||
|
'email' => 'The provided credentials do not match our records.',
|
||||||
|
])->onlyInput('email');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Handle Async Logout (POST Fetch)
|
||||||
|
*/
|
||||||
|
public function logout(Request $request) // FIX: Restored Request injection
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
if (Auth::check()) {
|
||||||
|
Auth::logout();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flush old fallback explicit keys
|
||||||
|
$request->session()->forget(['user_id', 'user_name']);
|
||||||
|
|
||||||
|
if ($request->session()->isStarted()) {
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json(['success' => true]);
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Log::error('Logout Server Error: ' . $e->getMessage());
|
||||||
|
|
||||||
|
if (isset($_SESSION)) {
|
||||||
|
session_destroy();
|
||||||
|
}
|
||||||
|
return response()->json(['success' => true, 'forced' => true]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -18,11 +18,13 @@ class User extends Authenticatable
|
||||||
*
|
*
|
||||||
* @var list<string>
|
* @var list<string>
|
||||||
*/
|
*/
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'name',
|
'first_name',
|
||||||
'email',
|
'last_name',
|
||||||
'password',
|
'email',
|
||||||
];
|
'phone',
|
||||||
|
'password',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The attributes that should be hidden for serialization.
|
* The attributes that should be hidden for serialization.
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,10 @@ return new class extends Migration
|
||||||
{
|
{
|
||||||
Schema::create('users', function (Blueprint $table) {
|
Schema::create('users', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('name');
|
$table->string('first_name');
|
||||||
|
$table->string('last_name');
|
||||||
$table->string('email')->unique();
|
$table->string('email')->unique();
|
||||||
|
$table->string('phone');
|
||||||
$table->timestamp('email_verified_at')->nullable();
|
$table->timestamp('email_verified_at')->nullable();
|
||||||
$table->string('password');
|
$table->string('password');
|
||||||
$table->rememberToken();
|
$table->rememberToken();
|
||||||
|
|
@ -46,4 +48,4 @@ return new class extends Migration
|
||||||
Schema::dropIfExists('password_reset_tokens');
|
Schema::dropIfExists('password_reset_tokens');
|
||||||
Schema::dropIfExists('sessions');
|
Schema::dropIfExists('sessions');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -163,9 +163,12 @@ Industry-recognized certifications to boost your career.
|
||||||
Join our institute and become a skilled automotive professional.
|
Join our institute and become a skilled automotive professional.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href="# class="btn btn-dark mt-2">
|
|
||||||
Student Portal
|
|
||||||
</a>
|
<div style="display: flex; justify-content:center; width: 100%; ">
|
||||||
|
<a href="/courses" class="bg-gray-100 hover:bg-gray-200 text-gray-700 px-4 py-2 rounded-full text-sm font-medium transition" style="color:#5E244E">
|
||||||
|
Apply Courses
|
||||||
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-header {
|
.form-header {
|
||||||
background: var(--primary);
|
background: #887582;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 25px 40px;
|
padding: 25px 40px;
|
||||||
}
|
}
|
||||||
|
|
@ -57,7 +57,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title {
|
.section-title {
|
||||||
background: #0B3B70;
|
background: #887582;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 14px 20px;
|
padding: 14px 20px;
|
||||||
margin-top: 40px;
|
margin-top: 40px;
|
||||||
|
|
@ -138,7 +138,19 @@
|
||||||
<input type="text" name="nationality" class="form-control">
|
<input type="text" name="nationality" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">Address <span class="required">*</span></label>
|
||||||
|
<input type="text" name="address" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">First Name <span class="required">*</span></label>
|
||||||
|
<input type="text" name="State" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
<label class="form-label">Gender</label>
|
<label class="form-label">Gender</label>
|
||||||
<select name="gender" class="form-select">
|
<select name="gender" class="form-select">
|
||||||
<option selected disabled>Select Gender</option>
|
<option selected disabled>Select Gender</option>
|
||||||
|
|
@ -152,6 +164,7 @@
|
||||||
<label class="form-label">Date of Birth</label>
|
<label class="form-label">Date of Birth</label>
|
||||||
<input type="date" name="dob" class="form-control">
|
<input type="date" name="dob" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section-title">
|
<div class="section-title">
|
||||||
|
|
@ -159,13 +172,36 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">Contact Number <span class="required">*</span></label>
|
||||||
|
<input type="mobile" name="mobile" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">Alternative Contact Number<span class="required">*</span></label>
|
||||||
|
<input type="mobile2" name="mobile2" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-4">
|
<div class="col-md-6 mb-4">
|
||||||
<label class="form-label">Email Address <span class="required">*</span></label>
|
<label class="form-label">Email Address <span class="required">*</span></label>
|
||||||
<input type="email" name="email" class="form-control" required>
|
<input type="email" name="email" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">Preferred contact method </label>
|
||||||
|
<select name="gender" class="form-select">
|
||||||
|
<option selected disabled>Select Your Option</option>
|
||||||
|
<option value="Male">Email</option>
|
||||||
|
<option value="Female">Phone</option>
|
||||||
|
<option value="Female">Sms</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="section-title">
|
<!-- <div class="section-title">
|
||||||
<i class="fa-solid fa-language me-2"></i> Language and Diversity
|
<i class="fa-solid fa-language me-2"></i> Language and Diversity
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -185,18 +221,35 @@
|
||||||
<label class="form-label">Disability <span class="required">*</span></label>
|
<label class="form-label">Disability <span class="required">*</span></label>
|
||||||
<input type="text" name="Disability" class="form-control" required>
|
<input type="text" name="Disability" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section-title">
|
||||||
|
<i class="fa-solid fa-graduation-cap me-2"></i> Education
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="col-md-6 mb-4">
|
||||||
|
<label class="form-label">Still at school?</label>
|
||||||
|
<select name="gender" class="form-select">
|
||||||
|
<option selected disabled>Select Your Option</option>
|
||||||
|
<option value="Male">Yes</option>
|
||||||
|
<option value="Female">No</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="section-title">
|
<div class="section-title">
|
||||||
<i class="fa-solid fa-graduation-cap me-2"></i> Qualifications
|
<i class="fa-solid fa-graduation-cap me-2"></i> Qualifications
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 mb-4">
|
|
||||||
<label class="form-label">Education <span class="required">*</span></label>
|
|
||||||
<input type="text" name="Qualifications" class="form-control" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section-title">
|
<div class="section-title">
|
||||||
<i class="fa-solid fa-phone-flip me-2"></i> Emergency Contacts
|
<i class="fa-solid fa-phone-flip me-2"></i> Emergency Contacts
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
.btn-contact{
|
.btn-contact{
|
||||||
background:var(--primary);
|
background:var(--primary);
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius:30px;
|
/* border-radius:30px; */
|
||||||
padding:10px 30px;
|
padding:10px 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -153,15 +153,25 @@ Send Message
|
||||||
<section class="pb-5">
|
<section class="pb-5">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|
||||||
|
<!-- <iframe
|
||||||
|
src="https://www.google.com/maps/embed/v1/place?key=YOUR_API_KEY&q=place_id:ChIJXdB3Sy_84joRYNze2w86UjQ"
|
||||||
|
width="100%"
|
||||||
|
height="300"
|
||||||
|
style="border:0;border-radius:15px;"
|
||||||
|
allowfullscreen=""
|
||||||
|
loading="lazy">
|
||||||
|
</iframe> -->
|
||||||
|
|
||||||
<iframe
|
<iframe
|
||||||
src="https://www.google.com/maps/embed?pb=!1m18..."
|
src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d989.8732851214081!2d80.0435697!3d7.0771955!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3ae2fc2f4b77d05d%3A0x34523a0fdbdedc60!2sGlitz%20Park!5e0!3m2!1sen!2slk!4v1719999999999!5m2!1sen!2slk"
|
||||||
width="100%"
|
width="100%"
|
||||||
height="300"
|
height="300"
|
||||||
style="border:0;border-radius:15px;"
|
style="border:0;border-radius:15px;"
|
||||||
allowfullscreen=""
|
allowfullscreen=""
|
||||||
loading="lazy">
|
loading="lazy">
|
||||||
</iframe>
|
</iframe>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,14 +11,24 @@
|
||||||
--light:#f8f4f7;
|
--light:#f8f4f7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero{
|
/* .hero{
|
||||||
background:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,.65)),
|
background:linear-gradient(rgba(0,0,0,.65),rgba(0,0,0,.65)),
|
||||||
url('https://images.unsplash.com/photo-1492144534655-ae79c964c9d7?auto=format&fit=crop&w=1600&q=80');
|
url(https://images.unsplash.com/photo-1486006920555-c77dce18193b?auto=format&fit=crop&w=1600&q=80);
|
||||||
background-size:cover;
|
background-size:cover;
|
||||||
background-position:center;
|
background-position:center;
|
||||||
color:#fff;
|
color:#fff;
|
||||||
padding:120px 0;
|
padding:120px 0;
|
||||||
text-align:center;
|
text-align:center;
|
||||||
|
} */
|
||||||
|
.hero {
|
||||||
|
background-image: linear-gradient(rgba(135, 125, 145, 0.65), rgba(0, 0, 0, 0.65)),
|
||||||
|
url('https://images.unsplash.com/photo-1486006920555-c77dce18193b?auto=format&fit=crop&w=1600&q=80');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
color: #fff;
|
||||||
|
padding: 120px 0;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero h1{
|
.hero h1{
|
||||||
|
|
@ -50,11 +60,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.badge-course{
|
.badge-course{
|
||||||
background:var(--primary);
|
background:#887582;
|
||||||
color:#fff;
|
color:#fff;
|
||||||
padding:8px 15px;
|
padding:8px 15px;
|
||||||
border-radius:30px;
|
border-radius:30px;
|
||||||
font-size:13px;
|
font-size:13px;
|
||||||
|
font-weight:30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.read-btn{
|
.read-btn{
|
||||||
|
|
@ -62,6 +73,7 @@
|
||||||
color:#fff;
|
color:#fff;
|
||||||
border-radius:30px;
|
border-radius:30px;
|
||||||
padding:10px 25px;
|
padding:10px 25px;
|
||||||
|
font-weight: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.read-btn:hover{
|
.read-btn:hover{
|
||||||
|
|
@ -186,8 +198,8 @@ $courses=[
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a href="#" class="btn read-btn w-100 mt-4">
|
<a href="/apply" class="btn read-btn w-100 mt-4">
|
||||||
View Details
|
Apply Course
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -3,181 +3,243 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>@yield('title','Automobile Academic')</title>
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
<title>@yield('title', 'Automobile Academic')</title>
|
||||||
|
|
||||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
|
||||||
<link rel="stylesheet"
|
|
||||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
body {
|
||||||
body{
|
font-family: 'Segoe UI', sans-serif;
|
||||||
font-family:Segoe UI,sans-serif;
|
background: #f5f7fb;
|
||||||
background:#f5f7fb;
|
padding-top: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar{
|
.navbar {
|
||||||
background:#5E244E;
|
background: #5E244E;
|
||||||
|
z-index: 1000;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand{
|
.navbar-brand {
|
||||||
color:white;
|
color: white;
|
||||||
font-weight:bold;
|
font-weight: bold;
|
||||||
font-size:24px;
|
font-size: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-brand:hover{
|
.navbar-brand:hover {
|
||||||
color:#ffc107;
|
color: #ffc107;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link{
|
.nav-link {
|
||||||
color:white !important;
|
color: white !important;
|
||||||
margin-left:20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-link:hover{
|
.nav-link:hover {
|
||||||
color:#ffc107 !important;
|
color: #ffc107 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-footer{
|
.site-footer {
|
||||||
background:#2F1027;
|
background: #2F1027;
|
||||||
color:#f1e9ee;
|
color: #f1e9ee;
|
||||||
padding:60px 0 30px;
|
padding: 60px 0 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-footer h4{
|
.site-footer h4 {
|
||||||
color:#fff;
|
color: #fff;
|
||||||
font-weight:700;
|
font-weight: 700;
|
||||||
margin-bottom:18px;
|
margin-bottom: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.site-footer p{
|
.site-footer p {
|
||||||
color:#d8c7d3;
|
color: #d8c7d3;
|
||||||
line-height:1.6;
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-links li{
|
.user-dropdown-toggle {
|
||||||
margin-bottom:10px;
|
cursor: pointer;
|
||||||
}
|
color: white;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
user-select: none;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-dropdown-toggle:hover {
|
||||||
|
color: #ffc107;
|
||||||
|
}
|
||||||
|
|
||||||
.footer-links a{
|
.user-profile-name {
|
||||||
color:#d8c7d3;
|
font-weight: 600;
|
||||||
text-decoration:none;
|
font-size: 14px;
|
||||||
transition:.2s;
|
max-width: 120px;
|
||||||
}
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
.footer-links a:hover{
|
.footer-links li {
|
||||||
color:#FFC107;
|
margin-bottom: 10px;
|
||||||
padding-left:4px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.footer-contact li{
|
.footer-links a {
|
||||||
margin-bottom:14px;
|
color: #d8c7d3;
|
||||||
color:#d8c7d3;
|
text-decoration: none;
|
||||||
display:flex;
|
transition: .2s;
|
||||||
align-items:flex-start;
|
}
|
||||||
gap:10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer-contact i{
|
.footer-links a:hover {
|
||||||
color:#FFC107;
|
color: #FFC107;
|
||||||
margin-top:3px;
|
padding-left: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-contact a{
|
.footer-contact li {
|
||||||
color:#d8c7d3;
|
margin-bottom: 14px;
|
||||||
text-decoration:none;
|
color: #d8c7d3;
|
||||||
}
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.footer-contact a:hover{
|
.footer-contact i {
|
||||||
color:#FFC107;
|
color: #FFC107;
|
||||||
}
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
.site-footer hr{
|
.footer-contact a {
|
||||||
border-color:rgba(255,255,255,.15);
|
color: #d8c7d3;
|
||||||
margin:40px 0 20px;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.footer-bottom{
|
.footer-contact a:hover {
|
||||||
color:#b8a6b3;
|
color: #FFC107;
|
||||||
font-size:14px;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
.site-footer hr {
|
||||||
|
border-color: rgba(255,255,255,.15);
|
||||||
|
margin: 40px 0 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer-bottom {
|
||||||
|
color: #b8a6b3;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.animate {
|
||||||
|
animation-duration: 0.2s;
|
||||||
|
animation-fill-mode: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes slideIn {
|
||||||
|
0% {
|
||||||
|
transform: translateY(1rem);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: translateY(0rem);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.slideIn {
|
||||||
|
animation-name: slideIn;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<nav class="navbar navbar-expand-lg">
|
<nav class="navbar navbar-expand-lg">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand" href="/">
|
||||||
|
<i class="fa-solid fa-car-side"></i> AutoEdu
|
||||||
|
</a>
|
||||||
|
|
||||||
<div class="container">
|
<button class="navbar-toggler bg-light"
|
||||||
|
type="button"
|
||||||
|
data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#menu"
|
||||||
|
aria-controls="menu"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-label="Toggle navigation">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
<a class="navbar-brand" href="/">
|
<div class="collapse navbar-collapse" id="menu">
|
||||||
<i class="fa-solid fa-car-side"></i>
|
<ul class="navbar-nav ms-auto mb-2 mb-lg-0 align-items-lg-center">
|
||||||
AutoEdu
|
<li class="nav-item">
|
||||||
</a>
|
<a class="nav-link" href="/">Home</a>
|
||||||
|
</li>
|
||||||
<button class="navbar-toggler bg-light"
|
<li class="nav-item">
|
||||||
data-bs-toggle="collapse"
|
<a class="nav-link" href="/courses">Courses</a>
|
||||||
data-bs-target="#menu">
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<a class="nav-link" href="/students">Student</a>
|
||||||
|
</li>
|
||||||
</button>
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/abouts">About Us</a>
|
||||||
<div class="collapse navbar-collapse" id="menu">
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
<ul class="navbar-nav ms-auto">
|
<a class="nav-link" href="/contact">Contact</a>
|
||||||
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/">Home</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/courses">Courses</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/students">Student</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<!-- <li class="nav-item">
|
|
||||||
<a class="nav-link" href="#">Research</a>
|
|
||||||
</li> -->
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/abouts">About Us</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="/contact">Contact</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<li class="nav-item ms-lg-3 mt-3 mt-lg-0">
|
||||||
|
@if(Auth::check())
|
||||||
|
@php
|
||||||
|
$displayName = Auth::user()->first_name . ' ' . Auth::user()->last_name;
|
||||||
|
@endphp
|
||||||
|
<div class="dropdown">
|
||||||
|
<a class="user-dropdown-toggle dropdown-toggle text-white"
|
||||||
|
href="#"
|
||||||
|
role="button"
|
||||||
|
id="userMenu"
|
||||||
|
data-bs-toggle="dropdown"
|
||||||
|
aria-expanded="false">
|
||||||
|
<i class="fa-solid fa-circle-user" style="font-size: 24px;"></i>
|
||||||
|
<span class="user-profile-name">{{ $displayName }}</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end shadow animate slideIn" aria-labelledby="userMenu">
|
||||||
|
<li>
|
||||||
|
<a class="dropdown-item" href="/profile">
|
||||||
|
<i class="fa-solid fa-user me-2"></i> Profile
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li><hr class="dropdown-divider"></li>
|
||||||
|
<li>
|
||||||
|
<button type="button" onclick="submitLogout()" class="dropdown-item text-danger w-100 text-start border-0 bg-transparent">
|
||||||
|
<i class="fa-solid fa-right-from-bracket me-2"></i> Logout
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<div class="d-flex gap-2">
|
||||||
|
<a href="/signin" class="btn btn-outline-light">Sign In</a>
|
||||||
|
<a href="/signup" class="btn btn-warning">Register</a>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
@yield('content')
|
<main>
|
||||||
|
@yield('content')
|
||||||
|
</main>
|
||||||
|
|
||||||
<footer class="site-footer" role="contentinfo">
|
<footer class="site-footer" role="contentinfo">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|
||||||
<div class="row g-4">
|
<div class="row g-4">
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<h4>Automobile Academic</h4>
|
<h4>Automobile Academic</h4>
|
||||||
<p>
|
<p>Providing excellence in Automotive Engineering Education, Innovation and Research.</p>
|
||||||
Providing excellence in Automotive Engineering Education,
|
|
||||||
Innovation and Research.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
|
@ -209,7 +271,6 @@ data-bs-target="#menu">
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
@ -217,12 +278,57 @@ data-bs-target="#menu">
|
||||||
<div class="text-center footer-bottom">
|
<div class="text-center footer-bottom">
|
||||||
© {{ now()->year }} Automobile Academic Website
|
© {{ now()->year }} Automobile Academic Website
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.7/dist/js/bootstrap.bundle.min.js"></script>
|
<script>
|
||||||
|
function submitLogout() {
|
||||||
|
const tokenEl = document.querySelector('meta[name="csrf-token"]');
|
||||||
|
|
||||||
|
fetch('/custom-logout', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'Accept': 'application/json',
|
||||||
|
'X-CSRF-TOKEN': tokenEl ? tokenEl.getAttribute('content') : ''
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
if (!res.ok) {
|
||||||
|
return res.text().then(text => { throw new Error(text) });
|
||||||
|
}
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
alert('Logged out successfully!');
|
||||||
|
// සාර්ථකව Logout වුණාම කෙලින්ම මුල් පිටුවට (Home - /) යවනවා.
|
||||||
|
// එවිට Auth::check() false වී Sign In / Register බටන් ටික බලාගන්න පුළුවන්.
|
||||||
|
window.location.href = '/';
|
||||||
|
} else {
|
||||||
|
alert('Logout failed. Please try again.');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error:', err);
|
||||||
|
alert('Server side error occurred during logout.');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleUserDropdown(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const dropdown = document.getElementById('userDropdownContent');
|
||||||
|
if (dropdown) {
|
||||||
|
dropdown.style.display = dropdown.style.display === 'block' ? 'none' : 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('click', function () {
|
||||||
|
const dropdown = document.getElementById('userDropdownContent');
|
||||||
|
if (dropdown) { dropdown.style.display = 'none'; }
|
||||||
|
});
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
@ -0,0 +1,111 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<title>@yield('title', 'Automobile Engineering Academy')</title>
|
||||||
|
|
||||||
|
<link rel="icon" type="image/x-icon" href="{{ asset('src/favicon/favicon.ico') }}">
|
||||||
|
|
||||||
|
<!-- Bootstrap -->
|
||||||
|
<link rel="stylesheet" href="{{ asset('src/css/bootstrap/bootstrap.min.css') }}">
|
||||||
|
|
||||||
|
<!-- Main CSS -->
|
||||||
|
<link rel="stylesheet" href="{{ asset('src/css/main/style.css') }}">
|
||||||
|
|
||||||
|
<!-- Font Awesome -->
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
|
||||||
|
|
||||||
|
<!-- Swiper -->
|
||||||
|
<link rel="stylesheet"
|
||||||
|
href="https://unpkg.com/swiper/swiper-bundle.min.css" />
|
||||||
|
|
||||||
|
@stack('styles')
|
||||||
|
|
||||||
|
<style>
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
#home-header {
|
||||||
|
position: relative !important;
|
||||||
|
right: 0 !important;
|
||||||
|
left: 0 !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
@yield('content')
|
||||||
|
|
||||||
|
<!-- jQuery -->
|
||||||
|
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
||||||
|
|
||||||
|
<!-- Bootstrap -->
|
||||||
|
<script src="{{ asset('src/js/bootstrap/bootstrap.bundle.min.js') }}"></script>
|
||||||
|
|
||||||
|
<!-- Swiper -->
|
||||||
|
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
|
||||||
|
|
||||||
|
<!-- Custom JS -->
|
||||||
|
<script src="{{ asset('src/js/script.js') }}"></script>
|
||||||
|
<script src="{{ asset('src/js/toast.js') }}"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
if (document.querySelector(".mySwiper")) {
|
||||||
|
|
||||||
|
new Swiper(".mySwiper", {
|
||||||
|
slidesPerView: 3,
|
||||||
|
spaceBetween: 30,
|
||||||
|
slidesPerGroup: 3,
|
||||||
|
loop: true,
|
||||||
|
loopFillGroupWithBlank: true,
|
||||||
|
|
||||||
|
pagination: {
|
||||||
|
el: ".swiper-pagination",
|
||||||
|
clickable: true
|
||||||
|
},
|
||||||
|
|
||||||
|
navigation: {
|
||||||
|
nextEl: ".swiper-button-next",
|
||||||
|
prevEl: ".swiper-button-prev"
|
||||||
|
},
|
||||||
|
|
||||||
|
breakpoints: {
|
||||||
|
|
||||||
|
0: {
|
||||||
|
slidesPerView: 1
|
||||||
|
},
|
||||||
|
|
||||||
|
768: {
|
||||||
|
slidesPerView: 2
|
||||||
|
},
|
||||||
|
|
||||||
|
992: {
|
||||||
|
slidesPerView: 3
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
@stack('scripts')
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
@ -0,0 +1,233 @@
|
||||||
|
@extends('layouts.blank')
|
||||||
|
|
||||||
|
@section('title', 'Student Login')
|
||||||
|
|
||||||
|
@push('styles')
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background: #f5f7fb;
|
||||||
|
}
|
||||||
|
* {
|
||||||
|
font-family: 'Arial', Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LEFT PANEL */
|
||||||
|
.left-panel {
|
||||||
|
min-height: 100vh;
|
||||||
|
background: #f8f9fa;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-panel img {
|
||||||
|
max-width: 450px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* RIGHT PANEL */
|
||||||
|
.right-panel {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LOGIN BOX */
|
||||||
|
.box {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 500px;
|
||||||
|
background: #ffffff;
|
||||||
|
padding: 45px;
|
||||||
|
border-radius: 18px;
|
||||||
|
box-shadow: 0 15px 40px rgba(0,0,0,0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TITLE */
|
||||||
|
.headline {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: 700;
|
||||||
|
color: #222;
|
||||||
|
margin-bottom: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* INPUT */
|
||||||
|
.input-container {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container input {
|
||||||
|
width: 100%;
|
||||||
|
height: 50px;
|
||||||
|
padding: 12px 0;
|
||||||
|
border: none;
|
||||||
|
border-bottom: 2px solid #ddd;
|
||||||
|
background: transparent;
|
||||||
|
outline: none;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container label {
|
||||||
|
position: absolute;
|
||||||
|
top: 15px;
|
||||||
|
left: 0;
|
||||||
|
color: #744a68;
|
||||||
|
transition: .3s;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FLOATING LABEL & VALIDATION STATES */
|
||||||
|
.input-container input:focus,
|
||||||
|
.input-container input:valid {
|
||||||
|
border-bottom-color: #744a68;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container input:focus + label,
|
||||||
|
.input-container input:not(:placeholder-shown) + label {
|
||||||
|
top: -12px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #744a68;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* FORGOT PASSWORD */
|
||||||
|
.forgot-link {
|
||||||
|
color: #744a68;
|
||||||
|
font-size: 14px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 500;
|
||||||
|
transition: color 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.forgot-link:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #5E244E;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BUTTON */
|
||||||
|
.btn-primary {
|
||||||
|
height: 50px;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
background: #5E244E;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
border-radius: 8px;
|
||||||
|
transition: background 0.2s ease-in-out, transform 0.1s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:hover, .btn-primary:focus {
|
||||||
|
background: #4a1c3e;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:active {
|
||||||
|
transform: scale(0.98);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* BOTTOM TEXT */
|
||||||
|
.dontacc {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dontacc p {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dontacc a {
|
||||||
|
color: #744a68;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dontacc a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* RESPONSIVE DESIGN */
|
||||||
|
@media(max-width:991px) {
|
||||||
|
.left-panel {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-panel {
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
padding: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headline {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #5E244E;
|
||||||
|
font-weight: bold;
|
||||||
|
font-family: Arial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@endpush
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row min-vh-100">
|
||||||
|
|
||||||
|
<!-- <div class="col-lg-6 left-panel">
|
||||||
|
<div class="text-center">
|
||||||
|
<img src="{{ asset('images/login-banner.png') }}" class="img-fluid mb-4" alt="Automobile Engineering Academy">
|
||||||
|
<h2 class="fw-bold">Automobile Engineering Academy</h2>
|
||||||
|
<p class="text-muted px-5">
|
||||||
|
Driving Innovation Through Education, Research and Technology.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div class="col-lg-6 right-panel">
|
||||||
|
<div class="box">
|
||||||
|
<h2 class="headline">Student Sign In</h2>
|
||||||
|
|
||||||
|
<form method="POST" action="{{ url('/signin') }}">
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="email" name="email" value="{{ old('email') }}" placeholder=" " required>
|
||||||
|
<label>Email Address</label>
|
||||||
|
@error('email')
|
||||||
|
<span class="d-block text-danger mt-1 small">{{ $message }}</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="password" name="password" placeholder=" " required>
|
||||||
|
<label>Password</label>
|
||||||
|
@error('password')
|
||||||
|
<span class="d-block text-danger mt-1 small">{{ $message }}</span>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary mb-4">
|
||||||
|
Sign In
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="d-flex justify-content-end mb-4" style="gap: 10px;padding-top: 10px; padding-left: 190px;">
|
||||||
|
<a href="{{ url('/password/reset') }}" class="forgot-link">Forgot Password?</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dontacc" style="padding-top: 10px; " >
|
||||||
|
<!-- <p class="mb-1">Don't have an account?</p> -->
|
||||||
|
<a href="{{ url('/signup') }}">Create Student Account</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
@ -0,0 +1,220 @@
|
||||||
|
@extends('layouts.blank')
|
||||||
|
|
||||||
|
@section('title', 'Student Registration')
|
||||||
|
|
||||||
|
@push('styles')
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background: #f5f7fb;
|
||||||
|
font-family: 'Arial', Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-panel {
|
||||||
|
min-height: 100vh;
|
||||||
|
background: #f8f9fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-panel {
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
width: 50%;
|
||||||
|
max-width: 520px;
|
||||||
|
background: #fff;
|
||||||
|
padding: 40px;
|
||||||
|
border-radius: 15px;
|
||||||
|
box-shadow: 0 15px 40px rgba(0, 0, 0, .12);
|
||||||
|
}
|
||||||
|
|
||||||
|
.headline {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #5E244E;
|
||||||
|
font-weight: 700;
|
||||||
|
font-family: Arial;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* .headline {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
font-weight: 700;
|
||||||
|
} */
|
||||||
|
|
||||||
|
.input-container {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container input {
|
||||||
|
width: 100%;
|
||||||
|
border: none;
|
||||||
|
border-bottom: 2px solid #744a68;
|
||||||
|
padding: 12px 0 12px 5px;
|
||||||
|
outline: none;
|
||||||
|
background: transparent;
|
||||||
|
font-family: 'Arial', Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container label {
|
||||||
|
position: absolute;
|
||||||
|
left: 5px;
|
||||||
|
top: 12px;
|
||||||
|
color: #744a68;
|
||||||
|
transition: .3s ease all;
|
||||||
|
pointer-events: none;
|
||||||
|
background: transparent;
|
||||||
|
padding: 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-container input:focus {
|
||||||
|
border-color: #744a68;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reliable floating label mechanism via :placeholder-shown */
|
||||||
|
.input-container input:focus + label,
|
||||||
|
.input-container input:not(:placeholder-shown) + label {
|
||||||
|
top: -12px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #744a68;
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
width: 100%;
|
||||||
|
padding: 12px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #fff;
|
||||||
|
background:#5E244E;
|
||||||
|
border: none;
|
||||||
|
margin-bottom:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dontacc {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dontacc a {
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #5E244E;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media(max-width: 991px) {
|
||||||
|
.left-panel {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
margin: 20px;
|
||||||
|
padding: 30px 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@endpush
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
|
<!-- <div class="col-lg-6 d-none d-lg-flex justify-content-center align-items-center left-panel">
|
||||||
|
|
||||||
|
<div class="text-center">
|
||||||
|
|
||||||
|
<img src="{{ asset('images/login-banner.png') }}"
|
||||||
|
class="img-fluid mb-4"
|
||||||
|
style="max-width:450px;"
|
||||||
|
alt="Academy">
|
||||||
|
|
||||||
|
<h2 class="fw-bold">
|
||||||
|
Automobile Engineering Academy
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<p class="text-muted">
|
||||||
|
Create your student account to apply for courses and manage your enrolment.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<div class="col-lg-6 right-panel">
|
||||||
|
|
||||||
|
<div class="box">
|
||||||
|
|
||||||
|
<h2 class="headline">
|
||||||
|
Student Registration
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
<form method="POST" action="/signuppage">
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="text" name="first_name" placeholder=" " required>
|
||||||
|
<label>First Name</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="text" name="last_name" placeholder=" " required>
|
||||||
|
<label>Last Name</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="email" name="email" placeholder=" " required>
|
||||||
|
<label>Email Address</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="text" name="phone" placeholder=" " required>
|
||||||
|
<label>Mobile Number</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="password" name="password" placeholder=" " required>
|
||||||
|
<label>Password</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="input-container">
|
||||||
|
<input type="password" name="password_confirmation" placeholder=" " required>
|
||||||
|
<label>Confirm Password</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-check mb-4" style="gap: 5px; padding-bottom: 10px;">
|
||||||
|
<input class="form-check-input" type="checkbox" id="agree" required>
|
||||||
|
<label class="form-check-label" for="agree" >
|
||||||
|
I agree to the Terms & Conditions
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit" class="btn btn-primary">
|
||||||
|
Create Account
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<div class="dontacc">
|
||||||
|
<p class="mt-4 mb-1" >Already have an account?</p>
|
||||||
|
|
||||||
|
|
||||||
|
<a href="{{ url('/signin') }}">
|
||||||
|
Sign In
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
||||||
|
|
@ -80,14 +80,26 @@ body{
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero{
|
/* .hero{
|
||||||
height:700px;
|
height:650px;
|
||||||
background:
|
background:
|
||||||
linear-gradient(rgba(30,10,25,.65),rgba(30,10,25,.65)),
|
linear-gradient(rgba(30,10,25,.65),rgba(30,10,25,.65)),
|
||||||
url('https://images.unsplash.com/photo-1503376780353-7e6692767b70?auto=format&fit=crop&w=1600&q=80');
|
url('https://images.unsplash.com/photo-1503376780353-7e6692767b70?auto=format&fit=crop&w=1600&q=80'); */
|
||||||
background-size:cover;
|
/* background-size:cover;
|
||||||
background-position:center;
|
background-position:center;
|
||||||
}
|
} */
|
||||||
|
|
||||||
|
|
||||||
|
.hero {
|
||||||
|
height:650px;
|
||||||
|
background:
|
||||||
|
linear-gradient(rgba(30,10,25,.65),rgba(30,10,25,.65)),
|
||||||
|
url('https://images.unsplash.com/photo-1517524206127-48bbd363f3d7?auto=format&fit=crop&w=1600&q=80');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.hero-content{
|
.hero-content{
|
||||||
height:100%;
|
height:100%;
|
||||||
|
|
@ -102,6 +114,7 @@ body{
|
||||||
font-size:60px;
|
font-size:60px;
|
||||||
font-weight:700;
|
font-weight:700;
|
||||||
font-family: Arial, Helvetica, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
margin-top: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hero p{
|
.hero p{
|
||||||
|
|
@ -222,11 +235,10 @@ h6{
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="hero-content text-center">
|
<div class="hero-content text-center">
|
||||||
|
|
||||||
<h1 class="display-4 fw-bold">
|
<h1 class="display-4 fw-bold" style"font-weight: 700;">
|
||||||
Automobile Engineering Academy
|
Automobile Engineering Academy
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="lead mb-5">
|
|
||||||
Driving Innovation Through Education, Research & Technology
|
Driving Innovation Through Education, Research & Technology
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
@ -319,10 +331,18 @@ h6{
|
||||||
View Course
|
View Course
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
|
||||||
|
<div style="display: flex; justify-content: flex-end; width: 100%; ">
|
||||||
|
<a href="/courses" class="bg-gray-100 hover:bg-gray-200 text-gray-700 px-4 py-2 rounded-full text-sm font-medium transition" style="color:#5E244E">
|
||||||
|
View all courses
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,41 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
|
use App\Http\Controllers\AuthController;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Web Routes
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Home Page
|
||||||
Route::get('/', function () {
|
Route::get('/', function () {
|
||||||
return view('welcome');
|
return view('welcome');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Route::post('/signuppage', [AuthController::class, 'register']);
|
||||||
|
Route::post('/signin', [AuthController::class, 'login']);
|
||||||
|
|
||||||
|
Route::post('/custom-logout', [AuthController::class, 'logout']);
|
||||||
|
|
||||||
|
|
||||||
|
// Static Pages (Views)
|
||||||
Route::view('/apply', 'apply')->name('apply');
|
Route::view('/apply', 'apply')->name('apply');
|
||||||
|
|
||||||
Route::view('/courses', 'courses')->name('courses');
|
Route::view('/courses', 'courses')->name('courses');
|
||||||
|
|
||||||
Route::view('/students', 'students')->name('students');
|
Route::view('/students', 'students')->name('students');
|
||||||
|
|
||||||
Route::view('/abouts', 'abouts')->name('abouts');
|
Route::view('/abouts', 'abouts')->name('abouts');
|
||||||
|
Route::view('/contact', 'contacts')->name('contact');
|
||||||
|
|
||||||
Route::view('/contact', 'contacts')->name('contact');
|
|
||||||
|
Route::view('/signin', 'signin')->name('signin');
|
||||||
|
Route::view('/signup', 'signup')->name('signup');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Route::get('/signup', function () {
|
||||||
|
// return view('signup');
|
||||||
|
// })->name('signup');
|
||||||
Loading…
Reference in New Issue