ByteWise is an innovative online course management system developed as a project for CSE231s, Junior Year at FOE - Ain Shams University (ASU). This Java-based system is designed to enhance learning through gamification elements, intelligent course sorting, and a personalized course recommendation feature. It adheres to object-oriented programming principles and showcases capabilities such as user management, course handling, and comprehensive assessments.
- 👤 User Profiles: Supports multiple user roles including Students, Instructors, and Admins.
- ⚙ Course Management: Offers diverse types of courses (VideoCourse, QuizCourse, InteractiveCourse) with full CRUD operations.
- 🕹 Gamification: Incorporates points, badges, achievements, and leaderboards to motivate learners.
- 📁 Advanced Sorting: Utilizes a custom
Sortable
interface to sort courses based on various criteria. - 📝 Assessments: Implements quizzes and assessments in courses through the
Assessable
interface. - ❓ Course Recommendations: Features a "Find Me a Course" button that recommends courses based on user-selected tags.
⚠️ Exception Handling: Provides robust handling of both common and uncommon errors to ensure a smooth user experience.- 💻 Interactive UI: Offers a choice between Command Line Interface (CLI) and Graphical User Interface (GUI) for user interactions.
src/main
: Contains the main source code of the project.
-> includes both the CLI and GUI packages.src/test
: Contains the unit tests conducted for the project.assets/
: Contains the project's assets, including images and diagrams.docs/
: Contains the project's documentation.
- Java: Core programming language.
- JUnit: Used for unit testing to ensure code quality.
- JavaFX: GUI development.
- Figma: Used for designing the project's wireframes.
- Git: Version control system.
Special thanks to our course instructors, Dr. Nesma and Eng. Nourhan for their guidance and support.
and finally, Thanks to the team behind the magic: