Table of Contents Link to heading

Summary Link to heading

A collaborative drawing application with undo/redo capabilities, built with Angular (frontend) and Spring Boot (backend), demonstrating clean architecture and design pattern implementation.

Setup Instructions Link to heading

  1. Backend

    mvn spring-boot:run
    
  2. Frontend

    npm install
    ng serve
    

Design Pattern Impact Link to heading

Pattern Problem Solved Implementation Location
Memento State versioning Backend model package
Factory Method Flexible object creation shapeFactory/ directory
Observer Asynchronous communication konva.service.ts
Singleton Single service instances Angular @Injectable decorator
Strategy Interchangeable file formats PaintController save/load

This architecture demonstrates how proper pattern implementation leads to:

  • Clear separation between presentation and business logic
  • Testable and modular components
  • Scalable feature additions
  • Maintainable state management
  • Robust error handling

Demo Video Link to heading

Paint-Application Demo Video