PhotoFlow Documentation Help

PhotoFlow Platform - Introduction

Overview

PhotoFlow (PFL) is a comprehensive photo workflow management platform designed for professional photographers and photo editing studios. The platform streamlines the entire photo production workflow—from raw photo capture to final delivery—with real-time collaboration between photographers, editors, and clients.

Project Purpose

PhotoFlow addresses the challenges faced by photography studios in managing large-scale photo projects:

  • Workflow Automation: Automates the progression of photo albums through defined stages (Raw → Stock → Rate → Retouch → Feedback → Final)

  • Cloud Integration: Seamlessly integrates with Google Drive for photo storage and synchronization

  • Real-time Collaboration: Enables clients to provide feedback on photos in real-time using SignalR

  • Multi-tenant Architecture: Supports multiple organizations with isolated data and configurations

Key Capabilities

Capability

Description

Album State Machine

Automated workflow progression with validation rules

Photo Synchronization

Bidirectional sync with Google Drive

Client Feedback Portal

Anonymous client access for photo rating and feedback

Real-time Notifications

SignalR-powered live updates

Role-based Authorization

Photographer, Admin, SuperAdmin, and Anonymous policies

Audit Logging

Comprehensive activity tracking and performance monitoring

System Components

The PhotoFlow platform consists of the following major components:

PhotoFlow Platform ├── Backend (.NET 9) │ ├── AppGateway (API Gateway) │ ├── Photoflow Service (Core workflow) │ ├── Storage Service (Cloud integration) │ ├── Identity Service (Authentication) │ ├── Organization Service (Multi-tenancy) │ └── BuildingBlocks (Shared libraries) ├── Frontend (Angular 19) │ ├── pfl01y25-fe-web (Admin portal) │ └── photoflow (Public marketing site) ├── Infrastructure │ ├── PostgreSQL (Database) │ ├── Redis (Caching) │ └── Kubernetes (Deployment) └── DevOps ├── GitLab CI/CD ├── Helm Charts └── IaC Templates

Target Audience

This documentation is intended for:

  • Backend Developers: Understanding microservices architecture, domain logic, and API contracts

  • Frontend Developers: Integration with backend APIs and SignalR real-time features

  • DevOps Engineers: Deployment, monitoring, and infrastructure management

  • New Team Members: Onboarding and understanding the overall system architecture

Technology Stack

Backend

  • .NET 9: Core framework for all microservices

  • Entity Framework Core: ORM for database operations

  • MediatR: CQRS pattern implementation

  • Stateless: State machine library for workflow management

  • SignalR: Real-time communication

  • Polly: Retry and resilience patterns

Frontend

  • Angular 19: Standalone components architecture

  • Angular Material: UI component library

  • Tailwind CSS: Utility-first CSS framework

  • RxJS: Reactive programming

Infrastructure

  • PostgreSQL: Primary database

  • Redis: Distributed caching

  • Kubernetes: Container orchestration

  • Helm: Package management for K8s

  • GitLab CI/CD: Continuous integration and deployment

Last modified: 25 February 2026