Skip to content

ReelRec v1.0.1 Release

Latest

Choose a tag to compare

@ashmod ashmod released this 07 May 22:51
· 4 commits to main since this release

We are pleased to announce ReelRec v1.0.1, a quality and testing focused update to the ReelRec movie recommendation system. This release builds upon the foundation of v1.0 by introducing a comprehensive testing framework, improved code structure for testability, and detailed code coverage analysis, significantly enhancing the reliability and maintainability of the application.

What's New/Changed in v1.0.1

  • Enhanced Testing Framework:
    • Implemented comprehensive Unit Testing (JUnit 5) for core components (Validator, RecommendationSystem, Movie, User).
    • Added explicit Integration Testing (IntegrationTest.java) demonstrating Top-Down techniques using Stubs to test the core ReelRecProcessor logic.
    • Implemented System-Level Integration Testing (AppEndToEndTest.java) verifying the end-to-end application flow with all real components under various scenarios (valid inputs, file errors, data errors).
    • Formalized Black-Box Testing scenarios within AppEndToEndTest.java covering equivalence partitioning, boundary values, and error conditions.
    • Verified Data Flow implicitly through integration and end-to-end tests, ensuring data propagates correctly between components.
  • Code Coverage Integration:
    • Integrated the JaCoCo Maven plugin to provide detailed code coverage reports (HTML format).
    • Achieved high coverage (~96% Instruction / ~86% Branch) for the core logic classes after excluding UI/Launcher code, increasing confidence in code quality. (Refer to the latest generated report for exact figures).
  • Improved Testability & Structure:
    • Refactored the main application workflow into a dedicated ReelRecProcessor class, separating core logic from the ReelRecApp entry point. This enhances testability, particularly enabling testing with stubs.
  • Updated Documentation:
    • Added detailed testing strategy documents: docs/integration-tests.md and docs/test-cases.md.
    • Updated README.md to include instructions for running tests and viewing coverage reports.
  • Build Process Improvements:
    • Updated Maven pom.xml to reliably execute tests and generate coverage reports, including configurations for class exclusions.

Core Features (Retained from v1.0)

  • Dual Interface Support: GUI Application (window-based) and CLI Application (command-line).
  • Default Resources Included: Sample movies.txt and users.txt.
  • Robust File Validation: Validates input files and provides error messages.
  • Integrated Packaging: Executable JAR files for both GUI and CLI.

Testing Enhancements in Detail

This release introduces significant testing capabilities:

  1. Running Tests: Execute the full suite of unit, integration, and end-to-end tests using Maven:
    mvn clean test
  2. Viewing Test Results: Detailed test outcomes (pass/fail/error) are generated by the Surefire plugin in target/surefire-reports/.
  3. Viewing Code Coverage: An HTML code coverage report is generated by JaCoCo. Open target/site/jacoco/index.html in a web browser to explore line and branch coverage for tested classes.

Folder Structure

  • reelrec-1.0.1: Contains the executable GUI application (reelrec-1.0.1.jar).
  • reelrec_CLI: Contains the executable CLI application.
  • resources: Default input files (movies.txt, users.txt).
  • README.txt: Includes detailed usage instructions and system requirements.
  • LICENSE: License information.

Installation & Usage Instructions

  1. Download and Unzip:
    Download the release package (e.g., ReelRec_1.0.1.zip) and extract it.

  2. For the GUI Application:

    • Navigate to the reelrec-1.0.1 folder (or equivalent) and run the executable jar file:
      java -jar reelrec-1.0.1.jar
    • (GUI usage remains the same as v1.0)
  3. For the CLI Application:

    • Navigate to the reelrec_CLI folder (or equivalent).
    • Run the CLI jar via the command line:
      java -jar reelrec_CLI.jar [moviesFilePath] [usersFilePath] [recommendationsFilePath]
    • (CLI usage remains the same as v1.0)

System Requirements

  • Java Runtime Environment (JRE) version 11

Future Work

(Same as v1.0 unless you have new plans)
Future releases will aim to expand features such as:

  • Enhanced recommendations algorithms.
  • Improved user interface and configuration options.
  • Extended support for additional data sources and file formats.

Licensing

This project is licensed under the terms specified in the included LICENSE file.


Full Changelog: v1.0...v1.0.1