class User(db.Document): username = db.StringField(required=True, max_length=30, unique=True) email = db.EmailField(required=True, unique=True) password = db.StringField(required=True, min_length=6) def hash_password(self): self.password = generate_password_hash(self.password) def check_password(self, password): return check_password_hash(self.password, password) def change_password(self, password): print(password) self.password = generate_password_hash(password) print(self.password) return check_password_hash(self.password, password) def change_username(self, username): print(username) self.username = username print(self.username) def change_email(self, email): print(email) self.email = email print(self.email)
class Upload(db.Document): topicname = db.StringField(required=True) typeofupload = db.StringField(required=True) link = db.StringField(required=True)
class Topic(db.Document): name = db.StringField(required=True, unique=True)
class Score(db.Document): related_topic = db.StringField(required=True) user = ReferenceField(User) score = db.IntField(required=True)
class Quiz(db.Document): topic_id = db.StringField(required=True) text = db.StringField(required=True) status = db.BooleanField(default=True)
class Singlechoice(db.Document): topic_name = db.StringField(required=True) question = db.StringField(required=True) assumptions = db.ListField(required=True) answer = db.StringField(required=True)
class User_quiz(db.Document): user_id = db.StringField(required=True, unique=True) text = db.StringField(required=True) status = db.BooleanField(default=True) related_quiz_id = db.StringField(required=True, unique=True) related_topic_id = db.StringField(required=True, unique=True)