DEV Community

Shujaur Rahman Haadi
Shujaur Rahman Haadi

Posted on

CentralResolve - One Project. Multiple Conversations. One Clear Picture.

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

During a recent SIH project, my team and I ended up communicating about the same project across both a WhatsApp group and a Discord server.

The problem was not that we were not communicating. The problem was that we were communicating in different places.

A task could be assigned on WhatsApp and later discussed differently on Discord. A deadline mentioned on one platform could be different from the one mentioned somewhere else. Updates could also get buried, leading to confusion about who was responsible for what or whether something was actually finished.

That experience inspired me to build CentralResolve.

CentralResolve takes exported WhatsApp and Discord conversations and analyzes them together to identify contradictions that may otherwise be missed.

It currently looks for:

  • Conflicting task ownership
  • Different deadlines
  • Contradictory project statuses
  • Unresolved decisions

Instead of producing another long summary of everything a team said, CentralResolve focuses on the parts that may actually require attention.

The idea is simple:

One project. Multiple conversations. One clear picture.

I built this for one of my friends from that project because we had already experienced the communication problem that CentralResolve is designed to solve.

Demo

Demo video: https://youtu.be/n1In5QHXMN4

The demo shows the complete end-to-end workflow:

  1. Open CentralResolve.
  2. Upload a WhatsApp chat export.
  3. Upload a Discord JSON export.
  4. Start the analysis.
  5. Let Gemma extract structured project facts.
  6. View the detected conflicts.
  7. Inspect the supporting evidence from each platform.
  8. Start a new analysis.

Code

GitHub Repository: https://github.com/shujahaadi/CentralResolve

How I Built It

The core of CentralResolve is Gemma 3 4B, running locally through Ollama.

The application is divided into four main stages:

WhatsApp Export ──┐
                  ├──> FastAPI ──> Gemma 3 4B
Discord Export ───┘                 │
                                    ↓
                             Structured Facts
                                    ↓
                       Deterministic Conflict Detection
                                    ↓
                              React Dashboard
Enter fullscreen mode Exit fullscreen mode

Parsing

CentralResolve accepts:

  • WhatsApp chat exports as .txt
  • Discord message exports as .json

Both formats are parsed into a common message structure containing:

  • Platform
  • Sender
  • Timestamp
  • Message content

The platform is preserved throughout the pipeline so that the system knows whether a piece of evidence came from WhatsApp or Discord.

Understanding the Conversations

Gemma 3 4B is used to turn messy conversation text into structured project facts.

For example:

[whatsapp] Rahul: I'll handle deployment.
[discord] Rahul: I can't handle deployment anymore.
Enter fullscreen mode Exit fullscreen mode

Gemma extracts facts such as:

  • Task assignments
  • Deadlines
  • Status updates
  • Decisions
  • Unresolved issues

The model also returns the original message as evidence.

The prompt explicitly tells the model not to invent information and to preserve the original meaning of the conversation.

Conflict Detection

The structured facts are then passed to a deterministic Python conflict detector.

CentralResolve currently checks for:

  • Ownership conflicts
  • Deadline conflicts
  • Status conflicts
  • Unresolved decisions

The LLM does not make the final conflict decision by itself.

Instead:

Conversation
     ↓
Gemma 3 4B
     ↓
Structured Facts
     ↓
Python Conflict Rules
     ↓
Explainable Conflict
Enter fullscreen mode Exit fullscreen mode

This separation makes the final conflict logic explicit and inspectable.

For example, if one fact says:

Rahul will handle deployment
Enter fullscreen mode Exit fullscreen mode

and another says:

Rahul can't handle deployment anymore
Enter fullscreen mode Exit fullscreen mode

the deterministic detector can identify that as an ownership conflict and return the original messages as evidence.

Frontend

The frontend is built with React and Vite.

The dashboard displays:

  • WhatsApp message count
  • Discord message count
  • Total messages
  • Number of conflicts
  • Conflict type
  • Conflict severity
  • Supporting evidence
  • Original platform for each evidence item

The goal of the interface is to take a large amount of conversation data and quickly show the small number of issues that need attention.

Why Does Open Innovation Matter?

CentralResolve works with potentially private team conversations.

The current implementation uses Gemma 3 4B locally through Ollama rather than relying on a closed third-party AI API.

Conversation Files
       ↓
    FastAPI
       ↓
 Local Ollama
       ↓
 Gemma 3 4B
       ↓
Structured Facts
Enter fullscreen mode Exit fullscreen mode

This matters because the conversation data can be analyzed on the user's own machine without requiring it to be sent to a proprietary AI provider just to perform the model inference.

For a tool dealing with private team communication, that is an important difference.

The open approach also gives the project more control over the AI layer. Because the model is open-weight, the system can be adapted as the project evolves instead of being completely tied to one closed API.

It also makes it possible to:

  • Run inference locally
  • Swap models
  • Change prompts and model behavior
  • Experiment with different open models
  • Avoid being locked into a single proprietary AI provider

For CentralResolve, local inference was not just a technical experiment. It fit the problem.

We wanted a tool that could look at conversations without making privacy an unnecessary tradeoff.

Prize Categories

Best Use of Gemma

I am entering Best Use of Gemma.

CentralResolve uses Gemma 3 4B as the core language model for understanding cross-platform team conversations and extracting structured project facts.

Gemma runs locally through Ollama, while deterministic Python logic handles the final conflict detection.

Final Thoughts

CentralResolve started with a problem that felt very real during a project with friends.

We were already communicating.

We were already sharing updates.

But because those conversations were spread across WhatsApp and Discord, we sometimes ended up with different understandings of the same project.

That led me to a simple question:

What if we could look at all of those conversations together and identify where the team stopped agreeing?

CentralResolve is my attempt at answering that question.

Not another tool that summarizes everything.

A tool that tells you where your team might no longer be on the same page.

Top comments (0)