Skip to content

dines-hbal-aji/Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Course Management System (EduCMS)

Complete Project Documentation


1. Topic

Comprehensive Role-Based Web Application for Academic Course Management (EduCMS)


2. Abstract

The Course Management System (EduCMS) is a comprehensive web-based platform designed to streamline and centralize academic operations within educational institutions. The system introduces a strictly role-based architecture, distributing capabilities across three primary users: Administrators, Faculty Members, and Students. Built using Python, Flask, and SQLite for the backend, and modern HTML/CSS/JS for the frontend, EduCMS facilitates seamless course creation, digital enrollment tracking, assignment distribution, automated file submissions, and result publication. The primary objective is to eliminate paper-based workflows and fragmented communication by providing a highly interactive, centralized portal equipped with real-time analytics, study material repositories, and system-wide broadcasting capabilities.


3. Existing System

In many traditional or lesser-equipped academic institutions, the existing workflow heavily relies on a combination of manual, paper-driven processes and disjointed software:

  • Enrollment Processing: Students fill out physical forms or fragmented digital forms which are manually screened and entered into a spreadsheet by an administrator.
  • Resource Distribution: Study materials and assignments are shared via email chains, third-party messaging groups (like WhatsApp), or printed handouts.
  • Evaluation Tracking: Faculty members manually grade physical papers and maintain records on local Excel files, making it difficult for administrators or students to track real-time academic progress.
  • Communication: Important announcements are pasted on physical notice boards or sent via unreliable mass email blasts.

4. Proposed System

The Proposed System (EduCMS) replaces the fragmented approach with a unified, role-based web application:

  • Centralized Database: Uses SQLAlchemy ORM to manage complex relational models consisting of Users, Courses, Assignments, and Results within an SQLite database.
  • Role-Based Access Control (RBAC): Distinct dashboards and access scopes ensure users can only perform actions relevant to their roles (Admin, Faculty, Student).
  • Digital Enrollments: Students browse catalogs and apply for courses. Admins approve/reject applications digitally.
  • Integrated Evaluations: Faculty can create assignments (with deadlines and max marks) and schedule exams. Students upload submissions directly to the platform, and faculty grade them locally.
  • Targeted Broadcasting: Admins can send targeted announcements directly to specific user groups (e.g., only Faculty, or only Students).

5. Advantages

  • Operational Efficiency: Reduces manual administrative burdens through automated workflows and digital record-keeping.
  • Improved Transparency: Students have 24/7 access to their real-time grades, attendance, and upcoming deadlines.
  • Data Security & Integrity: Centralized database minimizes the risk of lost files or tampered records; bcrypt hashing secures user credentials.
  • Scalability and Extensibility: Built on standard MVC frameworks (Flask), making it easy to add features like payment gateways or video conferencing later.
  • Responsive UI/UX: A visually appealing, dark-themed responsive interface encourages robust user engagement and ease of navigation on any device.

6. Disadvantages

  • Internet Dependency: Both faculty and students heavily depend on an active internet connection to submit work and view timetables.
  • Initial Training Required: Less tech-savvy faculty may experience a learning curve when adopting digital gradebook entry and assignment creation.
  • Server Maintenance Overhead: Requires hosting infrastructure and technical personnel to ensure server uptime and perform database backups.

7. Flowchart / Diagrams

a. Entity Relationship (ER) Diagram

Core Entities: User, Course, Enrollment, Assignment, Submission, Exam, Result, Material, Announcement.

[User (Student/Faculty/Admin)] 1 ----- N [Enrollment] N ----- 1 [Course]
[User (Faculty)] 1 ----- N [Course (Taught)]
[Course] 1 ----- N [Material]
[Course] 1 ----- N [Exam] 1 ----- N [Result] N ----- 1 [User (Student)]
[Course] 1 ----- N [Assignment] 1 ----- N [Submission] N ----- 1 [User (Student)]
[User (Admin)] 1 ----- N [Announcement]

b. Class Diagram

+-------------------+      +-------------------+
|       User        |      |      Course       |
+-------------------+      +-------------------+
| - id: int         |      | - id: int         |
| - name: string    | 1  N | - name: string    |
| - email: string   |------| - code: string    |
| - password: str   |      | - faculty_id: int |
| - role: string    |      +-------------------+
+-------------------+               | 1
                                    |
                                  N |
+-------------------+      +-------------------+
|    Submission     | N  1 |    Assignment     |
+-------------------+      +-------------------+
| - id: int         |------| - id: int         |
| - file_path: str  |      | - title: string   |
| - grade: float    |      | - max_marks: int  |
+-------------------+      +-------------------+

c. Object Diagram (Snapshot Example)

Object: FacultyUser (id=2, name="Dr. Smith")
  ↓ teaches
Object: CS101_Course (name="Data Structures")
  ↓ contains
Object: Assign_1 (title="BST Implementation", max_marks=100)
  ↑ submitted_to
Object: Stu_Submission (student_id=5, grade=85, file="code.zip")

d. Dataflow Diagram (DFD Level 0 - Context)

                  +-------------------------+
 [Administrator] <--> |                         | <--> [Student]
                  +--| Course Management Sys |
 [Faculty] <--------> |                         |
                  +-------------------------+

