diff --git a/backend/__pycache__/eventlog.cpython-311.pyc b/backend/__pycache__/eventlog.cpython-311.pyc
index 5a184ea042192c06e08c539c206b3c7ac6a70461..692dca41b4233f88d2bc97b67507c346874a417e 100644
Binary files a/backend/__pycache__/eventlog.cpython-311.pyc and b/backend/__pycache__/eventlog.cpython-311.pyc differ
diff --git a/backend/__pycache__/input.cpython-311.pyc b/backend/__pycache__/input.cpython-311.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..f14b84e6bcefb3f57569b9936f2769cb4a4498ff
Binary files /dev/null and b/backend/__pycache__/input.cpython-311.pyc differ
diff --git a/backend/petrinet.py b/backend/petrinet.py
index 23db0cc230d91a47b14f48c90508f998614e8703..cdfa96e9a9f8237ade1d98c4d31802b37713d8bc 100644
--- a/backend/petrinet.py
+++ b/backend/petrinet.py
@@ -2,6 +2,8 @@ from pm4py.objects.petri_net.obj import PetriNet, Marking
 from pm4py.objects.conversion.log import converter as log_converter
 import pm4py
 import pandas as pd
+import eventlog
+from collections import OrderedDict
 
 def generate_petri_net():
     dataframe = pd.read_csv(r'Frontend\export\eventlog.csv', sep=',')
@@ -14,9 +16,61 @@ def generate_petri_net():
     event_log = pm4py.convert_to_event_log(dataframe)
 
     net, initial_marking, final_marking = pm4py.discover_petri_net_inductive(event_log)
-    print(net)
-    pm4py.view_petri_net(net, initial_marking, final_marking)
+    # print(net)
+    # pm4py.view_petri_net(net, initial_marking, final_marking)
+
+    for t in net.transitions:
+        print("\nTransition: "+t.name)
+
+    return net, initial_marking, final_marking 
+
+def decorate_petri_net(case, rec, name):
+    activity_mapping = {
+        1: 'place order',
+        2: 'arrange standard order',
+        3: 'arrange custom order',
+        4: 'pick from stock A', 
+        5: 'pick from stock B', 
+        6: 'pick from stock C', 
+        7: 'manufacture A', 
+        8: 'manufacture B', 
+        9: 'pack A',
+        10: 'pack B',
+        11: 'pack C',
+        12: 'attempt delivery A',
+        13: 'attempt delivery B',
+        14: 'attempt delivery C',
+        15: 'order completed',
+    }
+
+    net, initial_marking, final_marking = generate_petri_net()
+    state = eventlog.get_state(case, name)
+    events = state['case']
+    
+    event_names = []
+    for i in range(len(events)):
+        if events[i] == 1:
+            event_names.append(activity_mapping[i+1])
+
+    decoration = {}
+    rec_name = activity_mapping[rec]
+
+    for t in net.transitions:
+        print(str(t.label))
+        if str(t.label) in event_names:    
+            decoration.update({t: {}})
+            decoration[t].update({"color":"blue"})
+            decoration[t].update({"label":t.label})
+        elif str(t.label) == rec_name:
+            decoration.update({t: {}})
+            decoration[t].update({"color":"green"})
+            decoration[t].update({"label":t.label})
+
+
+    pm4py.view_petri_net(net, initial_marking, final_marking, decorations = decoration)
+
+
+decorate_petri_net(5, 15, "optis")
 
-generate_petri_net()