diff --git a/app/Http/Controllers/GroupController.php b/app/Http/Controllers/GroupController.php
index 4001480865b805c0f355dc1bf00e2ac040acd6e5..9e5d975b21353a4ab44d9213be03e886cb3c4cc4 100644
--- a/app/Http/Controllers/GroupController.php
+++ b/app/Http/Controllers/GroupController.php
@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Http\Requests\FilterGroupsPostRequest;
 use App\Http\Requests\GroupPostRequest;
 use App\Models\Group;
 
@@ -12,10 +13,10 @@ class GroupController extends Controller
         return view('groups.create');
     }
 
-    public function list()
+    public function list(FilterGroupsPostRequest $request)
     {
         return view('groups.show', [
-            'groups' => Group::paginate(5),
+            'groups' => Group::filter($request->validated())->paginate(5),
         ]);
     }
 
diff --git a/app/Http/Controllers/JournalController.php b/app/Http/Controllers/JournalController.php
index 87db8799bcaef6c9dc2a42561d5d5b03d38430bc..ac38b4e01a3c615a6893c6dc929d3d5e70c210fc 100644
--- a/app/Http/Controllers/JournalController.php
+++ b/app/Http/Controllers/JournalController.php
@@ -18,7 +18,7 @@ class JournalController extends Controller
 
     public function journal(JournalPostRequest $request)
     {
-        $students = Student::groups($request->validated())->get();
+        $students = Student::filter($request->validated())->get();
         $subjects = Subject::all()->whereIn('id', Mark::all()->whereIn('student_id', $students->pluck('id'))->pluck('subject_id'));
         $avg = Mark::all()->whereIn('student_id', $students->pluck('id'))->groupBy('subject_id')->sortKeys();
 
diff --git a/app/Http/Controllers/StudentController.php b/app/Http/Controllers/StudentController.php
index 0f3e6f1e53b7adc0a469b533e31ffec267257b91..b7864f2037269c15fd66b35362c04f202f79a4fe 100644
--- a/app/Http/Controllers/StudentController.php
+++ b/app/Http/Controllers/StudentController.php
@@ -28,10 +28,9 @@ class StudentController extends Controller
     public function list(FilterStudentPostRequest $request)
     {
         return view('students.show', [
-            'students' => Student::groups($request->validated())->paginate(5),
+            'students' => Student::filter($request->validated())->paginate(5),
             'groups' => Group::all(),
         ]);
-
     }
 
     public function edit(Student $student)
diff --git a/app/Http/Controllers/SubjectController.php b/app/Http/Controllers/SubjectController.php
index 77ae24c0c200ae73460ab6474b0eaa6e13a2569e..62d97e96c6d5f939fa512863373dc462afcc7d7d 100644
--- a/app/Http/Controllers/SubjectController.php
+++ b/app/Http/Controllers/SubjectController.php
@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Http\Requests\FilterSubjectsPostRequest;
 use App\Http\Requests\SubjectPostRequest;
 use App\Models\Subject;
 
@@ -12,10 +13,10 @@ class SubjectController extends Controller
         return view('subjects.create');
     }
 
-    public function list()
+    public function list(FilterSubjectsPostRequest $request)
     {
         return view('subjects.show', [
-            'subjects' => Subject::paginate(5),
+            'subjects' => Subject::filter($request->validated())->paginate(5),
         ]);
     }
 
diff --git a/app/Http/Requests/FilterGroupsPostRequest.php b/app/Http/Requests/FilterGroupsPostRequest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8fd78acc0dbf22d2f9f6f887afc4a943d31c5eaf
--- /dev/null
+++ b/app/Http/Requests/FilterGroupsPostRequest.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FilterGroupsPostRequest extends FormRequest
+{
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'name' => ['string', 'max:255', 'min:3'],
+        ];
+    }
+}
diff --git a/app/Http/Requests/FilterStudentPostRequest.php b/app/Http/Requests/FilterStudentPostRequest.php
index eaadd8ab812332f0fa05545d27a9b018fe13b3ea..5ab676211c60b8a789e96bab28ada37daeaf0fea 100644
--- a/app/Http/Requests/FilterStudentPostRequest.php
+++ b/app/Http/Requests/FilterStudentPostRequest.php
@@ -14,7 +14,11 @@ class FilterStudentPostRequest extends FormRequest
     public function rules()
     {
         return [
-            'group_id' => ['integer', 'exists:groups,id'],
+            'group_id' => ['integer', 'nullable', 'exists:groups,id'],
+            'date_of_birth' => ['date', 'nullable', 'after:01.01.2010'],
+            'name' => ['string', 'nullable'],
+            'surname' => ['string', 'nullable'],
+            'patronymic' => ['string', 'nullable'],
         ];
     }
 }
