Welcome to the Film Library App! This is a JavaFX-based application developed using SceneBuilder for UI design, with a MySQL database for managing user data and film information.
- Users can log in to their accounts.
- Profile settings allow users to change their email, username, and password.
- Users can delete their accounts if desired.
- A side menu with the following sections:
- Home - View all available films.
- Liked Films - Access a list of favorite films.
- Genres - Browse films by genre.
- Actors - View actors featured in the database.
- Directors - Explore films by directors.
- Users can like films, which adds them to the Liked Films section.
- For each film, view:
- Summary
- Actors
- Director
- Year
- Language
- Awards
- Screenwriters
- A Search Bar at the top allows users to search for films by name.
- All data, including films, user profiles, and favorites, is retrieved from a MySQL database.
- Java - Core language for the application.
- JavaFX - Used for the UI components.
- SceneBuilder - For designing user interfaces with FXML.
- MySQL - Relational database for storing user data and film information.
- Maven - Project build tool for managing dependencies.
-
Clone the repository to your local machine:
git clone https://github.com/FariddBayramov/film-library-app.git
-
Set up the MySQL Database:
- Import the provided database script into your MySQL server.
- Update database credentials in the project configuration.
-
Open the project in your preferred IDE (e.g., IntelliJ IDEA, Eclipse).
-
Ensure you have JavaFX SDK, MySQL Connector, and Maven properly set up.
-
Run the project:
- Locate the
Main.javafile. - Run it as a Java Application.
- Locate the
- Add a recommendation system based on user preferences.
- Include movie trailers for each film.
- Enable multi-language support.
- Improve search functionality with filters (e.g., by year, genre).
MovieLibrary/
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/example/movielibrary/
│ │ │ │ ├── CreateAnAccountController.java # Controller for account creation
│ │ │ │ ├── HomePageController.java # Controller for the home page
│ │ │ │ ├── LoginController.java # Controller for login page
│ │ │ │ ├── Main.java # Application entry point
│ │ │ │ ├── ProfileController.java # Controller for profile page
│ │ │ │ ├── Tables/ # Database entity classes
│ │ │ │ │ ├── Actor.java
│ │ │ │ │ ├── Director.java
│ │ │ │ │ ├── Film.java
│ │ │ │ │ ├── Genre.java
│ │ │ │ │ ├── User.java
│ │ │ │
│ │ ├── resources/
│ │ │ ├── com/example/movielibrary/
│ │ │ │ ├── create-an-account.fxml # FXML for account creation
│ │ │ │ ├── film-app.fxml # Main app UI
│ │ │ │ ├── log-in.fxml # FXML for login page
│ │ │ │ ├── profile.fxml # FXML for profile page
│ │ │ ├── img/ # Images and icons
│ │ │ │ ├── actor.png
│ │ │ │ ├── director.png
│ │ │ │ ├── home.png
│ │ │ │ ├── movies.png
│ │ │ │ ├── search.png
│ │ │ │ ├── settings.png
│ │ │ │ └── films/ # Film cover images
│
├── pom.xml # Maven configuration file
├── mvnw # Maven wrapper
├── README.md # Project documentation
└── .idea/ # IDE configuration files
Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.
- Farid Bayramov
- GitHub: FariddBayramov
Thank you for checking out the Film Library App! 🎬🍿 Feel free to reach out if you have any suggestions or issues.




