Skip to content

Commit

Permalink
feat: simulate video learning events
Browse files Browse the repository at this point in the history
Resolves #3
  • Loading branch information
jo-elimu committed Sep 21, 2024
1 parent efed822 commit a60ee21
Show file tree
Hide file tree
Showing 7 changed files with 102 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896840,e387e38700000001,ai.elimu.analytics,3,akili and me - letter c,
0,1726896840,e387e38700000001,ai.elimu.analytics,42,one small step,
0,1726896840,e387e38700000001,ai.elimu.analytics,13,akili and me - the rectangle song,
0,1726896840,e387e38700000001,ai.elimu.analytics,8,akili and me - family,
0,1726896840,e387e38700000001,ai.elimu.analytics,3,akili and me - letter c,
0,1726896840,e387e38700000001,ai.elimu.analytics,42,one small step,
0,1726896840,e387e38700000001,ai.elimu.analytics,8,akili and me - family,
0,1726896840,e387e38700000001,ai.elimu.analytics,10,akili and me - music,
0,1726896840,e387e38700000001,ai.elimu.analytics,33,akili and me - letter i,
0,1726896840,e387e38700000001,ai.elimu.analytics,3,akili and me - letter c,
0,1726896840,e387e38700000001,ai.elimu.analytics,36,akili and me - letter l,
0,1726896840,e387e38700000001,ai.elimu.analytics,34,akili and me - letter j,
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896840,e387e38700000002,ai.elimu.analytics,42,one small step,
0,1726896840,e387e38700000002,ai.elimu.analytics,7,akili and me - letter g,
0,1726896840,e387e38700000002,ai.elimu.analytics,2,akili and me - letter b,
0,1726896840,e387e38700000002,ai.elimu.analytics,5,akili and me - letter e,
0,1726896840,e387e38700000002,ai.elimu.analytics,4,akili and me - letter d,
0,1726896840,e387e38700000002,ai.elimu.analytics,14,akili and me - counting compilation,
0,1726896840,e387e38700000002,ai.elimu.analytics,7,akili and me - letter g,
0,1726896840,e387e38700000002,ai.elimu.analytics,10,akili and me - music,
0,1726896840,e387e38700000002,ai.elimu.analytics,35,akili and me - letter k,
0,1726896840,e387e38700000002,ai.elimu.analytics,11,akili and me - art - drawing rectangles,
0,1726896840,e387e38700000002,ai.elimu.analytics,13,akili and me - the rectangle song,
0,1726896840,e387e38700000002,ai.elimu.analytics,9,akili and me - jump jump jump,
0,1726896840,e387e38700000002,ai.elimu.analytics,13,akili and me - the rectangle song,
0,1726896840,e387e38700000002,ai.elimu.analytics,1,akili and me - letter a,
0,1726896840,e387e38700000002,ai.elimu.analytics,5,akili and me - letter e,
0,1726896840,e387e38700000002,ai.elimu.analytics,10,akili and me - music,
0,1726896840,e387e38700000002,ai.elimu.analytics,33,akili and me - letter i,
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896840,e387e38700000003,ai.elimu.analytics,7,akili and me - letter g,
0,1726896840,e387e38700000003,ai.elimu.analytics,33,akili and me - letter i,
0,1726896840,e387e38700000003,ai.elimu.analytics,9,akili and me - jump jump jump,
0,1726896840,e387e38700000003,ai.elimu.analytics,12,akili and me - numbers - one two three song,
0,1726896840,e387e38700000003,ai.elimu.analytics,2,akili and me - letter b,
0,1726896840,e387e38700000003,ai.elimu.analytics,14,akili and me - counting compilation,
0,1726896840,e387e38700000003,ai.elimu.analytics,6,akili and me - letter f,
0,1726896840,e387e38700000003,ai.elimu.analytics,14,akili and me - counting compilation,
0,1726896840,e387e38700000003,ai.elimu.analytics,42,one small step,
0,1726896840,e387e38700000003,ai.elimu.analytics,12,akili and me - numbers - one two three song,
0,1726896840,e387e38700000003,ai.elimu.analytics,14,akili and me - counting compilation,
0,1726896840,e387e38700000003,ai.elimu.analytics,10,akili and me - music,
0,1726896840,e387e38700000003,ai.elimu.analytics,8,akili and me - family,
0,1726896840,e387e38700000003,ai.elimu.analytics,34,akili and me - letter j,
0,1726896840,e387e38700000003,ai.elimu.analytics,34,akili and me - letter j,
0,1726896840,e387e38700000003,ai.elimu.analytics,6,akili and me - letter f,
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896842,e387e38700000001,ai.elimu.analytics,1,piper,
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000002,ai.elimu.analytics,1,piper,
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
id,timestamp,android_id,package_name,video_id,video_title,learning_event_type
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
0,1726896842,e387e38700000003,ai.elimu.analytics,1,piper,
23 changes: 18 additions & 5 deletions simulate-video-learning-events.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
date_iso_8601 = datetime.today().strftime('%Y-%m-%d')
print(basename(__file__), f'date_iso_8601: {date_iso_8601}')

def simulateVideoLearningEvent(android_id):
def simulate_video_learning_event(android_id, videos_df: pandas.DataFrame):
print(basename(__file__), 'simulate_video_learning_event')
"""
Simulate a VideoLearningEvent, e.g. a video being opened.
Expand All @@ -33,12 +34,19 @@ def simulateVideoLearningEvent(android_id):
id = 0
timestamp = int(datetime.now().timestamp())

# Locate a random video in the DataFrame
number_of_videos = len(videos_df.index)
random_video_index = random.randrange(0, number_of_videos)
random_video = videos_df.loc[random_video_index]

return {
'id': id,
'timestamp': timestamp,
'android_id': android_id,
'package_name': package_name,
'video_id': 0
'video_id': random_video.id,
'video_title': random_video.title,
'learning_event_type': ''
}

for language_code in language_codes:
Expand All @@ -49,6 +57,11 @@ def simulateVideoLearningEvent(android_id):
print(basename(__file__), f'videos_csv_url: {videos_csv_url}')
videos_df = pandas.read_csv(videos_csv_url)
print(basename(__file__), f'videos_df: \n{videos_df}')
number_of_videos = len(videos_df.index)
print(basename(__file__), f'number_of_videos: {number_of_videos}')
if (number_of_videos == 0):
print(basename(__file__), 'Zero videos. Skipping event simulation.')
continue

base_url = f'http://{language_code.lower()}.elimu.ai'
print(basename(__file__), f'base_url: {base_url}')
Expand All @@ -65,12 +78,12 @@ def simulateVideoLearningEvent(android_id):
print(basename(__file__), f'random_number_of_events: {random_number_of_events}')
for i in range(random_number_of_events):
print(basename(__file__))
event = simulateVideoLearningEvent(android_id)
print(basename(__file__), f'event: {event}')
event = simulate_video_learning_event(android_id, videos_df)
# print(basename(__file__), f'event: {event}')
video_learning_events.append(event)

video_learning_events_df = pandas.DataFrame(video_learning_events)
print(basename(__file__), f'video_learning_events_df: \n{video_learning_events_df}')
# print(basename(__file__), f'video_learning_events_df: \n{video_learning_events_df}')

# Export to CSV
language_dir = f'lang-{language_code}'
Expand Down

0 comments on commit a60ee21

Please sign in to comment.