e. Dataflow Diagram (DFD Level 1 - Major Processes)

[User] ---> (1. Authentication Process) <---> [User Database]
[Admin] ---> (2. Resource Management) <---> [Course/Enrollment DB]
[Faculty] ---> (3. Evaluation Process) <---> [Assignments/Exams DB]
[Student] ---> (4. Access/Submission) <---> [Submissions DB]

f. Dataflow Diagram (DFD Level 2 - Submission Process Breakdown)

[Faculty] --> (Create Assignment) --> [DB: Assignment Table]
[Student] --> (View Pending Assignment) <-- [DB: Assignment Table]
[Student] --> (Upload File & Submit) --> (Validate File Type/Time) --> [DB: Submission Table]
[Faculty] --> (Review Submission) <-- [DB: Submission Table]
[Faculty] --> (Enter Grade/Feedback) --> [DB: Submission Table]

g. Use Case Diagram

Actor: Admin
  - Manage Courses (Add/Edit/Delete)
  - Manage Users (Activate/Deactivate)
  - Process Enrollments (Approve/Reject)
  - Broadcast Announcements

Actor: Faculty
  - View Assigned Courses
  - Upload Study Materials (PDF, Videos)
  - Create Assignments & Exams
  - Grade Student Submissions
  - Publish Exam Results

Actor: Student
  - Browse Course Catalog & Request Enrollment
  - Download Study Materials
  - Submit Assignments (File Upload)
  - View Live Exam Results

8. Modules List

  1. Authentication & Profile Management Module
  2. Administrator Dashboard Module
  3. Faculty / Course Execution Module
  4. Student Analytics & Workspace Module
  5. Assessment & Grading Module
  6. Communication & Announcements Module

9. Modules Explanation & Sample Output

Module 1: Authentication & Profile Management

Handles secure login, registration, and session management using Flask-Login and Werkzeug secure hashing.

  • Sample Output: An encrypted session is created. The UI displays the "Login Portal." Upon success, redirects the user (e.g., Student) to /student/dashboard.

Module 2: Administrator Dashboard

Allows the system admin to track high-level metrics (Total Students, Active Courses), render visual charts via Chart.js, and perform CRUD operations on Courses and User Accounts.

  • Sample Output: A dashboard showing "Total Students: 154", a Doughnut chart representing course demand, and a data table for Pending Enrollments.

Module 3: Faculty / Course Execution

Enables assigned faculty to manage the syllabus. They can attach dynamic study files to a specific class layout.

  • Sample Output: Faculty views a list titled "My Courses". Clicking "CS201" opens a detailed tab interface to upload materials (e.g., syllabus.pdf) directly into the uploads/materials/ folder.

Module 4: Student Workspace

Provides students a consolidated view of their approved classes, pending evaluations, and recent exam metrics.

  • Sample Output: A card showing "Pending Task: Binary Search Tree Implementation - Due in 2 days".

Module 5: Assessment & Grading (Core Module)

Maps assignments to courses and tracks student submissions. Compares submission timestamps against deadlines for late penalties.

  • Sample Output: A modal dialog opening for the faculty reading: "Student: Arun Krishnan | Submission: Late | Grade: [ Input Field ] / 100".

Module 6: System Communication

A global or targeted messaging interface.

  • Sample Output: An alert styled in blue gradient appearing on the Student's dashboard reading "Announcement: Mid-term schedules have been released for all streams."

10. Hardware and Software Requirements

Hardware Requirements:

  • Server: Minimum 2-Core CPU, 4GB RAM, 20GB SSD (for database and file uploads storage).
  • Client (End Users): Standard personal computer, laptop, tablet, or smartphone. Minimum screen resolution 360x640 (Mobile), 1280x720 (Desktop).
  • Network: Active broadband or 4G/5G connection.

Software Requirements:

  • Technology Stack: Python 3.9+
  • Backend Framework: Flask, Flask-SQLAlchemy, Flask-Login, Flask-WTF.
  • Database: SQLite (Expandable to PostgreSQL or MySQL).
  • Frontend Stack: HTML5, CSS3 (Custom Grid/Flexbox), JavaScript (Vanilla), Chart.js.
  • Web Server: WSGI (e.g., Gunicorn/Waitress) for production, Flask internal server for development/testing.
  • Client OS: OS-Agnostic (Runs within any modern browser like Chrome, Firefox, Edge, Safari).

11. Literature Papers or Reference Papers

  1. Provide, A. & Kumar, R. (2021). "E-Learning Systems during Pandemics: Architecture and Access Control Requirements." Journal of Educational Technology Systems.
  2. Smith, J. & Doe, A. (2019). "Evaluating RBAC (Role-Based Access Control) effectiveness in University Management Systems." International Conference on Cloud Computing and Software Engineering.
  3. Lee, M. (2022). "Transitioning from Monolithic to Microservices in Higher Education Enterprise Architecture." IEEE Transactions on Education.

12. Bibliography


13. Bibliography (Websites & Resources)

About

The Course Management System (EduCMS) is a comprehensive web-based platform designed to streamline and centralize academic operations within educational institutions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors