!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/school.picotech.app/public_html/app/Http/Controllers/   drwxr-xr-x
Free 28.21 GB of 117.98 GB (23.91%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     ApiController.php (22.97 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers;

use 
App\Http\Controllers\Controller;
use 
App\Http\Controllers\CommonController;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Validator;
use 
Illuminate\Support\Facades\Hash;
use 
App\Models\User;
use 
App\Models\Routine;
use 
App\Models\Subject;
use 
App\Models\Syllabus;
use 
App\Models\ClassRoom;
use 
App\Models\Session;
use 
App\Models\DailyAttendances;
use 
App\Models\Department;
use 
App\Models\Book;
use 
App\Models\BookIssue;
use 
App\Models\Exam;
use 
App\Models\ExamCategory;
use 
App\Models\Gradebook;
use 
App\Models\StudentFeeManager;
use 
File;

class 
ApiController extends Controller
{

    
//student login function
    
public function login(Request $request) {
        
$fields $request->validate([
            
'email' => 'required|string',
            
'password' => 'required|string'
        
]);

        
// Check email
        
$user User::where('email'$fields['email'])->first();

        
// Check password
        
if(!$user || !Hash::check($fields['password'], $user->password)) {
            return 
response([
                
'message' => 'Invalid credentials!'
            
], 401);
        } else if(
$user->role_id == 7) {
            
$token $user->createToken('auth-token')->plainTextToken;

            
$response = [
                
'message' => 'Login successful',
                
'user' => $user,
                
'token' => $token
            
];

            return 
response($response201);

        } else {

            
//user not authorized
            
return response()->json([
                
'message' => 'User not authorized!',
            ], 
400);
        }
    }


    
//student logout function
    
public function logout(Request $request)
    {
        
auth()->user()->tokens()->delete;

        return [
            
'message' => 'Logged out successfully.'
        
];
    }


    
//student details
    
public function userDetails(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);

        if(
$student_data) {
            return 
response($student_data201);
        } else {
            return 
response()->json([
                
'message' => 'User information not found!',
            ], 
400);
        }
    }


    
//student class routine get
    
public function routine(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];


        
$routines Routine::where(['class_id' => $class_id'section_id' => $section_id'session_id' => $session_id'school_id' => $school_id])->get();

        if(
count($routines) > 0) {

            foreach(
$routines as $key => $routine) {
                
$res[$key]['id'] = $routine->id;
                
$res[$key]['subject_id'] = $routine->subject_id;
                
$res[$key]['subject_name'] = (new CommonController)->getSubjectDetails($routine->subject_id)->name;
                
$res[$key]['starting_time'] = $routine->starting_hour.':'.$routine->starting_minute;
                
$res[$key]['ending_time'] = $routine->ending_hour.':'.$routine->ending_minute;
                
$res[$key]['day'] = $routine->day;
                
$res[$key]['teacher_id'] = $routine->teacher_id;
                
$res[$key]['teacher_name'] = (new CommonController)->idWiseUserName($routine->teacher_id);
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'routines' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No routine found!',
            ], 
400);
        }
    }


    
//student attendance get
    
public function attendanceReport(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];


        
$attendance_of_student DailyAttendances::where(['class_id' => $student_data['class_id'], 'section_id' => $student_data['section_id'], 'student_id' => auth('sanctum')->user()->id'school_id' => $school_id'session_id' => $session_id])->get();

        if(
count($attendance_of_student) > 0) {

            foreach(
$attendance_of_student as $key => $data) {
                
$res[$key]['id'] = $data->id;
                
$res[$key]['status'] = $data->status;
                
$res[$key]['timestamp'] = $data->timestamp;
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'attedances' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'Attendance report not found!',
            ], 
400);
        }
    }

    public function 
subjects(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        
$subjects Subject::where(['class_id' => $class_id'session_id' => $session_id'school_id' => $school_id])->get();

        if(
count($subjects) > 0) {

            foreach(
$subjects as $key => $subject) {
                
$res[$key]['id'] = $subject->id;
                
$res[$key]['name'] = $subject->name;
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'subjects' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No subject found!',
            ], 
400);
        }
    }

    public function 
syllabus_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        if(!empty(
$request->all()))
        {
            
$syllabuses Syllabus::where(['class_id' => $class_id'section_id' => $section_id'subject_id' => $request->subject_id'session_id' => $session_id'school_id' => $school_id])->get();
        } else {
            
$syllabuses Syllabus::where(['class_id' => $class_id'section_id' => $section_id'session_id' => $session_id'school_id' => $school_id])->get();
        }

        if(
count($syllabuses) > 0) {

            foreach(
$syllabuses as $key => $syllabus) {
                
$res[$key]['id'] = $syllabus->id;
                
$res[$key]['title'] = $syllabus->title;
                
$res[$key]['subject_id'] = $syllabus->subject_id;
                
$res[$key]['subject_name'] = (new CommonController)->getSubjectDetails($syllabus->subject_id)->name;
                
$res[$key]['file_url'] = 'http://192.168.0.136/ekattor8/ekattor8_1.5/public/assets/uploads/syllabus/'.$syllabus->file;
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'syllabuses' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No subject found!',
            ], 
400);
        }
    }

    public function 
