From 1c800d164985f1ecfbca679a996f9c8bfb334f41 Mon Sep 17 00:00:00 2001 From: imadhigp Date: Mon, 28 Sep 2026 14:49:31 +0530 Subject: [PATCH] set ui --- .../Controllers/StudentPortalController.php | 197 +++---- resources/views/StudentProfile.blade.php | 518 ++++++++---------- .../views/admin/adminmycourses.blade.php | 420 +++++++++++--- .../views/layouts/studentportalnav.blade.php | 52 +- 4 files changed, 699 insertions(+), 488 deletions(-) diff --git a/app/Http/Controllers/StudentPortalController.php b/app/Http/Controllers/StudentPortalController.php index ec31d16..cbd322e 100644 --- a/app/Http/Controllers/StudentPortalController.php +++ b/app/Http/Controllers/StudentPortalController.php @@ -5,95 +5,82 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\File; use App\Models\Notification; class StudentPortalController extends Controller -{public function index(Request $request) +{ + public function index(Request $request) { - if (!session()->has('student_id') && !session()->has('student_log_id')) { return redirect('/signin')->with('error', 'Please login first!'); } - $notifications = Notification::latest()->take(10)->get(); $unreadNotifications = Notification::where('is_read', 0)->count(); - return view('StudentPortal', compact('notifications', 'unreadNotifications')); } public function studentlogin(Request $request) - { - - $request->validate([ - 'username' => 'required|string', - 'password' => 'required|string', - 'pin' => 'required|numeric', - ]); + { + $request->validate([ + 'username' => 'required|string', + 'password' => 'required|string', + 'pin' => 'required|numeric', + ]); - - $student = DB::table('student_portal_logs') - ->where('email', $request->username) - ->orWhere('studentid', $request->username) - ->first(); + $student = DB::table('student_portal_logs') + ->where('email', $request->username) + ->orWhere('studentid', $request->username) + ->first(); - - if ($student && Hash::check($request->password, $student->password) && $student->pin == $request->pin) { - - if ($student->status !== 'active' && $student->status !== '' && !is_null($student->status)) { - return redirect()->back()->with('error', 'Your account is inactive!'); - } + if ($student && Hash::check($request->password, $student->password) && $student->pin == $request->pin) { + + // Check status strictly + if (!empty($student->status) && $student->status !== 'active') { + return redirect()->back()->with('error', 'Your account is inactive!'); + } - - $request->session()->put('student_id', $student->studentid); - $request->session()->put('student_log_id', $student->id ?? null); - - $name = trim(($student->first_name ?? '') . ' ' . ($student->last_name ?? '')); - $request->session()->put('student_name', $name ?: ($student->email ?? $student->studentid)); + $request->session()->put('student_id', $student->studentid); + $request->session()->put('student_log_id', $student->id ?? null); + + $name = trim(($student->first_name ?? '') . ' ' . ($student->last_name ?? '')); + $request->session()->put('student_name', $name ?: ($student->email ?? $student->studentid)); - return redirect()->route('student.portal')->with('success', 'Logged in successfully!'); - } - - return redirect()->back()->with('error', 'Invalid Email/Username, Password, or PIN!'); + return redirect()->route('student.portal')->with('success', 'Logged in successfully!'); } + return redirect()->back()->with('error', 'Invalid Email/Username, Password, or PIN!'); + } + public function showProfile(Request $request) - { - - $log_id = $request->session()->get('student_log_id'); - $student_code = $request->session()->get('student_id'); + { + $log_id = $request->session()->get('student_log_id'); + $student_code = $request->session()->get('student_id'); - if (!$log_id && !$student_code) { - return redirect('/')->with('error', 'Please login first!'); - } - - - $student = DB::table('student_details') - ->where(function ($query) use ($log_id, $student_code) { - if ($log_id) { - $query->where('student_portal_log_id', $log_id); - } - if ($student_code) { - - if ($log_id) { - $query->orWhere('student_id', $student_code); - } else { - $query->where('student_id', $student_code); - } - } - }) - ->first(); - - - if (!$student) { - return redirect()->route('student.portal')->with('error', 'Student details not found in database!'); - } - - - return view('StudentProfile', compact('student')); + if (!$log_id && !$student_code) { + return redirect('/')->with('error', 'Please login first!'); } + $student = DB::table('student_details') + ->where(function ($query) use ($log_id, $student_code) { + if ($log_id) { + $query->where('student_portal_log_id', $log_id); + } + if ($student_code) { + $query->orWhere('student_id', $student_code); + } + }) + ->first(); + + if (!$student) { + return redirect()->route('student.portal')->with('error', 'Student details not found in database!'); + } + + return view('StudentProfile', compact('student')); + } + public function updateProfile(Request $request) { $log_id = $request->session()->get('student_log_id'); @@ -122,11 +109,7 @@ class StudentPortalController extends Controller $query->where('student_portal_log_id', $log_id); } if ($student_code) { - if ($log_id) { - $query->orWhere('student_id', $student_code); - } else { - $query->where('student_id', $student_code); - } + $query->orWhere('student_id', $student_code); } }) ->first(); @@ -148,32 +131,34 @@ class StudentPortalController extends Controller 'updated_at' => now(), ]; - // 1. Check if user requested to REMOVE image + $destinationPath = public_path('uploads/student_images'); + + // 1. Remove profile image if ($request->input('remove_profile_image') == '1') { - if (!empty($student->image) && file_exists(public_path($student->image))) { - @unlink(public_path($student->image)); + if (!empty($student->image) && File::exists(public_path($student->image))) { + File::delete(public_path($student->image)); } $updateData['image'] = null; } - // 2. Check if user provided CROPPED Base64 image - elseif (!empty($request->input('cropped_image_data'))) { + // 2. Process Cropped Base64 image + elseif ($request->filled('cropped_image_data')) { $base64Image = $request->input('cropped_image_data'); if (preg_match('/^data:image\/(\w+);base64,/', $base64Image, $type)) { $data = substr($base64Image, strpos($base64Image, ',') + 1); $type = strtolower($type[1]); + if (in_array($type, ['jpg', 'jpeg', 'gif', 'png'])) { - $data = base64_decode($data); - if ($data !== false) { - $filename = time() . '_' . uniqid() . '.png'; - $destinationPath = public_path('uploads/student_images'); - if (!file_exists($destinationPath)) { - mkdir($destinationPath, 0777, true); + $decodedData = base64_decode($data); + if ($decodedData !== false) { + if (!File::isDirectory($destinationPath)) { + File::makeDirectory($destinationPath, 0755, true, true); } - file_put_contents($destinationPath . '/' . $filename, $data); + + $filename = time() . '_' . uniqid() . '.' . $type; + File::put($destinationPath . '/' . $filename, $decodedData); - // Delete old image if existed - if (!empty($student->image) && file_exists(public_path($student->image))) { - @unlink(public_path($student->image)); + if (!empty($student->image) && File::exists(public_path($student->image))) { + File::delete(public_path($student->image)); } $updateData['image'] = 'uploads/student_images/' . $filename; @@ -181,18 +166,19 @@ class StudentPortalController extends Controller } } } - // 3. Fallback to normal direct file upload + // 3. Fallback to file upload elseif ($request->hasFile('profile_image')) { $file = $request->file('profile_image'); - $filename = time() . '_' . uniqid() . '.' . $file->getClientOriginalExtension(); - $destinationPath = public_path('uploads/student_images'); - if (!file_exists($destinationPath)) { - mkdir($destinationPath, 0777, true); + + if (!File::isDirectory($destinationPath)) { + File::makeDirectory($destinationPath, 0755, true, true); } + + $filename = time() . '_' . uniqid() . '.' . $file->getClientOriginalExtension(); $file->move($destinationPath, $filename); - if (!empty($student->image) && file_exists(public_path($student->image))) { - @unlink(public_path($student->image)); + if (!empty($student->image) && File::exists(public_path($student->image))) { + File::delete(public_path($student->image)); } $updateData['image'] = 'uploads/student_images/' . $filename; @@ -216,22 +202,21 @@ class StudentPortalController extends Controller return redirect()->back()->with('success', 'Profile updated successfully!'); } - + + public function studentlogout(Request $request) - { - - $request->session()->forget(['student_id', 'student_log_id', 'student_name', 'student_email']); - $request->session()->invalidate(); - $request->session()->regenerateToken(); + { + $request->session()->forget(['student_id', 'student_log_id', 'student_name', 'student_email']); + $request->session()->invalidate(); + $request->session()->regenerateToken(); - - if ($request->wantsJson() || $request->ajax()) { - return response()->json([ - 'success' => true, - 'message' => 'Logged out successfully!' - ], 200); - } - - return redirect('/')->with('success', 'Logged out successfully!'); + if ($request->wantsJson() || $request->ajax()) { + return response()->json([ + 'success' => true, + 'message' => 'Logged out successfully!' + ], 200); } + + return redirect('/')->with('success', 'Logged out successfully!'); + } } \ No newline at end of file diff --git a/resources/views/StudentProfile.blade.php b/resources/views/StudentProfile.blade.php index 94b030d..14d01be 100644 --- a/resources/views/StudentProfile.blade.php +++ b/resources/views/StudentProfile.blade.php @@ -450,211 +450,191 @@ - + + + +