diff --git a/app/Http/Requests/FilterSubjectsPostRequest.php b/app/Http/Requests/FilterSubjectsPostRequest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6be1177378bacfaa9627f17db3b65d358a109d95
--- /dev/null
+++ b/app/Http/Requests/FilterSubjectsPostRequest.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class FilterSubjectsPostRequest extends FormRequest
+{
+    /**
+     * Get the validation rules that apply to the request.
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        return [
+            'name' => ['string', 'max:255', 'min:3'],
+        ];
+    }
+}
diff --git a/app/Models/Group.php b/app/Models/Group.php
index 0b083d08f7face87b0a4509b46f35a999f17aa41..8007c8a199542fe430c1d91cbfa0e24c7d51524e 100644
--- a/app/Models/Group.php
+++ b/app/Models/Group.php
@@ -4,10 +4,12 @@ namespace App\Models;
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
+use App\Traits\ScopeTrait;
 
 class Group extends Model
 {
     use HasFactory;
+    use ScopeTrait;
 
     protected $fillable = [
         'name',
diff --git a/app/Models/Student.php b/app/Models/Student.php
index ad6c48f8e204df662cdb957fcf6b20c4d030961e..c580e9e4c6479c25ccd3968798fa68f31dcc5147 100644
--- a/app/Models/Student.php
+++ b/app/Models/Student.php
@@ -2,14 +2,13 @@
 
 namespace App\Models;
 
-use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
-use Illuminate\Database\Eloquent\Model;
 use Illuminate\Notifications\Notifiable;
 use Laravel\Fortify\TwoFactorAuthenticatable;
 use Laravel\Jetstream\HasProfilePhoto;
 use Laravel\Sanctum\HasApiTokens;
 use Illuminate\Foundation\Auth\User as Authenticatable;
+use App\Traits\ScopeTrait;
 
 class Student extends Authenticatable
 {
@@ -19,6 +18,7 @@ class Student extends Authenticatable
     use HasProfilePhoto;
     use Notifiable;
     use TwoFactorAuthenticatable;
+    use ScopeTrait;
 
     protected $fillable = [
         'name',
@@ -40,21 +40,6 @@ class Student extends Authenticatable
         return $this->belongsToMany(Subject::class, 'marks')->withPivot('mark');
     }
 
-    /**
-     * Filter
-     * @param Builder $query
-     * @param array|null $request
-     * @return Builder
-     */
-    public function scopeGroups(Builder $query, ?array $request = null) : Builder
-    {
-        if (isset($request)) {
-            $query->where($request);
-        }
-
-        return $query;
-    }
-
     public function getFullNameAttribute() : string
     {
         return $this->surname . " " . substr($this->name, 0, 1) . ". " . substr($this->patronymic, 0, 1);
diff --git a/app/Models/Subject.php b/app/Models/Subject.php
index 7cd21f2cd2879b453cff67ef90677f89a687b1c8..c436c7ac4d5f8047a3120acdaab41cd2649a14f8 100644
--- a/app/Models/Subject.php
+++ b/app/Models/Subject.php
@@ -4,10 +4,12 @@ namespace App\Models;
 
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Database\Eloquent\Model;
+use App\Traits\ScopeTrait;
 
 class Subject extends Model
 {
     use HasFactory;
+    use ScopeTrait;
 
     protected $fillable = [
         'name',
diff --git a/app/Traits/ScopeTrait.php b/app/Traits/ScopeTrait.php
new file mode 100644
index 0000000000000000000000000000000000000000..c1516551da8598a1d8dca6b947f99c1f444255a2
--- /dev/null
+++ b/app/Traits/ScopeTrait.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Traits;
+
+use Illuminate\Database\Eloquent\Builder;
+
+trait ScopeTrait
+{
+    /**
+     * Filter
+     * @param Builder $query
+     * @param array|null $params
+     * @return Builder
+     */
+    public function scopeFilter(Builder $query, ?array $params = null) : Builder
+    {
+        if (isset($params)) {
+            $query->where(array_filter($params));
+        }
+
+        return $query;
+    }
+}
diff --git a/resources/views/groups/filter.blade.php b/resources/views/groups/filter.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..5c6065d429eef78cc2f0d4b60589e1c7e3c58d2f
--- /dev/null
+++ b/resources/views/groups/filter.blade.php
@@ -0,0 +1,13 @@
+<div class="card text-dark bg-light mt-4">
+    <div class="card-header">Groups</div>
+    <form action={{ route('groups.list') }} method="get">
+        @csrf
+        <div class="card-body">
+            <div class="input-group mb-3">
+                <label class="input-group-text" for="inputGroupSelect01">Group</label>
+                <input type="text" class="form-control" name="name">
+            </div>
+            <button class="btn btn-primary">Find</button>
+        </div>
+    </form>
+</div>
diff --git a/resources/views/groups/show.blade.php b/resources/views/groups/show.blade.php
index e15cb96f0c10ee8006d373fadcabba27748d9566..a239c03c13e75048f747263a2be7c87519a0028d 100644
--- a/resources/views/groups/show.blade.php
+++ b/resources/views/groups/show.blade.php
@@ -1,34 +1,37 @@
 <x-app-layout>
-    <x-slot name="header">
-        <h2 class="font-semibold text-xl text-gray-800 leading-tight">
-            {{ __('Groups') }}
-        </h2>
-    </x-slot>
     <div class="container">
-        <div class="row mx-auto mt-5">
-            <a href="{{ route('groups.create') }}" class="w-100 btn btn-success">Add</a>
-        </div>
-        <div class="row">
-    @foreach($groups as $group)
-        <div class="col-md-4 mb-5 mt-5">
-        <div class="card">
-            <div class="card-body">
-                <h5 class="card-title">{{ $group->name }}</h5>
-                <a class="card-link btn btn-primary mb-3 mt-1" href={{ route('groups.edit_form', $group->id) }}>Edit</a>
-                <form action={{ route('groups.delete', $group->id) }} method="post">
-                    @csrf
-                    <button class="btn btn-danger" href="#" type="submit">Delete</button>
-                </form>
+        @include('groups.filter')
+        <x-slot name="header">
+            <h2 class="font-semibold text-xl text-gray-800 leading-tight">
+                {{ __('Groups') }}
+            </h2>
+        </x-slot>
+        <div class="container">
+            <div class="row mx-auto mt-5">
+                <a href="{{ route('groups.create') }}" class="w-100 btn btn-success">Add</a>
+            </div>
+            <div class="row">
+                @foreach($groups as $group)
+                    <div class="col-md-4 mb-5 mt-5">
+                        <div class="card">
+                            <div class="card-body">
+                                <h5 class="card-title">{{ $group->name }}</h5>
+                                <a class="card-link btn btn-primary mb-3 mt-1" href={{ route('groups.edit_form', $group->id) }}>Edit</a>
+                                <form action={{ route('groups.delete', $group->id) }} method="post">
+                                    @csrf
+                                    <button class="btn btn-danger" href="#" type="submit">Delete</button>
+                                </form>
+                            </div>
+                        </div>
+                    </div>
+                @endforeach
             </div>
         </div>
-        </div>
-    @endforeach
-        </div>
-    </div>
-    <div class="container">
-        <div class="row">
-            <div class="col-md-7 ml-md-auto">
-                {{$groups->links()}}
+        <div class="container">
+            <div class="row">
+                <div class="col-md-7 ml-md-auto">
+                    {{ $groups->appends(array_filter(request()->toArray()))->links() }}
+                </div>
             </div>
         </div>
     </div>
diff --git a/resources/views/students/filter.blade.php b/resources/views/students/filter.blade.php
index fa7a7756542eb49969bf8d76609f09900890201f..0a8b22f22586e53ea6f7371eb356613ac8a7a36f 100644
--- a/resources/views/students/filter.blade.php
+++ b/resources/views/students/filter.blade.php
@@ -1,16 +1,33 @@
 <div class="card text-dark bg-light mt-4">
-    <div class="card-header">Groups</div>
-    <form action={{ route('students.list') }} method="post">
+    <div class="card-header">Students</div>
+    <form action={{ route('students.list') }} method="get">
         @csrf
         <div class="card-body">
-            <div class="input-group mb-3">
-                <label class="input-group-text" for="inputGroupSelect01">Group</label>
+            <div class="input-group mb-2">
+                <label class="input-group-text w-32" for="inputGroupSelect01">Group</label>
                 <select class="custom-select" id="inputGroupSelect01" name="group_id">
+                    <option value="null">All</option>
                     @foreach($groups as $group)
                         <option value="{{ $group->id }}">{{ $group->name }}</option>
                     @endforeach
                 </select>
             </div>
+            <div class="input-group ">
+                <label class="input-group-text w-32">Date of birth</label>
+                <input type="date" class="form-control" name="date_of_birth">
+            </div>
+            <div class="input-group mt-2">
+                <label class="input-group-text w-32">Name</label>
+                <input type="text" class="form-control" name="name">
+            </div>
+            <div class="input-group mt-2">
+                <label class="input-group-text w-32">Surname</label>
+                <input type="text" class="form-control" name="surname">
+            </div>
+            <div class="input-group mt-2">
+                <label class="input-group-text w-32">Patronymic</label>
+                <input type="text" class="form-control" name="patronymic">
+            </div>
             <button class="btn btn-primary">Submit</button>
         </div>
     </form>
diff --git a/resources/views/students/show.blade.php b/resources/views/students/show.blade.php
index 5bb400d5857cb44d786ec5981291f931d744e291..dd4c50cd8130dd033a141eca52884dbd44833795 100644
--- a/resources/views/students/show.blade.php
+++ b/resources/views/students/show.blade.php
@@ -31,9 +31,7 @@
     <div class="container">
         <div class="row">
             <div class="col-md-7 ml-md-auto">
-                @if(! empty($students->items()))
-                    {{ request()->get('group_id') ? $students->appends(['group_id'=>$students->first()->group->id])->links() : $students->links() }}
-                @endif
+                {{ $students->appends(array_filter(request()->toArray()))->links() }}
             </div>
         </div>
     </div>
diff --git a/resources/views/subjects/filter.blade.php b/resources/views/subjects/filter.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..9cf83ed68836bd0fb4e1362b3d993a76ca7348fa
--- /dev/null
+++ b/resources/views/subjects/filter.blade.php
@@ -0,0 +1,13 @@
+<div class="card text-dark bg-light mt-4">
+    <div class="card-header">Subjects</div>
+    <form action={{ route('subjects.list') }} method="get">
+        @csrf
+        <div class="card-body">
+            <div class="input-group mb-3">
+                <label class="input-group-text" for="name">Group</label>
+                <input type="text" class="form-control" name="name">
+            </div>
+            <button class="btn btn-primary">Find</button>
+        </div>
+    </form>
+</div>
diff --git a/resources/views/subjects/show.blade.php b/resources/views/subjects/show.blade.php
index de5bc0533aa10b6667276f7e3993e0637d24da18..f17cba7e066b7bbc2a2e548759a237fe522c0476 100644
--- a/resources/views/subjects/show.blade.php
+++ b/resources/views/subjects/show.blade.php
@@ -5,6 +5,7 @@
         </h2>
     </x-slot>
     <div class="container">
+        @include('subjects.filter')
         <div class="row mx-auto mt-5">
             <a href="{{ route('subjects.create') }}" class="w-100 btn btn-success">Add</a>
         </div>
@@ -28,7 +29,7 @@
     <div class="container">
         <div class="row">
             <div class="col-md-7 ml-md-auto">
-                {{$subjects->links()}}
+                {{ $subjects->appends(array_filter(request()->toArray()))->links() }}
             </div>
         </div>
     </div>
diff --git a/routes/web.php b/routes/web.php
index 9673973ae209160afac262794ac77c161817c668..7f79e81cf2f5cc703532a810138a9f7243212f5f 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -40,7 +40,7 @@ Route::prefix('students')->middleware('auth')->name('students.')->group(function
     Route::post('edit/{student}', [StudentController::class, 'update'])->name('edit');
     Route::post('create', [StudentController::class, 'create'])->name('create');
     Route::get('create', [StudentController::class, 'createForm'])->name('create_form');
-    Route::match(['get', 'post'], 'list', [StudentController::class, 'list'])->name('list');
+    Route::get('list', [StudentController::class, 'list'])->name('list');
     Route::post('addMark/{student}', [StudentController::class, 'addMark'])->name('add_mark');
     Route::get('deleteMark/{student}/{subject}', [StudentController::class, 'deleteMark'])->name('delete_mark');
 });