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>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
protected $fillable = [
|
||||
'first_name',
|
||||
'last_name',
|
||||
'email',
|
||||
'phone',
|
||||
'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
|
|
|
|||
|
|
@ -13,8 +13,10 @@ return new class extends Migration
|
|||
{
|
||||
Schema::create('users', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('first_name');
|
||||
$table->string('last_name');
|
||||
$table->string('email')->unique();
|
||||
$table->string('phone');
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
$table->rememberToken();
|
||||
|
|
|
|||
|
|
@ -163,9 +163,12 @@ Industry-recognized certifications to boost your career.
|
|||
Join our institute and become a skilled automotive professional.
|
||||
</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>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
}
|
||||
|
||||
.form-header {
|
||||
background: var(--primary);
|
||||
background: #887582;
|
||||
color: white;
|
||||
padding: 25px 40px;
|
||||
}
|
||||
|
|
@ -57,7 +57,7 @@
|
|||
}
|
||||
|
||||
.section-title {
|
||||
background: #0B3B70;
|
||||
background: #887582;
|
||||
color: white;
|
||||
padding: 14px 20px;
|
||||
margin-top: 40px;
|
||||
|
|
@ -138,7 +138,19 @@
|
|||
<input type="text" name="nationality" class="form-control">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<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>
|
||||
<select name="gender" class="form-select">
|
||||
<option selected disabled>Select Gender</option>
|
||||
|
|
@ -152,6 +164,7 @@
|
|||
<label class="form-label">Date of Birth</label>
|
||||
<input type="date" name="dob" class="form-control">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="section-title">
|
||||
|
|
@ -159,13 +172,36 @@
|
|||
</div>
|
||||
|
||||
<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">
|
||||
<label class="form-label">Email Address <span class="required">*</span></label>
|
||||
<input type="email" name="email" class="form-control" required>
|
||||
</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 class="section-title">
|
||||
<!-- <div class="section-title">
|
||||
<i class="fa-solid fa-language me-2"></i> Language and Diversity
|
||||
</div>
|
||||
|
||||
|
|
@ -185,18 +221,35 @@
|
|||
<label class="form-label">Disability <span class="required">*</span></label>
|
||||
<input type="text" name="Disability" class="form-control" required>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
|
||||
<div class="section-title">
|
||||
<i class="fa-solid fa-graduation-cap me-2"></i> Education
|
||||
</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">
|
||||
<i class="fa-solid fa-graduation-cap me-2"></i> Qualifications
|
||||
</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">
|
||||
<i class="fa-solid fa-phone-flip me-2"></i> Emergency Contacts
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
.btn-contact{
|
||||
background:var(--primary);
|
||||
color:#fff;
|
||||
border-radius:30px;
|
||||
/* border-radius:30px; */
|
||||
padding:10px 30px;
|
||||
}
|
||||
|
||||
|
|
@ -153,15 +153,25 @@ Send Message
|
|||
<section class="pb-5">
|
||||
<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
|
||||
src="https://www.google.com/maps/embed?pb=!1m18..."
|
||||
width="100%"
|
||||
height="300"
|
||||
style="border:0;border-radius:15px;"
|
||||
allowfullscreen=""
|
||||
loading="lazy">
|
||||
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%"
|
||||
height="300"
|
||||
style="border:0;border-radius:15px;"
|
||||
allowfullscreen=""
|
||||
loading="lazy">
|
||||
</iframe>
|
||||
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,14 +11,24 @@
|
|||
--light:#f8f4f7;
|
||||
}
|
||||
|
||||
.hero{
|
||||
/* .hero{
|
||||
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-position:center;
|
||||
color:#fff;
|
||||
padding:120px 0;
|
||||
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{
|
||||
|
|
@ -50,11 +60,12 @@
|
|||
}
|
||||
|
||||
.badge-course{
|
||||
background:var(--primary);
|
||||
background:#887582;
|
||||
color:#fff;
|
||||
padding:8px 15px;
|
||||
border-radius:30px;
|
||||
font-size:13px;
|
||||
font-weight:30px;
|
||||
}
|
||||
|
||||
.read-btn{
|
||||
|
|
@ -62,6 +73,7 @@
|
|||
color:#fff;
|
||||
border-radius:30px;
|
||||
padding:10px 25px;
|
||||
font-weight: 40px;
|
||||
}
|
||||
|
||||
.read-btn:hover{
|
||||
|
|
@ -186,8 +198,8 @@ $courses=[
|
|||
|
||||
</div>
|
||||
|
||||
<a href="#" class="btn read-btn w-100 mt-4">
|
||||
View Details
|
||||
<a href="/apply" class="btn read-btn w-100 mt-4">
|
||||
Apply Course
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -3,181 +3,243 @@
|
|||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<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 rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
|
||||
<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">
|
||||
|
||||
<style>
|
||||
|
||||
body{
|
||||
font-family:Segoe UI,sans-serif;
|
||||
background:#f5f7fb;
|
||||
body {
|
||||
font-family: 'Segoe UI', sans-serif;
|
||||
background: #f5f7fb;
|
||||
padding-top: 80px;
|
||||
}
|
||||
|
||||
.navbar{
|
||||
background:#5E244E;
|
||||
.navbar {
|
||||
background: #5E244E;
|
||||
z-index: 1000;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar-brand{
|
||||
color:white;
|
||||
font-weight:bold;
|
||||
font-size:24px;
|
||||
.navbar-brand {
|
||||
color: white;
|
||||
font-weight: bold;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.navbar-brand:hover{
|
||||
color:#ffc107;
|
||||
.navbar-brand:hover {
|
||||
color: #ffc107;
|
||||
}
|
||||
|
||||
.nav-link{
|
||||
color:white !important;
|
||||
margin-left:20px;
|
||||
.nav-link {
|
||||
color: white !important;
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.nav-link:hover{
|
||||
color:#ffc107 !important;
|
||||
.nav-link:hover {
|
||||
color: #ffc107 !important;
|
||||
}
|
||||
|
||||
.site-footer{
|
||||
background:#2F1027;
|
||||
color:#f1e9ee;
|
||||
padding:60px 0 30px;
|
||||
}
|
||||
.site-footer {
|
||||
background: #2F1027;
|
||||
color: #f1e9ee;
|
||||
padding: 60px 0 30px;
|
||||
}
|
||||
|
||||
.site-footer h4{
|
||||
color:#fff;
|
||||
font-weight:700;
|
||||
margin-bottom:18px;
|
||||
}
|
||||
.site-footer h4 {
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
|
||||
.site-footer p{
|
||||
color:#d8c7d3;
|
||||
line-height:1.6;
|
||||
}
|
||||
.site-footer p {
|
||||
color: #d8c7d3;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.footer-links li{
|
||||
margin-bottom:10px;
|
||||
}
|
||||
.user-dropdown-toggle {
|
||||
cursor: pointer;
|
||||
color: white;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
user-select: none;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.footer-links a{
|
||||
color:#d8c7d3;
|
||||
text-decoration:none;
|
||||
transition:.2s;
|
||||
}
|
||||
.user-dropdown-toggle:hover {
|
||||
color: #ffc107;
|
||||
}
|
||||
|
||||
.footer-links a:hover{
|
||||
color:#FFC107;
|
||||
padding-left:4px;
|
||||
}
|
||||
.user-profile-name {
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
max-width: 120px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.footer-contact li{
|
||||
margin-bottom:14px;
|
||||
color:#d8c7d3;
|
||||
display:flex;
|
||||
align-items:flex-start;
|
||||
gap:10px;
|
||||
}
|
||||
.footer-links li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.footer-contact i{
|
||||
color:#FFC107;
|
||||
margin-top:3px;
|
||||
}
|
||||
.footer-links a {
|
||||
color: #d8c7d3;
|
||||
text-decoration: none;
|
||||
transition: .2s;
|
||||
}
|
||||
|
||||
.footer-contact a{
|
||||
color:#d8c7d3;
|
||||
text-decoration:none;
|
||||
}
|
||||
.footer-links a:hover {
|
||||
color: #FFC107;
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.footer-contact a:hover{
|
||||
color:#FFC107;
|
||||
}
|
||||
.footer-contact li {
|
||||
margin-bottom: 14px;
|
||||
color: #d8c7d3;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.site-footer hr{
|
||||
border-color:rgba(255,255,255,.15);
|
||||
margin:40px 0 20px;
|
||||
}
|
||||
.footer-contact i {
|
||||
color: #FFC107;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.footer-bottom{
|
||||
color:#b8a6b3;
|
||||
font-size:14px;
|
||||
}
|
||||
.footer-contact a {
|
||||
color: #d8c7d3;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
.footer-contact a:hover {
|
||||
color: #FFC107;
|
||||
}
|
||||
|
||||
.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>
|
||||
|
||||
<body>
|
||||
|
||||
<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="/">
|
||||
<i class="fa-solid fa-car-side"></i>
|
||||
AutoEdu
|
||||
</a>
|
||||
<div class="collapse navbar-collapse" id="menu">
|
||||
<ul class="navbar-nav ms-auto mb-2 mb-lg-0 align-items-lg-center">
|
||||
<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="/abouts">About Us</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contact">Contact</a>
|
||||
</li>
|
||||
|
||||
<button class="navbar-toggler bg-light"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#menu">
|
||||
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="menu">
|
||||
|
||||
<ul class="navbar-nav ms-auto">
|
||||
|
||||
<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>
|
||||
|
||||
@yield('content')
|
||||
|
||||
|
||||
<main>
|
||||
@yield('content')
|
||||
</main>
|
||||
|
||||
<footer class="site-footer" role="contentinfo">
|
||||
<div class="container">
|
||||
|
||||
<div class="row g-4">
|
||||
|
||||
<div class="col-md-4">
|
||||
<h4>Automobile Academic</h4>
|
||||
<p>
|
||||
Providing excellence in Automotive Engineering Education,
|
||||
Innovation and Research.
|
||||
</p>
|
||||
<p>Providing excellence in Automotive Engineering Education, Innovation and Research.</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
|
|
@ -209,7 +271,6 @@ data-bs-target="#menu">
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<hr>
|
||||
|
|
@ -217,12 +278,57 @@ data-bs-target="#menu">
|
|||
<div class="text-center footer-bottom">
|
||||
© {{ now()->year }} Automobile Academic Website
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</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>
|
||||
</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,15 +80,27 @@ body{
|
|||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.hero{
|
||||
height:700px;
|
||||
/* .hero{
|
||||
height:650px;
|
||||
background:
|
||||
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');
|
||||
background-size:cover;
|
||||
url('https://images.unsplash.com/photo-1503376780353-7e6692767b70?auto=format&fit=crop&w=1600&q=80'); */
|
||||
/* background-size:cover;
|
||||
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{
|
||||
height:100%;
|
||||
display:flex;
|
||||
|
|
@ -102,6 +114,7 @@ body{
|
|||
font-size:60px;
|
||||
font-weight:700;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
margin-top: 75px;
|
||||
}
|
||||
|
||||
.hero p{
|
||||
|
|
@ -222,11 +235,10 @@ h6{
|
|||
<div class="container">
|
||||
<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
|
||||
</h1>
|
||||
|
||||
<p class="lead mb-5">
|
||||
Driving Innovation Through Education, Research & Technology
|
||||
</p>
|
||||
|
||||
|
|
@ -320,9 +332,17 @@ h6{
|
|||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@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>
|
||||
|
|
|
|||
|
|
@ -2,17 +2,40 @@
|
|||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
use App\Http\Controllers\AuthController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
// Home Page
|
||||
Route::get('/', function () {
|
||||
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('/courses', 'courses')->name('courses');
|
||||
|
||||
Route::view('/students', 'students')->name('students');
|
||||
|
||||
Route::view('/abouts', 'abouts')->name('abouts');
|
||||
|
||||
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