set code structures

This commit is contained in:
imadhigp 2026-08-07 10:13:29 +05:30
parent db3373002d
commit e6b5166782
6 changed files with 45 additions and 54 deletions

View File

@ -8,35 +8,31 @@ use Illuminate\Support\Facades\Hash;
class AdminAuthController extends Controller class AdminAuthController extends Controller
{ {
/**
* Admin Login View එක පෙන්වීම
*/
public function showLoginForm() public function showLoginForm()
{ {
return view('adminlogin'); return view('adminlogin');
} }
/**
* Admin Login Process එක සිදු කිරීම
*/
public function login(Request $request) public function login(Request $request)
{ {
// 1. Validation සිදු කිරීම // 1. set Validation
$request->validate([ $request->validate([
'username' => 'required', 'username' => 'required',
'password' => 'required', 'password' => 'required',
]); ]);
// 2. Database එකෙන් Admin පරීක්ෂා කිරීම
$admin = DB::table('adminlogins')->where('username', $request->username)->first(); $admin = DB::table('adminlogins')->where('username', $request->username)->first();
// 3. Password එක හරියටම ගැලපේ නම්
if ($admin && Hash::check($request->password, $admin->password)) { if ($admin && Hash::check($request->password, $admin->password)) {
// Session Fixation ආරක්ෂාව සඳහා Session ID එක Regenerate කිරීම
$request->session()->regenerate(); $request->session()->regenerate();
// Session එකට Admin Data තැන්පත් කිරීම
session([ session([
'admin_id' => $admin->id, 'admin_id' => $admin->id,
'admin_username' => $admin->username 'admin_username' => $admin->username
@ -49,24 +45,22 @@ class AdminAuthController extends Controller
]); ]);
} }
// 4. Username හෝ Password වැරදි නම්
return response()->json([ return response()->json([
'success' => false, 'success' => false,
'message' => 'Wrong Username or Password!' 'message' => 'Wrong Username or Password!'
], 401); ], 401);
} }
/**
* Admin Logout Process එක සිදු කිරීම
*/
public function logout(Request $request) public function logout(Request $request)
{ {
// 1. Session එකෙන් Data ඉවත් කර Session එක Invalidate කිරීම
$request->session()->forget(['admin_id', 'admin_username']); $request->session()->forget(['admin_id', 'admin_username']);
$request->session()->invalidate(); $request->session()->invalidate();
$request->session()->regenerateToken(); $request->session()->regenerateToken();
// 2. Request එක AJAX / JSON නම් JSON Response එකක් යැවීම
if ($request->ajax() || $request->wantsJson()) { if ($request->ajax() || $request->wantsJson()) {
return response()->json([ return response()->json([
'success' => true, 'success' => true,
@ -74,7 +68,8 @@ class AdminAuthController extends Controller
]); ]);
} }
// 3. Normal Form Submit එකක් නම් Redirect කිරීම
return redirect()->route('admin.login')->with('success', 'Logged out successfully!'); return redirect()->route('admin.login')->with('success', 'Logged out successfully!');
} }
} }

View File

