Skip to content

OzzYGreco/E-Class-Learning-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Class - Learning Management System

Overview

E-Class is a web-based Learning Management System built with Flask and SQLite. It supports two user roles: students and instructors. Students can view announcements, download course materials, submit assignments, take quizzes, and check their grades. Instructors get a control panel to manage all of that from one place: posting announcements, uploading materials, creating assignments with deadlines, building quizzes, and reviewing student submissions and scores. Both roles share access to a discussion forum. Built as a university project for the Pedagogy course at the University of Piraeus.

Technologies

  • Backend: Python (Flask)
  • Database: SQLite
  • Frontend: HTML, Jinja2 Templates, CSS
  • Build Tool: Python / pip

Features

  • Role-based login for students and instructors.
  • Student dashboard with announcements, course materials, assignments, quizzes, and grades.
  • Instructor control panel with tabs for announcements, materials, assignments, quizzes, and grade overview.
  • File upload support for course materials and assignment submissions (PDF, ZIP).
  • Assignment deadline enforcement on both frontend and backend.
  • Multiple choice quiz creation with automatic grading.
  • Grade tracking: students see their own scores, instructors see all.
  • Discussion forum accessible to all users.

Screenshots

Note: The project content is written in Greek. The text shown in the screenshots may have been auto-translated by the browser, so some labels or messages might not read perfectly in English. The layout and functionality come through regardless.


Login

Student Dashboard

Discussion Forum

Instructor Panel - Announcements

Instructor Panel - Materials

Instructor Panel - Assignments

Instructor Panel - Quiz Creation

Instructor Panel - Grades

Installation

  1. Clone the repository:
    git clone https://github.com/OzzYGreco/E-Class-Learning-Management-System.git
    
  2. Navigate to the project directory:
    cd E-Class-Learning-Management-System
    
  3. Install Flask:
    pip install flask
    
  4. Run the application:
    python app.py
    
  5. Open your browser at: http://127.0.0.1:5000

Usage

The database initializes automatically on first run with demo accounts.

  • Demo Credentials:
    • Instructor: pantelis / 1234
    • Student: aristos / 1234
    • Student: kwstas / 1234
    • Student: vasilis / 1234
  • Example Code (Role-Based Routing):
    @app.route('/instructor', methods=['GET', 'POST'])
    def instructor_dashboard():
        if session.get('role') != 'instructor':
            return redirect(url_for('index'))
  • Example Code (Deadline Enforcement):
    today = str(datetime.date.today())
    if assign['deadline'] and today > assign['deadline']:
        flash("Deadline has passed!")
        return redirect(url_for('student_dashboard'))

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Commit your changes (git commit -m 'Add new feature').
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request.

License

MIT License

About

A web-based Learning Management System built with Python Flask and SQLite, supporting student and instructor roles with assignments, quizzes, file uploads, grading, and a discussion forum.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors