Portfolio
ChallengeHub
ChallengeHub is a full-stack open innovation platform designed to connect challenge creators with solution providers. The platform supports structured challenge publishing, solution proposals, real-time notifications, and role-based workflows — built on a distributed microservice architecture.
Type
Full-Stack / Microservices Platform
Year
2025
Role
Full-Stack Developer
Tools
React, TypeScript, Strapi v5, Node.js, Express, Docker, RabbitMQ, Traefik, WebSockets, MySQL, MongoDB, SQLite
Overview
ChallengeHub is a web-based open innovation platform built around structured collaboration. Challenge creators can publish problems, solution providers can submit proposals, and users receive real-time updates when important actions happen across the platform. The system was designed as a distributed application with separate services for authentication, challenge management, solution handling, and notifications.
Goal
The goal was to build more than a standard CRUD web application. ChallengeHub was designed to demonstrate how a modular platform can coordinate multiple user roles, independent backend services, real-time notifications, and event-driven workflows. The focus was on creating a maintainable architecture where each service owns its own domain while still contributing to one connected product experience.
Architecture
The platform follows a microservice-based architecture with clearly separated domains. Authentication is handled by a custom Node.js and Express service using JWT-based role management. Challenge, solution, and notification features are implemented as separate backend services, with each service responsible for its own data and business logic. Traefik acts as the API gateway, routing frontend requests to the correct service through service-specific paths.
Core Features
The platform supports multiple role-based workflows. Challenge creators can create and manage challenges, solution providers can submit proposals, and users receive status updates when solutions are submitted, confirmed, rejected, or deleted. Real-time communication is handled through WebSockets, while RabbitMQ coordinates asynchronous domain events between services such as challenge.created, solution.submitted, solution.confirmed, and challenge.deleted.
Technical Focus
A major technical focus was designing a system that stays modular while still supporting connected workflows. The project combines REST APIs for direct frontend and service communication with RabbitMQ-based event messaging for asynchronous coordination. Docker Compose is used to run the services in isolated containers, while different databases are used depending on service needs, including MySQL, MongoDB, and SQLite.
Key Contributions
System Highlights
Role-Based Platform
Challenge creators, solution providers, guests, and admins interact with different workflows based on authentication and permissions.
Microservice Architecture
The system is divided into independent services for authentication, challenges, solutions, and notifications.
Event-Driven Messaging
RabbitMQ coordinates domain events between services, allowing workflows to continue without tightly coupling the backend.
Real-Time Notifications
WebSockets deliver immediate updates when solutions are submitted, confirmed, rejected, or removed.
Key Screenshots