@ -14,10 +14,10 @@ class AdminTimetableController extends Controller
return redirect()->route('admin.login')->with('error', 'Please login first.'); return redirect()->route('admin.login')->with('error', 'Please login first.');
} }
// DB එකේ තියෙන ඔක්කොම Timetable entries ගන්නවා
$allTimetables = Timetable::all(); $allTimetables = Timetable::all();
// Time Slot එකයි Day එකයි අනුව Grid Map කරගන්නවා
$grid = []; $grid = [];
foreach ($allTimetables as $item) { foreach ($allTimetables as $item) {
$grid[$item->time_slot][$item->day] = $item; $grid[$item->time_slot][$item->day] = $item;
@ -25,7 +25,7 @@ class AdminTimetableController extends Controller
$days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']; $days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];
// Image එකේ තියෙන Exact Time Slots
$timeSlots = [ $timeSlots = [
'08:30 - 10:30', '08:30 - 10:30',
'10:45 - 12:30', '10:45 - 12:30',
@ -40,8 +40,6 @@ class AdminTimetableController extends Controller
return view('admin.admintimetable', compact('allTimetables', 'days', 'timeSlots', 'grid', 'todaySchedule', 'today')); return view('admin.admintimetable', compact('allTimetables', 'days', 'timeSlots', 'grid', 'todaySchedule', 'today'));
} }
// Save or Update Entry
// Save or Update Entry
public function store(Request $request) public function store(Request $request)
{ {
$request->validate([ $request->validate([
@ -51,7 +49,7 @@ class AdminTimetableController extends Controller
'type' => 'required|string', 'type' => 'required|string',
]); ]);
// student_log_id පේළිය ඉවත් කර ඇත
Timetable::updateOrCreate( Timetable::updateOrCreate(
[ [
'day' => $request->day, 'day' => $request->day,
@ -66,7 +64,6 @@ class AdminTimetableController extends Controller
return redirect()->back()->with('success', 'Timetable saved successfully!'); return redirect()->back()->with('success', 'Timetable saved successfully!');
} }
// Delete Single Slot // Delete Single Slot
public function destroy($id) public function destroy($id)
{ {

View File

@ -16,7 +16,7 @@ class TimetableController extends Controller
return redirect('/signin')->with('error', 'Please login first!'); return redirect('/signin')->with('error', 'Please login first!');
} }
// DB එකේ නැති student_log_id සහ sort_order query එකෙන් ඉවත් කර ඇත
$rawTimetables = Timetable::all(); $rawTimetables = Timetable::all();
$schedule = []; $schedule = [];
@ -29,7 +29,7 @@ class TimetableController extends Controller
$schedule[$item->time_slot][$item->day] = $item; $schedule[$item->time_slot][$item->day] = $item;
} }
// Today's Schedule (දැනට ඇති columns වලින් පමණක් Filter කර ඇත)
$todayName = Carbon::now()->format('l'); $todayName = Carbon::now()->format('l');
$todaySchedule = Timetable::where('day', $todayName) $todaySchedule = Timetable::where('day', $todayName)
->where('type', '!=', 'Break') ->where('type', '!=', 'Break')

View File

@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Storage;
class adminmycoursesController extends Controller class adminmycoursesController extends Controller
{ {
// 1. Courses ලැයිස්තුව පෙන්වීම (Read)
public function index() public function index()
{ {
if (!session()->has('admin_id')) { if (!session()->has('admin_id')) {
@ -19,7 +19,7 @@ class adminmycoursesController extends Controller
return view('admin.adminmycourses', compact('courses')); return view('admin.adminmycourses', compact('courses'));
} }
// 2. අලුත් Course එකක් එකතු කිරීම (Create)
public function store(Request $request) public function store(Request $request)
{ {
$request->validate([ $request->validate([
@ -58,7 +58,7 @@ class adminmycoursesController extends Controller
return redirect()->back()->with('success', 'Course added successfully!'); return redirect()->back()->with('success', 'Course added successfully!');
} }
// 3. Course එක Update කිරීම (Update)
public function update(Request $request, $id) public function update(Request $request, $id)
{ {
$request->validate([ $request->validate([
@ -101,24 +101,23 @@ class adminmycoursesController extends Controller
return redirect()->back()->with('success', 'Course updated successfully!'); return redirect()->back()->with('success', 'Course updated successfully!');
} }
// 4. Course එක Delete කිරීම (Delete)
// Course එක Delete කිරීම (Delete) public function destroy($id)
public function destroy($id) {
{
$course = DB::table('courses')->where('id', $id)->first(); $course = DB::table('courses')->where('id', $id)->first();
if ($course) { if ($course) {
// Image එක Storage එකෙන් Delete කිරීම
if ($course->image && Storage::disk('public')->exists($course->image)) { if ($course->image && Storage::disk('public')->exists($course->image)) {
Storage::disk('public')->delete($course->image); Storage::disk('public')->delete($course->image);
} }
// Database record එක Delete කිරීම
DB::table('courses')->where('id', $id)->delete(); DB::table('courses')->where('id', $id)->delete();
return redirect()->back()->with('success', 'Course deleted successfully!'); return redirect()->back()->with('success', 'Course deleted successfully!');
} }
return redirect()->back()->with('error', 'Course not found!'); return redirect()->back()->with('error', 'Course not found!');
} }
} }

View File

@ -10,12 +10,12 @@ class ApplyController extends Controller
{ {
public function index() public function index()
{ {
return view('apply'); // Tawa name ekak nam view name eka wenas karanna return view('apply');
} }
public function store(Request $request) public function store(Request $request)
{ {
// 1. Data Validation Rules
$validatedData = $request->validate([ $validatedData = $request->validate([
'first_name' => 'required|string|max:255', 'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255', 'last_name' => 'required|string|max:255',
@ -41,7 +41,7 @@ class ApplyController extends Controller
'emergency_contact_relationship' => 'required|string|max:255', 'emergency_contact_relationship' => 'required|string|max:255',
]); ]);
// 2. Multi File Upload Process
$certificatePaths = []; $certificatePaths = [];
if ($request->hasFile('certificates')) { if ($request->hasFile('certificates')) {
foreach ($request->file('certificates') as $file) { foreach ($request->file('certificates') as $file) {
@ -50,10 +50,10 @@ class ApplyController extends Controller
} }
} }
// 3. Current Logged-in User ID එක set කිරීම & Data Save කිරීම
$application = new Application($validatedData); $application = new Application($validatedData);
$application->user_id = Auth::id(); // Log unukena ge ID eka attach wei $application->user_id = Auth::id();
$application->certificates = $certificatePaths; // Paths array eka save wei $application->certificates = $certificatePaths;
$application->save(); $application->save();
return redirect()->back()->with('success', 'Your application has been submitted successfully!'); return redirect()->back()->with('success', 'Your application has been submitted successfully!');

View File

@ -237,7 +237,7 @@
<option value="Theory">Theory</option> <option value="Theory">Theory</option>
<option value="Practical">Practical</option> <option value="Practical">Practical</option>
<option value="Workshop">Workshop</option> <option value="Workshop">Workshop</option>
<option value="Exam">Exam</option> <!-- <option value="Exam">Exam</option> -->
</select> </select>
</div> </div>
</div> </div>