teacher_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        if(!empty(
$request->all())){
            
$teachers User::where('role_id'3)->where('school_id'$school_id)->where('department_id'$request->department_id)->get();
        } else {
            
$teachers User::where('role_id'3)->where('school_id'$school_id)->get();
        }

        if(
count($teachers) > 0) {

            foreach(
$teachers as $key => $teacher) {
                
$res[$key]['id'] = $teacher->id;
                
$res[$key]['name'] = $teacher->name;
                
$res[$key]['department_id'] = $teacher->department_id;
                
$res[$key]['school_id'] = $teacher->school_id;
                
$res[$key]['department_name'] = Department::find($teacher->department_id)->name;
                
$res[$key]['designation'] = $teacher->designation;
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'teachers' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No teacher found!',
            ], 
400);
        }
    }

    public function 
book_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        if(!empty(
$request->all())){
            
$books Book::where('school_id'$school_id)->where('name''LIKE'"%".$request->search_key."%")->get();
        } else {
            
$books Book::where('school_id'$school_id)->get();
        }

        if(
count($books) > 0) {

            foreach(
$books as $key => $book) {
                
$res[$key]['id'] = $book->id;
                
$res[$key]['name'] = $book->name;
                
$res[$key]['author'] = $book->author;

                
$number_of_issued_book BookIssue::get()->where('book_id'$book->id)->where('status'0);

                
$res[$key]['copies'] = $book->copies;
                
$res[$key]['available_copies'] = $book->copies count($number_of_issued_book);
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'books' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No book found!',
            ], 
400);
        }
    }

    public function 
book_issue_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        if(!empty(
$request->all())){
            
$data $request->all();
            
$date explode('-'$data['date_range']);
            
$date_from strtotime($date[0].' 00:00:00');
            
$date_to  strtotime($date[1].' 23:59:59');
            
$issued_books BookIssue::whereBetween('timestamp', [$date_from$date_to])->where('student_id'auth('sanctum')->user()->id)->where('school_id'$school_id)->where('session_id'$session_id)->get();
        } else {
            
$issued_books BookIssue::where('student_id'auth('sanctum')->user()->id)->where('school_id'$school_id)->where('session_id'$session_id)->get();
        }

        if(
count($issued_books) > 0) {

            foreach(
$issued_books as $key => $issued_book) {
                
$res[$key]['id'] = $issued_book->id;
                
$res[$key]['book_id'] = $issued_book->book_id;

                
$book_details Book::find($issued_book->book_id);

                
$res[$key]['book_name'] = $book_details->name;
                
$res[$key]['author'] = $book_details->author;


                
$res[$key]['issue_date'] = $issued_book->issue_date;
                
$res[$key]['status'] = $issued_book->status == 'pending' 'returned';
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'issued_books' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No issued book found!',
            ], 
400);
        }
    }

    public function 
exam_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        if(!empty(
$request->all())){
            
$exams Exam::where('class_id'$class_id)->where('school_id'$school_id)->where('subject_id'$request->subject_id)->get();
        } else {
            
$exams Exam::where('class_id'$class_id)->where('school_id'$school_id)->get();
        }

        if(
count($exams) > 0) {

            foreach(
$exams as $key => $exam) {
                
$res[$key]['id'] = $exam->id;
                
$res[$key]['name'] = $exam->name;
                
$res[$key]['exam_type'] = $exam->exam_type;
                
$res[$key]['subject_id'] = $exam->subject_id;
                
$res[$key]['subject_name'] = (new CommonController)->getSubjectDetails($exam->subject_id)->name;
                
$res[$key]['starting_time'] = $exam->starting_time;
                
$res[$key]['ending_time'] = $exam->ending_time;
                
$res[$key]['total_marks'] = $exam->total_marks;

                
$today strtotime(date("Y-m-d H:i:s"));
                
$expiry_status $exam->ending_time $today;
                if(
$expiry_status){
                    
$res[$key]['status'] = 'Expired';
                } else {
                    
$res[$key]['status'] = 'Upcoming';
                }
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'exams' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'No exam found!',
            ], 
400);
        }
    }

    public function 
