Skip to content

adelp13/Project-PAO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-learning platform

Application in the IDE IntelliJ using Java for managing an e-learning platform. The app applies the concepts of OOP.

Classes:

-Main, which creates an object of type ApplicationSite and displays the menu which further calls the needed functions
-ApplicationSite - singletone which stores most complex functions and lists/sets... of all object types
-Course
-AccreditedCourse, extended from Course and mantaing data about accreditation period beside a basic Course
-Quiz, a course having more quizes
-Question, a quiz having more questions
-Subject - we store in the app a map (Subject, Course) because a Course can have multiple subjects
-Card, as a payment method
-User
-two enums, Difficulty(of Course, Quiz...) and Level (of accreditation)
-interface Comparable - I overrode its function compareTo to compare, for example, subjects (by name) or questions (by points they give)
-UtilityClass - for storing different utilitary methods I create, such as getCurrentDate() which transforms the current date in a string using a formator; this method is called in the User constructor to retain sign up date.


The App retains the user which is connected. If no user is connected, the menu only shows two possible actions:

-login (connectUser())
-sign up (signUpUser()).

Otherwise, the user can, for example:


-add a Course as a teacher (addCourse()). At the moment there is a single type of user which acts as both the teacher and the student. The user adding the course will be its teacher
-disconnect (disconnectUser())
-see all subjects sorted by name (showSubjectsSorted())
-see all courses alongside their subjects (showAllCourses())
-buy a course (buyCourse()): the user has to write the name of the course.
-Before buying, the app permits to manage current cards and add another if necessary (manageCardsToBuy()).
-For buying, we use the function User.payWithCard() which needs a Card parameter (the card the user chose)
-see courses the user bought (showCoursesStarted()). For each course the app shows how many quizes the user tried.
-when displaying the courses joined, the user can opt for doing quizes in one of them writing the course name and then the quiz name. The method Quiz.runQuiz() displays the questions and returns the score, which will be added to quiz progress of the user - a map with the key Course and the value another map (Quiz, score).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages