Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/omar-26/coursecode

CourseCode is a Online Courses Management User Friendly GUI Desktop app written in java
https://github.com/omar-26/coursecode

desktop-application gui java javafx javafx-application javafx-desktop-apps mvc-architecture mvc-pattern oop

Last synced: about 2 months ago
JSON representation

CourseCode is a Online Courses Management User Friendly GUI Desktop app written in java

Awesome Lists containing this project

README

        



CourseCode


Online Courses Desktop App



Platforms

# Overview

The **Course Code** desktop application is designed to streamline course management, enhance student engagement, and provide efficient tools for instructors and administrators. Below are the key features:

### Dashboard

### My Learning

### Exclusive for Instructors

# Key Features

### User Authentication

- **Login System:** Secure login functionality for students, instructors, and administrators.
- **User Input Validation:** Ensures valid input during login.

### Course Management

- **Effortless Course Creation:** Instructors can easily create, update, and delete courses.
- **Course Details:** Display relevant information about each course.

### Enrollment

- **Seamless Enrollment:** Students can enroll in courses offered by instructors.
- **Course Catalog:** Browse available courses.

### Content Creation

- **Engaging Quizzes and Assignments:** Instructors can create interactive quizzes and assignments.
- **Course Materials:** Upload and organize course materials (lecture slides, handouts, etc.).

### Progress Tracking

- **Student Progress Dashboard:** Monitor student performance and track progress.
- **Performance Metrics:** View statistics on student participation, grades, and completion rates.

### Role-based Access Control

- **Personalized Experience:** Different access levels for students, instructors, and administrators.
- **Permissions:** Define who can perform specific actions (e.g., create courses, enroll students).

# System Architecture: MVC Design Pattern

The **Course Code** application follows the **Model-View-Controller (MVC)** design pattern, which provides a clear separation of concerns and promotes modularity. Here's how it fits into our system architecture:

1. **Model:**
- Represents the data and business logic of the application.
- Manages data storage, retrieval, and manipulation.
- In our case, the model handles user authentication, course details, enrollment data, and progress tracking.

2. **View:**
- Responsible for presenting data to the user.
- Displays the user interface (UI) elements, such as forms, buttons, and course listings.
- Interacts with the user and sends user input to the controller.
- In our application, views include login screens, course listings, and progress dashboards.

3. **Controller:**
- Acts as an intermediary between the model and the view.
- Receives user input from the view and processes it.
- Updates the model based on user actions (e.g., creating a course, enrolling a student).
- Notifies the view to update when the model changes.
- In our case, controllers handle user authentication, course creation, and enrollment.

By adhering to the MVC pattern, we achieve better code organization, maintainability, and scalability. Each layer has a specific role, making it easier to enhance or modify individual components without affecting the entire application.

# Demo Video

### **Wanna see courseCode in action ?**

Check out the demo video [here](https://youtu.be/OnFBNC_9f2w)

# Contributing

We welcome contributions! If you'd like to improve Course Code, please follow our contribution guidelines.

# License

This project is licensed under the MIT License.

# Contact

For any inquiries or support, please contact:




Omar


Omar Ashraf





Ahmed


Ahmed Ashraf





Abdelrahman


Abdelrahman Ezz





Abdulrahman


Rana Ayman





Ahmed


Farah Amr