SOUND
LANGUAGE
THEME

Hi, I'm Lyra, this portfolio's AI assistant. Click to ask me about the projects, the stack, or Ever's background.

AI-Powered Image Processing | Event-Driven Architecture | Real-Time Status: Completed (University Project)

PixPro

Intelligent image processing platform powered by AI, event-driven architecture, and real-time notifications.

Demo private
PRIVATE

Pure software architecture

Robust backend · No visual UI

Project Overview

AI-powered image processing platform. Problem: processing images in parallel without blocking the UI. Solution: event-driven microservices with Kafka, chosen over Redis Streams for durability and automatic rebalancing (decision matrix). Stack: Node.js, Kafka, Docker, React, MinIO, Keycloak. Result: a 5-person Scrum team, MVP in 8 weeks, live notifications with WebSockets.

RoleSoftware Architect & Technical Lead
ClientCapstone Project - Jala University
DurationJanuary 2025 - June 2025
Year2026

Architecture Design

Event-Driven Microservices | CQRS | Clean Architecture (backend)RESTful API + Apache Kafka + WebSockets (Socket.io)
Context Diagram: Users interact with PixPro, which orchestrates authentication, processing, storage, and database.

Context Diagram: Users interact with PixPro, which orchestrates authentication, processing, storage, and database.

Container Diagram: React Frontend, Backend API, AI Workers, Kafka, Redis, MinIO, Keycloak, and MongoDB.

Container Diagram: React Frontend, Backend API, AI Workers, Kafka, Redis, MinIO, Keycloak, and MongoDB.

Core Modules

Authentication & User Management with Keycloak

SSO and RBAC with Keycloak, including registration, login, and password recovery. The backend validates JWT tokens; the frontend protects routes via context. Integrated with PostgreSQL.

Image Upload & CDN Storage (MinIO)

Individual or batch uploads with preview and progress tracking. Images stored in MinIO (S3 API) with signed URLs. An IStoragePort adapter makes the implementation easy to swap.

Async Processing with Kafka & Ollama

'image-process' event published to Kafka, consumed by Node.js workers that invoke Ollama (YOLO, Stable Diffusion). Results go to 'image-processed' or 'image-processed-error'. Decoupled and scalable architecture.

Real-Time Notifications (WebSockets + Redis Pub/Sub)

Frontend connected via Socket.io to a gateway that listens to Kafka topics. Events delivered to the client through rooms (userId). Redis adapter enables scaling across multiple gateway instances.

Project Organization & Personal Library

Users create projects and assign processed images to them. Metadata includes title, category, and parameters. The backend uses CQRS with pagination, filters, and Redis cache.

Admin Panel & Performance Metrics

Dashboard for administrators showing KPIs: images processed, processing times, queue status, and cache usage. Data aggregated from MongoDB and served via role-protected REST endpoints.

CI/CD Integration & Deployment (Rolling Updates)

GitLab CI/CD pipeline with linting, tests, Docker build, and automatic deployment. Rolling deployment (zero downtime) chosen over Blue-Green due to resource constraints. Health checks ensure stability.

Technologies Implemented

frontend

React 18
TypeScript
PrimeReact
PrimeFlex
PrimeIcons
Zustand
TanStack Query
Socket.io-client
Axios

backend

Node.js 20
Express 4
TypeScript
KafkaJS
Socket.io
Redis (ioredis)
MinIO SDK
Mongoose
Keycloak-connect

ai And Storage

Ollama (YOLO, Stable Diffusion)
MinIO
Kafka
Redis

tools

Docker & Docker Compose
GitLab CI/CD
Jest
Swagger
Postman
Biome (linter)