This project is a Favorite File Manager tool that allows users to:
- Mark files as favorites
- Update favorite files
- List all favorite files
- Search files by author, title, or tag
- Display file properties
The application provides a graphical user interface (JavaFX) and uses an Oracle relational database (hosted in Docker) to store file metadata.
-
Mohamed Khalil Nafati
-
Ahmed Khatmi
- Language: Java (JavaFX for GUI)
- Database: Oracle XE (Docker image
gvenzl/oracle-xe:21-slim
) - Database Tool: SQL Developer
- Architecture: MVC (Model - View - Controller)
- FICHIERS: stores file metadata (ID, path, title, author, summary, comments, added date)
- TAGS: stores tags (ID, name)
- FICHIER_TAGS: many-to-many relation between files and tags (file_id, tag_id)
- Designed the database inside a Docker container
- Implemented file and tag management methods using JDBC
- Built the user interface with JavaFX
- Implemented CRUD operations (Create, Read, Update, Delete)
- Added search functionality (by author, title, tag)
- Added a feature to display file properties
- ✅ Add favorite files with metadata (author, title, tags, summary, comments)
- ✅ Update & delete favorite files
- ✅ List all favorite files in a table view
- ✅ Search files by author, title, or tag
- ✅ Display properties: total number of files, list of authors, tags, files per tag
The JavaFX interface includes:
- Form: author, title, tags, summary, comments
- Buttons: Add, Update, Delete, Search (by Title, Tag, Author), Show Properties
- Table: displays favorite files with ID, Title, Author, Path
- Properties window: shows statistics (total files, authors, tags, files per tag)
- Eclipse IDE
- Java JDK 11 or higher
- Docker
- SQL Developer (or any Oracle client)
- Git
bash: git clone https://github.com/username/java-file-manager.git cd java-file-manager
docker run -d --name filemanager-db
-p 1521:1521 -e ORACLE_PASSWORD=admin
gvenzl/oracle-xe:21-slim

Connection name: FILEMGR_DOCKER
Database: XEPDB1
Use SQL Developer to test the connection

5️⃣ Run the Java Application
Open the project in your IDE (preferred Eclipse)
Compile and run the main class FileManagerView.java
The GUI will open, ready to manage your favorite files