Index: music/views.py
===================================================================
--- music/views.py	(revision 04f1bb3b067df3286119ab7f8d90e0a6e3aab1c2)
+++ music/views.py	(revision aee95487e11f84374b1f967c13e70cbcb91f54d3)
@@ -25,20 +25,41 @@
 ## LIST OF ALL ##
 def album_list(request):
+    search_track = request.GET.get('search_track', '').strip()
+
+    if search_track:
+        data = Album.objects.filter(title__icontains=search_track).values_list('title', flat=True)
+    else:
+        data = Album.objects.all().values_list('title', flat=True)
+
     heading = request.GET.get('model', 'All Albums')
-    data = Album.objects.values_list('title', flat=True)
-    return render(request, 'list.html', {'data': data, 'heading': heading})
+    return render(request, 'list.html', {
+        'data': data,
+        'heading': heading,
+        'search_track': search_track,
+    })
 
 
 def track_list(request):
+    search_track = request.GET.get('search_track', '').strip()
+
+    if search_track:
+        data = Track.objects.filter(name__icontains=search_track).values_list('name', flat=True)
+    else:
+        data = Track.objects.all().values_list('name', flat=True)
+
     heading = request.GET.get('model', 'All Tracks')
-    data = Track.objects.values_list('name', flat=True)
-    return render(request, 'list.html', {'data': data, 'heading': heading})
+    return render(request, 'list.html', {'data': data, 'heading': heading, 'search_track': search_track, })
 
 
 def artist_list(request):
+    search_track = request.GET.get('search_track', '').strip()
+
+    if search_track:
+        data = Artist.objects.filter(name__icontains=search_track).values_list('name', flat=True)
+    else:
+        data = Artist.objects.all().values_list('name', flat=True)
     heading = request.GET.get('model', 'All Artists')
-    data = Artist.objects.values_list('name', flat=True)
-
-    return render(request, 'list.html', {'data': data, 'heading': heading})
+
+    return render(request, 'list.html', {'data': data, 'heading': heading, 'search_track': search_track, })
 
 
@@ -75,21 +96,31 @@
 
 def avg_price_per_artist(request):
+    search_track = request.GET.get('search_track', '').strip()
+
     with connection.cursor() as cursor:
         cursor.execute("SELECT * FROM avg_price_per_artist;")
         rows = cursor.fetchall()
 
+    if search_track:
+        rows = [row for row in rows if search_track.lower() in row[0].lower()]
+
     data = [{'name': row[0], 'avg_price_per_track': row[1]} for row in rows]
 
-    return render(request, 'avg_price_per_artist.html', {'data': data})
+    return render(request, 'avg_price_per_artist.html', {'data': data, 'search_track': search_track})
 
 
 def rank_list_artists(request):
+    search_track = request.GET.get('search_track', '').strip()
+
     with connection.cursor() as cursor:
         cursor.execute("SELECT * FROM rank_list_artists;")
         rows = cursor.fetchall()
 
+    if search_track:
+        rows = [row for row in rows if search_track.lower() in row[0].lower()]
+
     data = [{'name': row[0], 'num_invoices': row[1], 'money_earned': row[2]} for row in rows]
 
-    return render(request, 'rank_list_artists.html', {'data': data})
+    return render(request, 'rank_list_artists.html', {'data': data, 'search_track': search_track})
 
 
@@ -324,5 +355,5 @@
     search_track = request.GET.get('search_track', '').strip()
 
-    invoices = Invoice.objects.all()
+    invoices = Invoice.objects.all().order_by('invoice_id')
 
     if search_track:
Index: templates/avg_price_per_artist.html
===================================================================
--- templates/avg_price_per_artist.html	(revision 04f1bb3b067df3286119ab7f8d90e0a6e3aab1c2)
+++ templates/avg_price_per_artist.html	(revision aee95487e11f84374b1f967c13e70cbcb91f54d3)
@@ -25,9 +25,18 @@
         </div>
     {% else %}
+        <form method="get" class="mb-3">
+            {% csrf_token %}
+            <input type="hidden" name="invoice_id" value="{{ selected_invoice_id }}">
+            <div class="input-group">
+                <input type="text" name="search_track" class="form-control" placeholder="Search artists"
+                       value="{{ search_track }}">
+                <button class="btn btn-outline-secondary" type="submit">Search</button>
+            </div>
+        </form>
         <ul class="list-group">
             {% for row in data %}
                 <li class="list-group-item d-flex justify-content-between align-items-center">
                     <div class="col-6">
-                       {{ row.name }}
+                        {{ row.name }}
                     </div>
                     <div class="col-6 text-end">
Index: templates/list.html
===================================================================
--- templates/list.html	(revision 04f1bb3b067df3286119ab7f8d90e0a6e3aab1c2)
+++ templates/list.html	(revision aee95487e11f84374b1f967c13e70cbcb91f54d3)
@@ -10,20 +10,28 @@
 </head>
 <body class="d-flex bg-light">
-    {% include 'sidebar.html' %}
-    <div class="container mt-5">
-        <h1 class="text-center mb-4">{{ heading }}</h1>
-
-        <div class="list-group">
-            {% for d in data %}
-                <a href="#" class="list-group-item list-group-item-action">
-                    {{ d }}
-                </a>
-            {% empty %}
-                <div class="alert alert-warning" role="alert">
-                    No data found.
-                </div>
-            {% endfor %}
+{% include 'sidebar.html' %}
+<div class="container mt-5">
+    <h1 class="text-center mb-4">{{ heading }}</h1>
+    <form method="get" class="mb-3">
+        {% csrf_token %}
+        <input type="hidden" name="invoice_id" value="{{ selected_invoice_id }}">
+        <div class="input-group">
+            <input type="text" name="search_track" class="form-control" placeholder="Search"
+                   value="{{ search_track }}">
+            <button class="btn btn-outline-secondary" type="submit">Search</button>
         </div>
+    </form>
+    <div class="list-group">
+        {% for d in data %}
+            <a href="#" class="list-group-item list-group-item-action">
+                {{ d }}
+            </a>
+        {% empty %}
+            <div class="alert alert-warning" role="alert">
+                No data found.
+            </div>
+        {% endfor %}
     </div>
+</div>
 </body>
 </html>
Index: templates/rank_list_artists.html
===================================================================
--- templates/rank_list_artists.html	(revision 04f1bb3b067df3286119ab7f8d90e0a6e3aab1c2)
+++ templates/rank_list_artists.html	(revision aee95487e11f84374b1f967c13e70cbcb91f54d3)
@@ -13,4 +13,14 @@
 <div class="container mt-5">
     <h1 class="text-center mb-4">Artist with Highest Earnings</h1>
+
+    <form method="get" class="mb-3">
+        {% csrf_token %}
+        <input type="hidden" name="invoice_id" value="{{ selected_invoice_id }}">
+        <div class="input-group">
+            <input type="text" name="search_track" class="form-control" placeholder="Search artists"
+                   value="{{ search_track }}">
+            <button class="btn btn-outline-secondary" type="submit">Search</button>
+        </div>
+    </form>
 
     <div class="list-group">