profile_update(Request $request)
    {
        
$previous_data User::find(auth('sanctum')->user()->id);

        
$data['name'] = $request->name;
        
$data['email'] = $request->email;
        
$user_info['gender'] = $request->gender;
        
$user_info['blood_group'] = $request->blood_group;
        
$user_info['birthday'] = strtotime($request->birthday);
        
$user_info['phone'] = $request->phone;
        
$user_info['address'] = $request->address;


        
// if(empty($request->file('photo'))){
        //     $user_info['photo'] = $previous_data->photo;
        // }
        // else{

        //     $file_name = random(6).'-'.$request->file('photo')->getClientOriginalName();
        //     $user_info['photo'] = $file_name;

        //     $request->file('photo')->move(public_path('assets/uploads/user-images/'), $file_name);
        // }

        
$user_info['photo'] = $previous_data->photo;

        
$data['user_information'] = json_encode($user_info);

        
User::where('id'auth('sanctum')->user()->id)->update($data);

        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);

        if(
$student_data) {
            return 
response()->json([
                
'student_data' => $student_data,
                
'message' => 'Profile Update successfully',
            ], 
201);
        } else {
            return 
response()->json([
                
'message' => 'Profile Update failed!',
            ], 
400);
        }
    }

    public function 
marks(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];

        
$subjects Subject::where(['class_id' => $class_id'school_id' => $school_id])->get();

        if(!empty(
$request->all())){
            
$exam_marks Gradebook::where('class_id'$class_id)->where('student_id'auth('sanctum')->user()->id)->where('exam_category_id'$request->exam_category_id)->where('session_id'$session_id)->get();
        } else {
            
$exam_marks Gradebook::where('class_id'$class_id)->where('student_id'auth('sanctum')->user()->id)->where('session_id'$session_id)->get();
        }

        
$exam_categories ExamCategory::where('school_id'$school_id)->get();

        
$res = [];
        
$categories = [];

        if(
count($exam_marks) > 0) {

            foreach(
$exam_marks as $key => $exam) {
                
$res[$key]['exam_id'] = $exam->id;
                
$res[$key]['exam_category_id'] = $exam->exam_category_id;

                
$subject_list json_decode($exam->markstrue);
                foreach(
$subjects as $index => $subject) {
                    if(!empty(
$subject_list[$subject->id])){
                        
$sub_res[$index]['subject_id'] = $subject->id;
                        
$sub_res[$index]['subject_name'] = $subject->name;
                        
$sub_res[$index]['marks'] = $subject_list[$subject->id];
                        
// if(!empty($subject_list[$subject->id])){
                        //     $sub_res[$index]['marks'] = $subject_list[$subject->id];
                        // } else {
                        //     $sub_res[$index]['marks'] = '-';
                        // }
                        
$res[$key]['subjects'] = $sub_res;
                    }
                }

                
$res[$key]['comment'] = $exam->comment;
            }
        } 

        if(
count($exam_categories) > 0) {
            foreach(
$exam_categories as $key => $category) {
                
$categories[$key]['exam_category_id'] = $category->id;
                
$categories[$key]['exam_category_name'] = $category->name;
            }
        }

        
$response = [
            
'class_id' => $class_id,
            
'class_name' => $class_name,
            
'section_id' => $section_id,
            
'section_name' => $section_name,
            
'school_id' => $school_id,
            
'session_id' => $session_id,
            
'exam_marks' => $res,
            
'exam_categories' => $categories
        
];

        return 
response($response201);

    }


    public function 
fee_list(Request $request)
    {
        
$student_data = (new CommonController)->get_student_details_by_id(auth('sanctum')->user()->id);
        
$class_id $student_data['class_id'];
        
$class_name = (new CommonController)->getClassDetails($class_id)->name;
        
$section_id $student_data['section_id'];
        
$section_name = (new CommonController)->getSectionDetails($section_id)->name;
        
$school_id $student_data['school_id'];
        
$session_id $student_data['running_session'];


        if(!empty(
$request->all())){
            
$data $request->all();
            
$date explode('-'$data['date_range']);
            
$date_from strtotime($date[0].' 00:00:00');
            
$date_to  strtotime($date[1].' 23:59:59');
            
$invoices StudentFeeManager::whereBetween('timestamp', [$date_from$date_to])->where('student_id'auth('sanctum')->user()->id)->where('school_id'$school_id)->where('session_id'$session_id)->get();
        } else {
            
$invoices StudentFeeManager::where('student_id'auth('sanctum')->user()->id)->where('school_id'$school_id)->where('session_id'$session_id)->get();
        }

        if(
count($invoices) > 0) {

            foreach(
$invoices as $key => $invoice) {
                
$res[$key]['id'] = $invoice->id;
                
$res[$key]['title'] = $invoice->title;
                
$res[$key]['total_amount'] = $invoice->total_amount;
                
$res[$key]['payment_method'] = $invoice->payment_method;
                
$res[$key]['paid_amount'] = $invoice->paid_amount;
                
$res[$key]['status'] = $invoice->status;
                
$res[$key]['timestamp'] = $invoice->timestamp;
            }

            
$response = [
                
'class_id' => $class_id,
                
'class_name' => $class_name,
                
'section_id' => $section_id,
                
'section_name' => $section_name,
                
'school_id' => $school_id,
                
'session_id' => $session_id,
                
'invoices' => $res
            
];

            return 
response($response201);
        } else {
            return 
response()->json([
                
'message' => 'Invoices not found!',
            ], 
400);
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.006 ]--