This project is a Java-based clone of the IMDB platform, providing functionalities for users to view, add, and manage productions, actors, and user accounts. The application includes both GUI and terminal interfaces.
- User Authentication: Login and manage user accounts using
Login.java
,LoginGUI.java
, andCredentials.java
. - User Management: Admins can add or delete users using
ManageUsers.java
andAdmin.java
. - Productions Management: View, add, update, or delete productions and actors with
ManageProductionsOrActors.java
andProduction.java
. - Requests System: Users can create requests for new productions or features using
Requests.java
andRequest.java
. - Notifications: Send and receive notifications with
Notification.java
andIMDB.java
implementing theSubject
interface. - Favorites Management: Users can manage their favorite productions using
ManageFavorites.java
. - Reviews Management: Users can add or view reviews for productions.
org.example
- Main Classes
IMDB.java
: Singleton class acting as the main database.User.java
: Basic user class.Admin.java
: ExtendsStaff
and implements admin functionalities.Credentials.java
: Handles user credentials.Notification.java
: Represents notifications sent to users.Request.java
: Represents user requests.Genre.java
: Enum for production genres.Episode.java
: Represents an episode of a series.
- Interface and Abstract Classes
StaffInterface.java
: Interface for staff-related methods.Subject.java
: Interface for the observer pattern implementation.
- Utilities
JsonParser.java
: Handles JSON parsing for data storage.RequestsHolder.java
: Holds all user requests.
- GUI Components (org.example.gui)
LoginGUI.java
: Graphical login interface.MenuGUI.java
: Main menu GUI for user interaction.CreateNewRequestPanelGUI.java
: GUI panel for creating new requests.ManageReviewsPanelGUI.java
: GUI for managing reviews.
- Terminal Components (org.example.terminal)
Login.java
: Terminal-based login interface.MainPage.java
: Terminal-based main page after login.Menu.java
: Terminal menu for user actions.ManageUsers.java
: Terminal interface for user management.ManageProductionsOrActors.java
: Terminal interface to manage productions or actors.ViewProductions.java
: Terminal interface to view productions.ManageFavorites.java
: Terminal interface for managing favorites.Requests.java
: Terminal interface for handling user requests.UpdateProductionsOrActors.java
: Terminal interface for updating productions or actors.ViewNotifications.java
: Terminal interface to view notifications.
- Main Classes
- Prerequisites: Ensure Java is installed on your machine.
- Clone the Repository:
git clone [repository_url]
. - Build the Project: Use a build tool like Maven or Gradle if provided.
- Run the Application: Execute the main class
IMDB.java
.
- Login: Users can log in using their email and password.
- Admin Actions:
- Add or remove users.
- Approve or deny user requests.
- User Actions:
- View and search productions.
- Manage favorites list.
- Create new requests.
- View notifications.
Data is stored and managed using JSON files, with JsonParser.java
handling reading and writing operations.
This project is licensed under the MIT License.