File size: 2,415 Bytes
099d157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import sqlite3
import random
from datetime import datetime, timedelta
import json

def seed_emergency_data():
    conn = sqlite3.connect('sentinel.db')
    c = conn.cursor()
    
    # Check if we already have these student IDs
    c.execute("SELECT COUNT(*) FROM sessions WHERE student_id IN ('101', '1430', '2024')")
    count = c.fetchone()[0]
    
    if count == 0:
        print("Seeding emergency data for demo...")
        
        student_ids = ['101', '1430', '2024']
        emotions = ['Happy', 'Neutral', 'Surprise', 'Calm']
        
        now = datetime.now()
        
        for s_id in student_ids:
            # Generate 10 realistic sessions for each student
            for i in range(10):
                # Random timestamp within last 30 days
                days_ago = random.randint(0, 30)
                hours_ago = random.randint(0, 23)
                session_time = now - timedelta(days=days_ago, hours=hours_ago)
                
                # Random realistic engagement between 40% and 95%
                engagement = round(random.uniform(40.0, 95.0), 1)
                dom_emotion = random.choice(emotions)
                
                # Insert into sessions
                c.execute(
                    "INSERT INTO sessions (student_id, start_time, end_time, avg_engagement, dominant_emotion) VALUES (?, ?, ?, ?, ?)",
                    (s_id, session_time.strftime("%Y-%m-%d %H:%M:%S"), (session_time + timedelta(minutes=10)).strftime("%Y-%m-%d %H:%M:%S"), engagement, dom_emotion)
                )
                
                session_id = c.lastrowid
                
                # Insert into student_performance to keep it consistent
                c.execute(
                    "INSERT INTO student_performance (student_id, session_id, date, engagement_score, face_emotion, speech_emotion, text_sentiment, overall_summary) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
                    (s_id, session_id, session_time.strftime("%Y-%m-%d"), engagement, 
                     json.dumps({"Happy": 80}), json.dumps({"Happy": 70}), json.dumps({"positive": 90}), "Good session")
                )
                
        conn.commit()
        print("Emergency data seeded successfully! Student IDs: 101, 1430, 2024 are ready.")
    else:
        print("Demo data already exists.")
        
    conn.close()

if __name__ == "__main__":
    seed_emergency_data()