Group 40 (JAABVA): Alex Apostolu, Alex Mirabella, Amaru Izarra, Brian Latchman, Jessica Li, Vishnu Sai and Arthur the Aardvark
This is the repository for the drawing and image creation software called Aardvark. This project is built using Java 11 and JavaFX. Below are some useful links related to the development of the project.
The following steps will guide you in setting up the repo to run locally. Mainly tested using IntelliJ and Windows (but also checked to run on VS Code, MacOS). Assumes Java and Gradle are installed and setup on computer.
- Clone the repo:
git clone https://github.com/CSC207-2023Y-UofT/course-project-aardvark.git
Open project folder in IntelliJ
Navigate to the Gradle panel
Under aardvark/Tasks/build, run the 'build' command
Under aardvark/Tasks/application, run the 'run' command
Start making changes and drawing!
Several methods could not be covered by automated unit tests due to their output being visual. In these cases they were manually tested.
Aardvark was developed using SOLID principles, Clean Architecture, and a collection of essential design patterns.
The MVC pattern separates Aardvark into three layers: The model stores canvas info, shapes, colors, properties and data. The view includes UI components like the canvas, buttons, inputs and all other user interfaces. The controller manages user interactions, updating project and account data through model communication.
Aardvark utilizes the Gateway design pattern for user sign-in and sign-up, employing a UserDSGateway to manage interactions with the JSON file. This separation enhances maintainability, security, and flexibility, as the pattern isolates complex authentication details from the core application logic while allowing for independent testing and potential future service changes.
Aardvark employs the Singleton design pattern to ensure the existence of only one instance of a particular class throughout its runtime. This pattern is particularly useful for managing resources that should be shared globally across the application.