Spaces:
Sleeping
Sleeping
| from app import db | |
| from datetime import datetime | |
| class User(db.Model): | |
| id = db.Column(db.Integer, primary_key=True) | |
| username = db.Column(db.String(64), unique=True, nullable=False) | |
| email = db.Column(db.String(120), unique=True, nullable=False) | |
| created_at = db.Column(db.DateTime, default=datetime.utcnow) | |
| # Relationship with progress | |
| progress_entries = db.relationship('Progress', backref='user', lazy=True) | |
| class Tutorial(db.Model): | |
| id = db.Column(db.Integer, primary_key=True) | |
| title = db.Column(db.String(200), nullable=False) | |
| slug = db.Column(db.String(100), unique=True, nullable=False) | |
| category = db.Column(db.String(50), nullable=False) | |
| difficulty = db.Column(db.String(20), nullable=False) # beginner, intermediate, advanced | |
| order_index = db.Column(db.Integer, nullable=False) | |
| estimated_time = db.Column(db.Integer) # in minutes | |
| description = db.Column(db.Text) | |
| created_at = db.Column(db.DateTime, default=datetime.utcnow) | |
| class Progress(db.Model): | |
| id = db.Column(db.Integer, primary_key=True) | |
| user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) | |
| tutorial_id = db.Column(db.Integer, db.ForeignKey('tutorial.id'), nullable=False) | |
| completed = db.Column(db.Boolean, default=False) | |
| current_step = db.Column(db.Integer, default=0) | |
| completion_date = db.Column(db.DateTime) | |
| created_at = db.Column(db.DateTime, default=datetime.utcnow) | |
| updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
| class Project(db.Model): | |
| id = db.Column(db.Integer, primary_key=True) | |
| title = db.Column(db.String(200), nullable=False) | |
| slug = db.Column(db.String(100), unique=True, nullable=False) | |
| category = db.Column(db.String(50), nullable=False) | |
| difficulty = db.Column(db.String(20), nullable=False) | |
| description = db.Column(db.Text) | |
| estimated_time = db.Column(db.Integer) # in minutes | |
| prerequisites = db.Column(db.Text) # JSON string of tutorial IDs | |
| created_at = db.Column(db.DateTime, default=datetime.utcnow) | |