diff --git a/GUI/Dockerfile b/Dockerfile
similarity index 81%
rename from GUI/Dockerfile
rename to Dockerfile
index 012e1b2..39f5137 100644
--- a/GUI/Dockerfile
+++ b/Dockerfile
@@ -10,4 +10,4 @@ COPY / templates/GUI
COPY . .
-ENTRYPOINT ["python", "app.py"]
\ No newline at end of file
+ENTRYPOINT ["python", "app.py"]
diff --git a/GUI/databaseConnection.py b/GUI/databaseConnection.py
deleted file mode 100644
index dfcf644..0000000
--- a/GUI/databaseConnection.py
+++ /dev/null
@@ -1,17 +0,0 @@
-import pyodbc
-
-# first install pyodbc using pip install pyodbc
-# get the server name SQL Server
-# create a new database in SQL Server
-# then execute sql commands in the "SQL code.sql" file
-# replace the server with your server name
-# replace the database with your database name
-connectionString = (
- r'DRIVER={SQL Server};'
- r'SERVER=DESKTOP-0TH5VGS\SQLEXPRESS;'
- r'DATABASE=Coursiz;'
- r'Trusted_Connection=yes;'
-)
-connection = pyodbc.connect(connectionString)
-query = connection.cursor()
-
diff --git a/GUI/index.html b/GUI/index.html
deleted file mode 100644
index 42ba207..0000000
--- a/GUI/index.html
+++ /dev/null
@@ -1,337 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- mo7y
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% if error_message %}
-
{{ error_message }}
-{% elif success_message %}
-
{{ success_message }}
-{% endif %}
-
-
-
-
-
-
-
diff --git a/GUI/app.py b/app.py
similarity index 93%
rename from GUI/app.py
rename to app.py
index 55ddece..a15ee59 100644
--- a/GUI/app.py
+++ b/app.py
@@ -2,7 +2,7 @@
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField,SelectField
from wtforms.validators import DataRequired
-
+import pyodbc
import sys
import os
sys.path.insert(0, os.path.abspath('classes'))
@@ -11,13 +11,15 @@
from Students import students
from Teacher import teacher
from Upload import upload
-
+from submissions import submissions
app = Flask(__name__)
app.secret_key = 'super_secret_key'
+
+
class SignInForm(FlaskForm):
Email = StringField('Email', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
@@ -62,10 +64,21 @@ def create_announcement():
Upload_title = request_data['Title']
Upload_Description = request_data['Description']
Upload_link = request_data['Link']
+
+
+
+
# Create a new announcement.
Upload = upload()
Upload.insert_upload(Upload_title,Upload_type,Upload_Description, Upload_link,Course_code)
+ if Upload_type=="Assignment":
+ A_deadline = request_data['deadline']
+ A_grade= request_data['assigngrade']
+ while A_grade == "None":
+ flash('Please enter grade', 'error')
+ submission=submissions()
+ submission.createSubmission(Upload.id,Course_code,A_grade,A_deadline)
return redirect(url_for('courses'))
@app.route('/Signin', methods=['GET', 'POST'])
@@ -186,4 +199,4 @@ def contact():
return render_template('contact.html')
if __name__ == '__main__':
- app.run(host="0.0.0.0",port=80,debug=True)
+ app.run(host="0.0.0.0",port=80,debug=True)
diff --git a/classes/Students.py b/classes/Students.py
index 392f1c3..39903b0 100644
--- a/classes/Students.py
+++ b/classes/Students.py
@@ -1,18 +1,17 @@
from users import users
-import pyodbc
-connection=pyodbc.connect('Driver={SQL Server};SERVER=KAREEM;DATABASE=Coursiz;Trusted_Connection=yes')
-query = connection.cursor()
+from databaseConnection import db
+db=db()
class students(users):
def __init__(self,id):
self.id=id
def addStudentToCourse(self,Course_Code):
- query.execute("SELECT Course_Code FROM Courses WHERE Course_Code = ?", (Course_Code))
- fetched=query.fetchone()
+ db.cursor.execute("SELECT Course_Code FROM Courses WHERE Course_Code = ?", (Course_Code))
+ fetched=db.cursor.fetchone()
if fetched is None:
return False
else:
- query.execute("select Capacity,Number_enrolled from Courses where Course_Code = ?", (Course_Code))
- fetched=query.fetchone()
+ db.cursor.execute("select Capacity,Number_enrolled from Courses where Course_Code = ?", (Course_Code))
+ fetched=db.cursor.fetchone()
if fetched[0] is None:
self.Number_enrolled=0
else: self.Number_enrolled=fetched[0]
@@ -20,22 +19,22 @@ def addStudentToCourse(self,Course_Code):
# if self.Number_enrolled >= self.Capacity:
# return False
# else:
- query.execute("update Courses set Number_enrolled = ? where Course_Code = ?", (self.Number_enrolled + 1 , Course_Code))
- query.commit()
- query.execute("insert into Enroll_in(Student_ID,Course_Code) values(?,?)", (self.id, Course_Code))
- query.commit()
+ db.cursor.execute("update Courses set Number_enrolled = ? where Course_Code = ?", (self.Number_enrolled + 1 , Course_Code))
+ db.cursor.commit()
+ db.cursor.execute("insert into Enroll_in(Student_ID,Course_Code) values(?,?)", (self.id, Course_Code))
+ db.cursor.commit()
return True
def removeStudentFromCourse(self,Course_Code):
- query.execute('''update Courses set Number_enrolled = ? where Course_Code = ?''', (self.Number_enrolled - 1 , Course_Code))
- query.commit()
- query.execute('''delete from Enroll_in where Student_ID = ? and Course_Code = ?''', (self.id, Course_Code))
- query.commit()
+ db.cursor.execute('''update Courses set Number_enrolled = ? where Course_Code = ?''', (self.Number_enrolled - 1 , Course_Code))
+ db.cursor.commit()
+ db.cursor.execute('''delete from Enroll_in where Student_ID = ? and Course_Code = ?''', (self.id, Course_Code))
+ db.cursor.commit()
def get_courses(self):
- query.execute("select Course_Code from Enroll_in where Student_ID = ?", (self.id))
+ db.cursor.execute("select Course_Code from Enroll_in where Student_ID = ?", (self.id))
fetched=[]
- for i in query.fetchall():
+ for i in db.cursor.fetchall():
i=i[0]
fetched.append(i)
- return fetched
\ No newline at end of file
+ return fetched
diff --git a/classes/course.py b/classes/course.py
index 2aaee1f..4f056dd 100644
--- a/classes/course.py
+++ b/classes/course.py
@@ -1,7 +1,6 @@
import pyodbc
-connection=pyodbc.connect('Driver={SQL Server};SERVER=KAREEM;DATABASE=Coursiz;Trusted_Connection=yes')
-query = connection.cursor()
-
+from databaseConnection import db
+db=db()
class Course_class:
def __init__(self, courseName, yearTeached, Semester, Capacity,teacher_name):
self.courseName = courseName
@@ -16,22 +15,22 @@ def createCourse(self):
return False
else:
first_name,second_name=self.teacher_name.split()[0],self.teacher_name.split()[1]
- query.execute("SELECT Email FROM Users WHERE First_Name = ? and Last_Name = ?", (first_name, second_name))
- teacher_email = query.fetchone()[0]
+ db.cursor.execute("SELECT Email FROM Users WHERE First_Name = ? and Last_Name = ?", (first_name, second_name))
+ teacher_email = db.cursor.fetchone()[0]
if teacher_email == None:
return False
else:
- query.execute("SELECT TeacherID FROM Teachers WHERE Email = ?", (teacher_email))
- teacher_id = query.fetchone()[0]
- query.execute("SELECT COUNT(*) FROM Courses")
- query.execute("SELECT COUNT(*) FROM Courses")
- number_of_rows = query.fetchone()[0]
+ db.cursor.execute("SELECT TeacherID FROM Teachers WHERE Email = ?", (teacher_email))
+ teacher_id = db.cursor.fetchone()[0]
+ db.cursor.execute("SELECT COUNT(*) FROM Courses")
+ db.cursor.execute("SELECT COUNT(*) FROM Courses")
+ number_of_rows = db.cursor.fetchone()[0]
Course_code='Cs'+str(number_of_rows+1)
- query.execute("insert into Courses(Name, Year, Semester, Course_Code, Capacity, Number_enrolled,TeacherID) values (?, ?, ?, ?, ?, ?,?)", (self.courseName, self.yearTeached, self.Semester, Course_code, self.Capacity,self.Number_enrolled,teacher_id))
- query.commit()
+ db.cursor.execute("insert into Courses(Name, Year, Semester, Course_Code, Capacity, Number_enrolled,TeacherID) values (?, ?, ?, ?, ?, ?,?)", (self.courseName, self.yearTeached, self.Semester, Course_code, self.Capacity,self.Number_enrolled,teacher_id))
+ db.cursor.commit()
return True
def deleteCourse(self,Course_Code):
- query.execute('''delete from Courses where Course_Code = ?''', (Course_Code))
- query.commit()
+ db.cursor.execute('''delete from Courses where Course_Code = ?''', (Course_Code))
+ db.cursor.commit()
diff --git a/classes/databaseConnection.py b/classes/databaseConnection.py
index bd9c9d9..19349d4 100644
--- a/classes/databaseConnection.py
+++ b/classes/databaseConnection.py
@@ -1,16 +1,12 @@
import pyodbc
-
# first install pyodbc using pip install pyodbc
# get the server name SQL Server
# create a new database in SQL Server
# then execute sql commands in the "SQL code.sql" file
# replace the server with your server name
# replace the database with your database name
-connectionString = (
- r'DRIVER={SQL Server};'
- r'SERVER= server;'
- r'DATABASE= databaseName;'
- r'Trusted_Connection=yes;'
-)
-connection = pyodbc.connect(connectionString)
-cursor = connection.cursor()
+class db:
+ def __init__(self):
+ self.connectionString = ('Driver={SQL Server};SERVER=DESKTOP-9IHIA03;DATABASE=Coursiz;Trusted_Connection=yes')
+ self.connection = pyodbc.connect(self.connectionString)
+ self.cursor = self.connection.cursor()
diff --git a/classes/submissions.py b/classes/submissions.py
index deba1a5..3f6bfa8 100644
--- a/classes/submissions.py
+++ b/classes/submissions.py
@@ -1,61 +1,65 @@
-import databaseConnection
+from databaseConnection import db
+db=db()
+# Submission_ID, Submission_type, studentID, Document_link
class submissions:
- def __init__(self, Submission_ID, Submission_type, studentID, Document_link):
- self.Submission_ID = Submission_ID
- self.Submission_type = Submission_type
- self.Deadline_Date = Deadline_Date
- self.Document_link = Document_link
- self.studentID = studentID
+ def createSubmission(self,upload_id,course_code,out_of,Deadline):
+ query = db.cursor
+ query.execute("insert into Sumbissions(Submission_ID,Deadline_Date) values(?,?)",(upload_id,Deadline))
+ db.connection.commit()
+ query.execute("select distinct Student_ID from Enroll_in where Course_Code=?",(course_code))
+ student_ids = query.fetchall()
+ for student_id in student_ids:
+ query.execute("insert into Submits(SubID,student_id,out_of) values(?,?,?)",(upload_id,student_id[0],out_of))
+ db.connection.commit()
+ # def createSubmission(self, Document_link, Submission_type, course):
+ # query = db.cursor()
+ # if self.Document_link is None:
+ # return False
+ # elif self.Document_link.startswith("https://docs.google.com/") and document_link.endswith("/sharing"):
+ # query.execute("SELECT COUNT(*) FROM Submissions")
+ # number_of_rows = query.fetchone()[0]
+ # Submission_ID = number_of_rows + 1
+ # Submission_type = "Document"
+ # query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
+ # db.connection.commit()
+ # return True
+ # elif self.Document_link.startswith("https://github.com/"):
+ # query.execute("SELECT COUNT(*) FROM Submissions")
+ # number_of_rows = query.fetchone()[0]
+ # Submission_ID = number_of_rows + 1
+ # Submission_type = "Project"
+ # query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
+ # databaseConnection.connection.commit()
+ # return True
+ # else:
+ # query.execute("SELECT COUNT(*) FROM Submissions")
+ # number_of_rows = query.fetchone()[0]
+ # Submission_ID = number_of_rows + 1
+ # query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
+ # databaseConnection.connection.commit()
+ # return True
- def createSubmission(self, Document_link, Submission_type, course):
- query = databaseConnection.connection.cursor()
- if document_link is None:
- return False
- elif document_link.startswith("https://docs.google.com/") and document_link.endswith("/sharing"):
- query.execute("SELECT COUNT(*) FROM Submissions")
- number_of_rows = query.fetchone()[0]
- Submission_ID = number_of_rows + 1
- Submission_type = "Document"
- query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
- databaseConnection.connection.commit()
- return True
- elif document_link.startswith("https://github.com/"):
- query.execute("SELECT COUNT(*) FROM Submissions")
- number_of_rows = query.fetchone()[0]
- Submission_ID = number_of_rows + 1
- Submission_type = "Project"
- query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
- databaseConnection.connection.commit()
- return True
- else:
- query.execute("SELECT COUNT(*) FROM Submissions")
- number_of_rows = query.fetchone()[0]
- Submission_ID = number_of_rows + 1
- query.execute("INSERT INTO Submissions(Submission_ID, Submission_type, studentID, Document_link, Course_Code) VALUES(?, ?, ?, ?, ?)", (Submission_ID, Submission_type, studentID, Document_link, courseCode))
- databaseConnection.connection.commit()
- return True
-
- def deleteSubmission(self, Submission_ID):
- query = databaseConnection.connection.cursor()
- query.execute("DELETE FROM Submissions WHERE Submission_ID = ?", (Submission_ID))
- databaseConnection.connection.commit()
- return True
+ # def deleteSubmission(self, Submission_ID):
+ # query = databaseConnection.connection.cursor()
+ # query.execute("DELETE FROM Submissions WHERE Submission_ID = ?", (Submission_ID))
+ # databaseConnection.connection.commit()
+ # return True
- def updateSubmission(self, Submission_ID, Submission_type, Document_link):
- query = databaseConnection.connection.cursor()
- query.execute("UPDATE Submissions SET Submission_type = ?, Document_link = ? WHERE Submission_ID = ?", (Submission_type, Document_link, Submission_ID))
- databaseConnection.connection.commit()
- return True
+ # def updateSubmission(self, Submission_ID, Submission_type, Document_link):
+ # query = databaseConnection.connection.cursor()
+ # query.execute("UPDATE Submissions SET Submission_type = ?, Document_link = ? WHERE Submission_ID = ?", (Submission_type, Document_link, Submission_ID))
+ # databaseConnection.connection.commit()
+ # return True
- def viewSubmission(self, Submission_ID):
- query = databaseConnection.connection.cursor()
- query.execute("SELECT * FROM Submissions WHERE Submission_ID = ?", (Submission_ID))
- return query.fetchone()
+ # def viewSubmission(self, Submission_ID):
+ # query = databaseConnection.connection.cursor()
+ # query.execute("SELECT * FROM Submissions WHERE Submission_ID = ?", (Submission_ID))
+ # return query.fetchone()
- def viewAllSubmissionsForTeaceher(self):
- query = databaseConnection.connection.cursor()
- query.execute("SELECT * FROM Submissions")
- return query.fetchall()
\ No newline at end of file
+ # def viewAllSubmissionsForTeaceher(self):
+ # query = databaseConnection.connection.cursor()
+ # query.execute("SELECT * FROM Submissions")
+ # return query.fetchall()
diff --git a/classes/users.py b/classes/users.py
index 9aaaef6..212f825 100644
--- a/classes/users.py
+++ b/classes/users.py
@@ -1,5 +1,5 @@
import pyodbc
-connection=pyodbc.connect('Driver={SQL Server};SERVER=KAREEM;DATABASE=Coursiz;Trusted_Connection=yes')
+connection=pyodbc.connect('Driver={SQL Server};SERVER=DESKTOP-9IHIA03;DATABASE=Coursiz;Trusted_Connection=yes')
cursor = connection.cursor()
from datetime import datetime
@@ -125,4 +125,4 @@ def sign_in_get_data(self):
# def signUp(self, username, email, password):
# pass
-
\ No newline at end of file
+