PhotoSynTech v1.0
A C++ Plant Management System Demonstrating Design Patterns
Loading...
Searching...
No Matches
PhotoSynTech

PhotoSyntech Logo

Photosyntech

A C++ Plant Management System Demonstrating Design Patterns

Unit Tests Code Coverage GitHub issues GitHub pull requests GitHub last commit GitHub repo size
View the Project Wiki | Full Documentation (Doxygen) | Read the Report

๐ŸŒฑ Key Features ๐ŸŒฑ

  • Plant Management: Track and manage a virtual collection of plants.
  • Growth Simulation: Watch your plants grow, change and react based on care routines.
  • Design Pattern Showcase: A practical C++ demonstration of 12 different GoF design patterns.

Manage a plant inventory

Inventory

Simulate plant life cycles

simulatePlants

Manage Staff

manageStaff

Handle customer interactions

customerInteractions

Watch your plants grow

growth

๐Ÿš€ Quick Start ๐Ÿš€

Prerequisites

  • Core: A C++11 compliant compiler (e.g., g++, clang), make, git, and curl.
  • For the TUI (with image support): cmake and image loading libraries (e.g., libjpeg) are also required.
  • Optional Developer Tools: doxygen (docs), gcovr (coverage), valgrind (memory checks).

Installation & Running

# 1. Clone the Repository
git clone https://github.com/marcelstoltz00/Photosyntech.git
cd Photosyntech
# 2. Build and Run the Core Unit Tests
make test-run
# 3. (Optional) Build and Run the TUI
make tui-manager

๐Ÿ›๏ธ Design Patterns Used ๐Ÿ›๏ธ

This project employs 12 different design patterns. For a detailed explanation of each, please see their individual pages on our project wiki.

Category Patterns
Creational Builder ยท Prototype ยท Singleton
Structural Composite ยท Decorator ยท Facade ยท Flyweight
Behavioral Iterator ยท Mediator ยท Observer ยท State ยท Strategy

๐Ÿ› ๏ธ Technologies & Tools ๐Ÿ› ๏ธ

๐Ÿค Photosyntech Team ๐Ÿค

Photosyntech Team

Name Student ID Role
Wilmar Smit u24584216 TaskMaster
Johan Coetzer u24564584 Thing One
Marcel Stoltz u24566552 Thing Two
Michael Tomlinson u24569705 The Brains And The Brawn
Zamokuhle Zwane u23533413 The Architect

๐Ÿ“Š UML Diagrams ๐Ÿ“Š

Diagram Type Link
Activity Diagram View Diagram
Communication Diagram View Diagram
Object Diagram View Diagram
Sequence Diagram View Diagram
State Diagram View Diagram
System Class Diagram View Diagram