Spaces:
Sleeping
Sleeping
Arnel Gwen Nuqui
commited on
Commit
·
60729a2
1
Parent(s):
4bd3968
Fix: add PyAV and aiortc build dependencies
Browse files- Dockerfile +15 -3
- database/__init__.py +0 -0
- database/__pycache__/__init__.cpython-311.pyc +0 -0
- database/__pycache__/connection.cpython-311.pyc +0 -0
- database/connection.py +0 -12
- database/db_query.txt +0 -79
- database/manual_insert.py +0 -58
Dockerfile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
FROM python:3.10-bullseye
|
| 2 |
|
| 3 |
-
# ---
|
| 4 |
RUN apt-get update && apt-get install -y \
|
| 5 |
libgl1 \
|
| 6 |
libglib2.0-0 \
|
|
@@ -14,17 +14,29 @@ RUN apt-get update && apt-get install -y \
|
|
| 14 |
libavfilter-dev \
|
| 15 |
libswscale-dev \
|
| 16 |
libswresample-dev \
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
|
|
|
| 19 |
WORKDIR /app
|
| 20 |
|
|
|
|
| 21 |
COPY requirements.txt .
|
| 22 |
|
|
|
|
| 23 |
RUN pip install --upgrade pip setuptools wheel
|
| 24 |
-
RUN pip install --no-cache-dir -r requirements.txt
|
| 25 |
|
|
|
|
| 26 |
COPY . .
|
| 27 |
|
|
|
|
| 28 |
EXPOSE 7860
|
| 29 |
|
|
|
|
| 30 |
CMD ["python", "app.py"]
|
|
|
|
| 1 |
FROM python:3.10-bullseye
|
| 2 |
|
| 3 |
+
# --- Install system dependencies (for OpenCV, MediaPipe, TensorFlow, aiortc, PyAV)
|
| 4 |
RUN apt-get update && apt-get install -y \
|
| 5 |
libgl1 \
|
| 6 |
libglib2.0-0 \
|
|
|
|
| 14 |
libavfilter-dev \
|
| 15 |
libswscale-dev \
|
| 16 |
libswresample-dev \
|
| 17 |
+
libv4l-dev \
|
| 18 |
+
libssl-dev \
|
| 19 |
+
libffi-dev \
|
| 20 |
+
build-essential \
|
| 21 |
+
cmake \
|
| 22 |
+
git \
|
| 23 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 24 |
|
| 25 |
+
# --- Work directory
|
| 26 |
WORKDIR /app
|
| 27 |
|
| 28 |
+
# --- Copy dependencies first for caching
|
| 29 |
COPY requirements.txt .
|
| 30 |
|
| 31 |
+
# --- Upgrade pip and install requirements
|
| 32 |
RUN pip install --upgrade pip setuptools wheel
|
| 33 |
+
RUN pip install --no-cache-dir --verbose -r requirements.txt
|
| 34 |
|
| 35 |
+
# --- Copy all source files
|
| 36 |
COPY . .
|
| 37 |
|
| 38 |
+
# --- Expose default HF Space port
|
| 39 |
EXPOSE 7860
|
| 40 |
|
| 41 |
+
# --- Start Flask app
|
| 42 |
CMD ["python", "app.py"]
|
database/__init__.py
DELETED
|
File without changes
|
database/__pycache__/__init__.cpython-311.pyc
DELETED
|
Binary file (166 Bytes)
|
|
|
database/__pycache__/connection.cpython-311.pyc
DELETED
|
Binary file (915 Bytes)
|
|
|
database/connection.py
DELETED
|
@@ -1,12 +0,0 @@
|
|
| 1 |
-
import os
|
| 2 |
-
import mysql.connector
|
| 3 |
-
|
| 4 |
-
def get_db_connection():
|
| 5 |
-
connection = mysql.connector.connect(
|
| 6 |
-
host=os.getenv("DB_HOST", "localhost"),
|
| 7 |
-
port=os.getenv("DB_PORT", "3306"),
|
| 8 |
-
user=os.getenv("DB_USER", "root"),
|
| 9 |
-
password=os.getenv("DB_PASSWORD", ""),
|
| 10 |
-
database=os.getenv("DB_NAME", "proctorvision_db")
|
| 11 |
-
)
|
| 12 |
-
return connection
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
database/db_query.txt
DELETED
|
@@ -1,79 +0,0 @@
|
|
| 1 |
-
CREATE DATABASE proctorvision_db;
|
| 2 |
-
|
| 3 |
-
USE proctorvision_db;
|
| 4 |
-
|
| 5 |
-
CREATE TABLE admin (
|
| 6 |
-
id INT AUTO_INCREMENT PRIMARY KEY,
|
| 7 |
-
admin_id VARCHAR(50),
|
| 8 |
-
name VARCHAR(100),
|
| 9 |
-
username VARCHAR(50),
|
| 10 |
-
email VARCHAR(100),
|
| 11 |
-
password VARCHAR(255)
|
| 12 |
-
);
|
| 13 |
-
|
| 14 |
-
CREATE TABLE users (
|
| 15 |
-
id INT AUTO_INCREMENT PRIMARY KEY,
|
| 16 |
-
user_id VARCHAR(50),
|
| 17 |
-
name VARCHAR(100),
|
| 18 |
-
username VARCHAR(50),
|
| 19 |
-
email VARCHAR(100),
|
| 20 |
-
password VARCHAR(255),
|
| 21 |
-
user_type VARCHAR(50)
|
| 22 |
-
);
|
| 23 |
-
|
| 24 |
-
INSERT INTO admin (admin_id, name, username, email, password)
|
| 25 |
-
VALUES
|
| 26 |
-
('ADM001', 'Gwen Nuqui', 'gwenadmin', 'gwen@example.com', '$2b$12$XrXNhJK8Gv5y6gXXQFZxJeHuqA6Z/hOZ.Af2okyWd8BpRU7hZzS3C') -- password123
|
| 27 |
-
|
| 28 |
-
SELECT * FROM admin;
|
| 29 |
-
SELECT * FROM users;
|
| 30 |
-
|
| 31 |
-
USE proctorvision_db;
|
| 32 |
-
|
| 33 |
-
SELECT * FROM admin;
|
| 34 |
-
SELECT * FROM users;
|
| 35 |
-
SELECT * FROM exams;
|
| 36 |
-
SELECT * FROM exam_students;
|
| 37 |
-
SELECT * FROM instructor_assignment;
|
| 38 |
-
|
| 39 |
-
CREATE TABLE suspicious_behavior_logs (
|
| 40 |
-
id INT AUTO_INCREMENT PRIMARY KEY,
|
| 41 |
-
user_id INT NOT NULL,
|
| 42 |
-
exam_id INT NOT NULL,
|
| 43 |
-
image_base64 LONGTEXT,
|
| 44 |
-
warning_type VARCHAR(255),
|
| 45 |
-
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
| 46 |
-
|
| 47 |
-
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
| 48 |
-
FOREIGN KEY (exam_id) REFERENCES exams(id) ON DELETE CASCADE
|
| 49 |
-
);
|
| 50 |
-
|
| 51 |
-
SELECT * FROM suspicious_behavior_logs;
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
ALTER TABLE suspicious_behavior_logs
|
| 55 |
-
ADD COLUMN classification_label VARCHAR(50) DEFAULT NULL;
|
| 56 |
-
|
| 57 |
-
CREATE TABLE exam_submissions (
|
| 58 |
-
id INT AUTO_INCREMENT PRIMARY KEY,
|
| 59 |
-
user_id INT NOT NULL,
|
| 60 |
-
exam_id INT NOT NULL,
|
| 61 |
-
submitted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
| 62 |
-
UNIQUE KEY unique_submission (user_id, exam_id)
|
| 63 |
-
);
|
| 64 |
-
|
| 65 |
-
SELECT * FROM exam_submissions;
|
| 66 |
-
|
| 67 |
-
DELETE FROM suspicious_behavior_logs WHERE id = 1;
|
| 68 |
-
|
| 69 |
-
CREATE TABLE student_profiles (
|
| 70 |
-
user_id VARCHAR(50) PRIMARY KEY,
|
| 71 |
-
course VARCHAR(100),
|
| 72 |
-
section VARCHAR(100),
|
| 73 |
-
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
|
| 74 |
-
);
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
database/manual_insert.py
DELETED
|
@@ -1,58 +0,0 @@
|
|
| 1 |
-
import bcrypt
|
| 2 |
-
import mysql.connector
|
| 3 |
-
|
| 4 |
-
# Database connection
|
| 5 |
-
from connection import get_db_connection
|
| 6 |
-
conn = get_db_connection()
|
| 7 |
-
cursor = conn.cursor()
|
| 8 |
-
|
| 9 |
-
# List of (name, username) tuples
|
| 10 |
-
users = [
|
| 11 |
-
("Melojean C. Marave", "melojean"),
|
| 12 |
-
("Carl Angelo S. Pamploma", "carl"),
|
| 13 |
-
("Geoffrey S. Sepillo", "geoffrey"),
|
| 14 |
-
("Hansel S. Ada", "hansel"),
|
| 15 |
-
("John Lenon E. Agatep", "john"),
|
| 16 |
-
("Israel M. Cabasug", "israel"),
|
| 17 |
-
("Niemea M. Galang", "niemea"),
|
| 18 |
-
("Jason S. Arates", "jason"),
|
| 19 |
-
("Fiel M. Dullas", "fiel"),
|
| 20 |
-
("Darwin M. Morana", "darwin"),
|
| 21 |
-
("Ronnel M. Mesia", "ronnel"),
|
| 22 |
-
("May Ann A. Acera", "may"),
|
| 23 |
-
("Joseph J. Juliano", "joseph"),
|
| 24 |
-
("Daniel A. Bachillar", "daniel"),
|
| 25 |
-
("Darly John Ragadio", "darly"),
|
| 26 |
-
("Eufemia Sion", "eufemia"),
|
| 27 |
-
("Marionne Joyce F. Tapado", "marionne"),
|
| 28 |
-
("Rowela Gongora", "rowela"),
|
| 29 |
-
("Joseph S. Cortez", "joseph2"),
|
| 30 |
-
("King Myer Mantolino", "king"),
|
| 31 |
-
("Jamil Tan Elamparo", "jamil"),
|
| 32 |
-
("Rowena Orboc", "rowena"),
|
| 33 |
-
("Hicel Mae Mas", "hicel"),
|
| 34 |
-
("Karen Quintoriano", "karen"),
|
| 35 |
-
("Ashley Rambuyong", "ashley"),
|
| 36 |
-
("Kie Ann Josafat", "kie"),
|
| 37 |
-
("Jio Erika Pelinio", "jio"),
|
| 38 |
-
("Dane Nalicat", "dane"),
|
| 39 |
-
("Radowena Payumo", "radowena"),
|
| 40 |
-
("Michael G. Albino", "michael"),
|
| 41 |
-
("Apple Escalante", "apple"),
|
| 42 |
-
("Katherine Uy", "katherine"),
|
| 43 |
-
]
|
| 44 |
-
|
| 45 |
-
# Insert each instructor with hashed password
|
| 46 |
-
for name, username in users:
|
| 47 |
-
email = f"{username}@email.com"
|
| 48 |
-
raw_password = f"{username}123"
|
| 49 |
-
hashed_password = bcrypt.hashpw(raw_password.encode('utf-8'), bcrypt.gensalt())
|
| 50 |
-
|
| 51 |
-
cursor.execute("""
|
| 52 |
-
INSERT INTO users (name, username, email, password, user_type)
|
| 53 |
-
VALUES (%s, %s, %s, %s, %s)
|
| 54 |
-
""", (name, username, email, hashed_password, "Instructor"))
|
| 55 |
-
|
| 56 |
-
conn.commit()
|
| 57 |
-
cursor.close()
|
| 58 |
-
conn.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|