{"id":15055743,"url":"https://github.com/omar-26/coursecode","last_synced_at":"2026-01-02T01:55:19.182Z","repository":{"id":242356657,"uuid":"800330062","full_name":"Omar-26/CourseCode","owner":"Omar-26","description":"CourseCode is a Online Courses Management User Friendly GUI Desktop app written in java ","archived":false,"fork":false,"pushed_at":"2024-06-03T17:50:39.000Z","size":6098,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T00:39:24.456Z","etag":null,"topics":["desktop-application","gui","java","javafx","javafx-application","javafx-desktop-apps","mvc-architecture","mvc-pattern","oop"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Omar-26.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-14T06:10:43.000Z","updated_at":"2024-06-03T17:50:42.000Z","dependencies_parsed_at":"2024-11-19T21:11:19.734Z","dependency_job_id":"bd322999-7492-41b1-937e-e84a5cd93361","html_url":"https://github.com/Omar-26/CourseCode","commit_stats":null,"previous_names":["omar-26/coursecode"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omar-26%2FCourseCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omar-26%2FCourseCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omar-26%2FCourseCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Omar-26%2FCourseCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Omar-26","download_url":"https://codeload.github.com/Omar-26/CourseCode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243532532,"owners_count":20306152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-application","gui","java","javafx","javafx-application","javafx-desktop-apps","mvc-architecture","mvc-pattern","oop"],"created_at":"2024-09-24T21:45:58.505Z","updated_at":"2026-01-02T01:55:19.121Z","avatar_url":"https://github.com/Omar-26.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Omar-26/CourseCode/blob/main/Assets/courseCode.png?raw=true\"  /\u003e\n  \u003ch3 align=\"center\"\u003eCourseCode\u003c/h3\u003e\n  \u003cp align=\"center\"\u003eOnline Courses Desktop App\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/platform-macOS%20%7C%20Windows-blue.svg\" alt=\"Platforms\"\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n# Overview\n\nThe **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:\n\n### Dashboard\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/Omar-26/CourseCode/blob/main/Assets/dashboard.png?raw=true\" /\u003e\u003c/p\u003e\n\n### My Learning\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/Omar-26/CourseCode/blob/main/Assets/mylearning.png?raw=true\" /\u003e\u003c/p\u003e\n\n### Exclusive for Instructors\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/Omar-26/CourseCode/blob/main/Assets/addcourse.png?raw=true\" /\u003e\u003c/p\u003e\n\n# Key Features\n\n### User Authentication\n\n- **Login System:** Secure login functionality for students, instructors, and administrators.\n- **User Input Validation:** Ensures valid input during login.\n\n### Course Management\n\n- **Effortless Course Creation:** Instructors can easily create, update, and delete courses.\n- **Course Details:** Display relevant information about each course.\n\n### Enrollment\n\n- **Seamless Enrollment:** Students can enroll in courses offered by instructors.\n- **Course Catalog:** Browse available courses.\n\n### Content Creation\n\n- **Engaging Quizzes and Assignments:** Instructors can create interactive quizzes and assignments.\n- **Course Materials:** Upload and organize course materials (lecture slides, handouts, etc.).\n\n### Progress Tracking\n\n- **Student Progress Dashboard:** Monitor student performance and track progress.\n- **Performance Metrics:** View statistics on student participation, grades, and completion rates.\n\n### Role-based Access Control\n\n- **Personalized Experience:** Different access levels for students, instructors, and administrators.\n- **Permissions:** Define who can perform specific actions (e.g., create courses, enroll students).\n\n# System Architecture: MVC Design Pattern\n\nThe **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:\n\n1. **Model:**\n   - Represents the data and business logic of the application.\n   - Manages data storage, retrieval, and manipulation.\n   - In our case, the model handles user authentication, course details, enrollment data, and progress tracking.\n\n2. **View:**\n   - Responsible for presenting data to the user.\n   - Displays the user interface (UI) elements, such as forms, buttons, and course listings.\n   - Interacts with the user and sends user input to the controller.\n   - In our application, views include login screens, course listings, and progress dashboards.\n\n3. **Controller:**\n   - Acts as an intermediary between the model and the view.\n   - Receives user input from the view and processes it.\n   - Updates the model based on user actions (e.g., creating a course, enrolling a student).\n   - Notifies the view to update when the model changes.\n   - In our case, controllers handle user authentication, course creation, and enrollment.\n\nBy 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.\n\n# Demo Video\n\n### **Wanna see courseCode in action ?**\n\nCheck out the demo video [here](https://youtu.be/OnFBNC_9f2w)\n\n# Contributing\n\nWe welcome contributions! If you'd like to improve Course Code, please follow our contribution guidelines.\n\n# License\n\nThis project is licensed under the MIT License.\n\n# Contact\n\nFor any inquiries or support, please contact:\n\n\u003ctable\u003e\n\u003ctr\u003e\n  \u003c!-- Omar Ashraf --\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 170.0; height: 170.0\"\u003e\n        \u003ca href= https://github.com/Omar-26\u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/110625103?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt= Omar Ashraf/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eOmar Ashraf\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n     \u003c!-- Ahmed Ashraf --\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 170.0; height: 170.0\"\u003e\n        \u003ca href= https://github.com/AshrafByte \u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/160413156?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt= Ahmed Sallam/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAhmed Ashraf\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c!-- Abdelrahman Ezz --\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 170.0; height: 170.0\"\u003e\n        \u003ca href= https://github.com/abdoezz1 \u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/133367786?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt= Abdelrahman Ezz/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eAbdelrahman Ezz\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c!-- Rana Ayman --\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 170.0; height: 170.0\"\u003e\n        \u003ca href= https://github.com/RanaAyman54 \u003e\n            \u003cimg src=https://avatars.githubusercontent.com/u/143912782?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt= Abdulrahman Saeed/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eRana Ayman\u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c!-- Farah Amr --\u003e\n    \u003ctd align=\"center\" style=\"word-wrap: break-word; width: 170.0; height: 170.0\"\u003e\n        \u003ca href= https://github.com/FaraH922 \u003e\n            \u003cimg src= https://avatars.githubusercontent.com/u/167699394?v=4 width=\"100;\"  style=\"border-radius:50%;align-items:center;justify-content:center;overflow:hidden;padding-top:10px\" alt= Ahmed Helmy/\u003e\n            \u003cbr /\u003e\n            \u003csub style=\"font-size:14px\"\u003e\u003cb\u003eFarah Amr \u003c/b\u003e\u003c/sub\u003e\n        \u003c/a\u003e\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomar-26%2Fcoursecode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fomar-26%2Fcoursecode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fomar-26%2Fcoursecode/lists"}