Back to Projects

Group Project · 2025

Messaging Application
Event-Driven Software Engineering

A team software engineering project focused on designing and implementing a responsive messaging application. The project emphasized event-driven architecture, reusable software design, UML modeling, and planning the system before implementation.

01 · Overview

Designing a messaging system.

The application was designed around chat rooms and message exchange between multiple users. A major focus of the project was building the system around event-driven communication rather than relying on a simple sequential workflow.


The project also placed significant emphasis on software engineering practices, including system planning, UML diagrams, software patterns, and designing components that could be maintained and reused.

02 · My Role

From architecture to implementation.

I worked primarily on the backend while also contributing to the frontend. My work involved implementing the messaging functionality and helping translate the system design into working software.


Because the application was event-driven, careful planning was required to determine how different parts of the system would communicate and respond to events.

03 · Team

The team

Eder Martinez

Lead Backend Developer · Frontend Programming

Michael Bradley

Backend Developer

Luke Ferguson

Frontend Designer · Programmer

Josh Burton

Programming · Testing

04 · Technology

Built with.

C# WebSockets Windows Forms Event-Driven Architecture Proxies

06 · Research

Research & references.

The following resources helped guide our software design and development process.

06.5 · Diagrams and Events

UML and Diagrams

DairyBarn project screenshot
01 / 06

07 · Results

Building around events.

We developed a functional messaging application capable of supporting multiple users and chat rooms. Designing the system around event-driven communication allowed the application to respond to messages and other events without relying on a strictly sequential workflow.


The project gave me practical experience designing software architecture before implementation and translating UML models and system requirements into working code.