📜  在线教育系统Python项目

📅  最后修改于: 2022-05-13 01:56:57.462000             🧑  作者: Mango

在线教育系统Python项目

在本文中,我们将为所有学生建立一个在线教育系统联合学校,他们可以在线学习并获得与知名组织相关的同等学位。许多学校关闭,许多学校在通过任何平台进行在线教学时面临问题。在这个项目中,将为学校和学生提供一个组织良好的在线学习平台,他们可以轻松地管理在线学习。该平台包括从学生在线考试、教师招聘到学生出勤的所有功能。您可以在 unitedschool.herokuapp.com 的链接上查看演示。

项目中使用的工具和技术:

  • 网络技术: HTML、CSS
  • 数据库: POSTGRES
  • 编辑: VSCODE

构建项目所需的技能:

  • 前端: HTML、CSS、BOOTSTRAP、JAVASCRIPT。
  • 后端: Flask、Postgresql、SqlAlchemy、 Python、AJAX。

分步实施

第 1 步:首先,我们决定了我们想法的整个架构。我们收集了实施该项目所需的所有信息。我们学习了 FLASK 、 SQLAlchemy 等来使项目动态化。

第二步:在确定了整个架构之后,我们开始着手项目的前端工作。首先,我们设计了我们网站的登陆页面。看起来像这样。

下面是导航栏主页的代码片段

HTML



Page Title

    

      
  
    
        
            
                               
             
                

                  UNITED SCHOOL

             
         
    
  
               


Python3
@app.route("/",methods=['GET', 'POST'])
def index():
      
    if request.method=='POST':
        data=request.form["Message"]
        name=request.form["name"]
        em=request.form["email"]
        phno=request.form["phno"]
        send_email(em,name,data,phno)
        flash("MESSAGE sUBMITTED TO THE ADMIN WAIT FOR REPLY ON PHONE!!!")
        return redirect("/")
        
    else:
        subjectExam=db.session.query(Data3).all()
        x=db.session.query(announcement.ann).all()
        caru=db.session.query(carou).order_by(carou.ids).all()
        return render_template("index.html",x=x,a=caru,sub=subjectExam)


Python3
db=SQLAlchemy(app)
  
class Data(db.Model):
    __tablename__="student"
    eno=db.Column(db.String(120),primary_key=True, unique=True)
    passw=db.Column(db.String(120))
    Name=db.Column(db.String(120))
    class=db.Column(db.String(120))
    ContactNo=db.Column(db.String(120))
    Address=db.Column(db.String(120))
    Emailid=db.Column(db.String(120))
    result=db.Column(db.String(120))
    fees=db.Column(db.String(120))
    gives = db.relationship('Data3', secondary='sqrel', lazy='dynamic',
                            backref=db.backref('takenby', lazy='dynamic'))
  
    def __init__(self, eno, passw,Name,class,Contactno,Add,ema,res,fees):
        self.eno=eno
        self.passw=passw
        self.Name=Name
        self.class=class
        self.ContactNo=Contactno  
        self.Address=Add
        self.Emailid=ema
        self.result=res
        self.fees =fees


第 3 步:现在我们将使用 Flask 使其成为 webapp 并连接所有 html 页面。我们使用 POSTGRESQL 作为数据库。

第 4 步:现在我们为每个 HTML 页面编写应用程序路由。如下例所示:

Python3

@app.route("/",methods=['GET', 'POST'])
def index():
      
    if request.method=='POST':
        data=request.form["Message"]
        name=request.form["name"]
        em=request.form["email"]
        phno=request.form["phno"]
        send_email(em,name,data,phno)
        flash("MESSAGE sUBMITTED TO THE ADMIN WAIT FOR REPLY ON PHONE!!!")
        return redirect("/")
        
    else:
        subjectExam=db.session.query(Data3).all()
        x=db.session.query(announcement.ann).all()
        caru=db.session.query(carou).order_by(carou.ids).all()
        return render_template("index.html",x=x,a=caru,sub=subjectExam)

第 5 步:在此之后,我们使用 SQLAlchemy 代码在 POSTGRES 中创建表。下面是创建表 student 的代码片段。

Python3

db=SQLAlchemy(app)
  
class Data(db.Model):
    __tablename__="student"
    eno=db.Column(db.String(120),primary_key=True, unique=True)
    passw=db.Column(db.String(120))
    Name=db.Column(db.String(120))
    class=db.Column(db.String(120))
    ContactNo=db.Column(db.String(120))
    Address=db.Column(db.String(120))
    Emailid=db.Column(db.String(120))
    result=db.Column(db.String(120))
    fees=db.Column(db.String(120))
    gives = db.relationship('Data3', secondary='sqrel', lazy='dynamic',
                            backref=db.backref('takenby', lazy='dynamic'))
  
    def __init__(self, eno, passw,Name,class,Contactno,Add,ema,res,fees):
        self.eno=eno
        self.passw=passw
        self.Name=Name
        self.class=class
        self.ContactNo=Contactno  
        self.Address=Add
        self.Emailid=ema
        self.result=res
        self.fees =fees

第 6 步:在此之后,我们实现了考试、学生登录、教师登录、图书馆等功能。在这里,我们实现了一个作弊检测功能,如果一个人作弊,可以通过该功能被抓住

完整的项目结构如下所示:

输出:

学生视图:学生可以通过管理员提供的邮件登录。他可以使用门户网站提交费用、作业、进行考试、获取结果、下载 PDF 书籍、可以在学生门户网站上发布任何通知。

教师视图:教师可以登录并使用门户网站进行直播课程、评估学生、提供作业、参加考勤。

管理员视图:管理员可以管理学生、教师、新入学申请表、轮播图片、公告等。

第三人称查看:公告栏目、学校信息、学校服务、更多信息咨询管理员,也可申请入学。

演示的输出视频如下所示:

ER图:

现实生活中的项目应用:

它提供了一种有效管理学校教育系统的媒体。它将帮助所有面临在线教学问题的学生和学校,也将帮助从一个地方迁移到另一个地方接受高等教育的人们。在这个项目的帮助下,一个人可以轻松地从他想要的任何地方完成他的学位。此外,该项目将确保在没有任何作弊的情况下参加考试,如果有人作弊,将自动被发现并取消资格。