Attender / init_db.py
chualinwei3's picture
Upload 30 files
f742815 verified
Raw
History Blame Contribute Delete
3.08 kB
"""
Database initialization script for Attendr
Creates tables and seeds sample data
"""
from app import app, db
from models import Student, Classroom, AttendanceSession, AttendanceRecord
from datetime import datetime
def init_database():
"""Initialize database with tables and sample data"""
with app.app_context():
# Drop all tables (use with caution in production!)
print("Dropping existing tables...")
db.drop_all()
# Create all tables
print("Creating tables...")
db.create_all()
# Seed sample classrooms (UTM locations)
print("Seeding sample classrooms...")
classrooms = [
Classroom(
name="N28-01-01",
building="N28 (Faculty of Computing)",
latitude=1.5586, # UTM Skudai approximate coordinates
longitude=103.6376,
radius_meters=50
),
Classroom(
name="N28-02-03",
building="N28 (Faculty of Computing)",
latitude=1.5588,
longitude=103.6378,
radius_meters=50
),
Classroom(
name="V01-LT1",
building="V01 (Lecture Hall)",
latitude=1.5590,
longitude=103.6380,
radius_meters=75
),
Classroom(
name="C22-Lab A",
building="C22 (Computer Lab)",
latitude=1.5584,
longitude=103.6374,
radius_meters=40
)
]
for classroom in classrooms:
db.session.add(classroom)
db.session.commit()
print(f"[OK] Created {len(classrooms)} classrooms")
# Create a sample student for testing (without face encoding)
print("Creating sample student...")
sample_student = Student(
student_id="A20EC0001",
name="Test Student",
email="test@graduate.utm.my",
is_active=True
)
db.session.add(sample_student)
db.session.commit()
print("[OK] Created sample student (face registration required)")
print("\n" + "="*50)
print("Database initialization complete!")
print("="*50)
print("\nSample Classrooms:")
for classroom in classrooms:
print(f" - {classroom.name} ({classroom.building})")
print(f"\nSample Student: {sample_student.student_id} - {sample_student.name}")
print("\nNext steps:")
print("1. Run the Flask app: python app.py")
print("2. Register student faces at: http://localhost:5000/register")
print("3. Create attendance session at: http://localhost:5000/lecturer")
print("4. Mark attendance at: http://localhost:5000/student")
print("="*50)
if __name__ == '__main__':
init_database()