A Java-based presentation application for creating and viewing slideshows.
- Java 21 or later
- Apache Maven 3.6+
-
Navigate to the project directory:
cd jabberpoint -
Build the project:
mvn clean package
This command will:
- Clean any previous build artifacts
- Compile the Java source code
- Package the application into a JAR file
-
The compiled JAR file will be located at:
target/jabberpoint-1.0.0.jar
If you want to skip tests during the build:
mvn clean package -DskipTestsTo run the application directly from Maven:
mvn exec:java -Dexec.mainClass="app.JabberPoint"After building the project, you can run the compiled JAR file:
java -jar target/jabberpoint-1.0.0.jarTo run all 168 unit tests:
mvn testThis command will:
- Compile the test code
- Execute all unit tests in
src/test/java/ - Display test results and any failures
- Generate coverage reports
jabberpoint/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── app/ # Application entry point
│ │ │ ├── controller/ # Command controllers
│ │ │ ├── model/ # Core data models
│ │ │ ├── persistence/ # File I/O and XML handling
│ │ │ └── view/ # UI components
│ │ └── resources/
│ │ ├── diagrams/ # UML diagrams (Astah format)
│ │ │ ├── Jabberpoint_old.asta
│ │ │ └── Jabberpoint.asta
│ │ └── README.md # Resources documentation
│ └── test/
│ ├── java/
│ │ ├── app/ # Application tests
│ │ ├── controller/ # Controller tests
│ │ ├── model/ # Model tests
│ │ ├── persistence/ # Persistence tests
│ │ └── view/ # View tests
│ └── resources/ # Test resources
├── docs/ # Additional documentation
├── pom.xml # Maven configuration
└── test.xml # Test presentation file
- app.JabberPoint: Main application entry point
- controller/: Command pattern implementation for user actions
- model/: Presentation, Slide, and SlideItem classes
- persistence/: XML file handling and demo presentations
- view/: Swing UI components for slide viewing
Launch the application and use the GUI to:
- Open existing presentations
- Create and edit slides
- Navigate through presentations
- Save presentations to XML format
The application uses Java 21 as the target Java version. To modify the Java version, edit the pom.xml file:
<properties>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>Ensure Maven is installed and added to your system PATH. Verify with:
mvn --versionVerify you have Java 21 installed:
java --versionClean the project and rebuild:
mvn clean packageThe system architecture and design are documented using UML 2.5 diagrams, located at:
src/main/resources/diagrams/Jabberpoint.asta
src/main/resources/diagrams/Jabberpoint_old.asta
These Astah files contain:
- Class diagrams showing the layered architecture
- Sequence diagrams for key workflows
- Design pattern implementations
To view the diagrams:
- Download and install Astah Professional or Astah Community
- Open
src/main/resources/diagrams/Jabberpoint.astafor the current redesign - Open
src/main/resources/diagrams/Jabberpoint_old.astafor the legacy design
The application implements the following design patterns:
| Pattern | Purpose | Location |
|---|---|---|
| Command | Encapsulates user actions as objects | controller/ package |
| Observer | Decouples model from view updates | model/Observer, Presentation |
| Factory | Creates slide items based on type | persistence/SlideItemFactory |
| Strategy | Interchangeable file loading strategies | persistence/Accesor interface |
- See
docs/CODEBASE_ADVICE.mdfor codebase guidelines - See
jabberpoint.dtdfor the XML file format definition - See
test.xmlfor an example presentation file - See
src/main/resources/diagrams/Jabberpoint.astafor UML diagrams - See
src/main/resources/diagrams/Jabberpoint_old.astafor legacy UML diagrams