GroupMe Message Archiver

Command-line app to save complete GroupMe chat history of direct and group messages

Project banner

Background

GroupMe is a popular free messaging app owned by Microsoft. Users can form group chats as well as send direct messages.

Inspiration

I’ve been using GroupMe since high school for class group chats, clubs, and personal communication with my friends. Occasionally, I would be curious about what we were talking about in a particular group chat years ago — but the only way to find out was to scroll, by hand, for a very long time until I found the time period I was looking for. Often, the app would crash before I even made it that far back — I guess loading that many old messages was too much to handle.

Given these frustrations, I decided to make GroupMe Message Archiver — a tool that utilizes the GroupMe API to retrieve and archive the complete message history of any group or direct message chat. Along the way, the program computes some fun statistics about the selected chat and its messages.

Features

Retrieve quick stats about a group chat

Command: stats [group name]

These group chat quick stats include:

  • Group description, number of members, and their names
  • Group chat creator and date created
  • Time sent of most recent message
  • Group chat age in months/years
  • Total message count
  • Average messages sent per day

Retrieve quick stats about a direct message chat

Command: stats [name]

These DM quick stats include:

  • When you sent your first ever message to that person!
  • Time sent of most recent message
  • How long you have direct messaging for
  • Total message count
  • Average messages sent per day

Message archival for both group chats and direct message chats

Command: download [group/person name]

This command downloads the entire chat message history and saves it in a Markdown file (.md extension). The program automatically formats the file with custom Markdown styling for ease of viewing (so it’s not just a wall of plain text).

Bonus statistics for a group chat

These group chat bonus statistics include:

  • Automatically displays after group chat archival — no extra commands needed
  • Top 5 most frequent texters and their message counts
  • Top 5 most generous likers and their number of likes given
  • Top 5 people with the most hearts received on their messages and the total number

Bonus statistics for a direct message chat

These DM bonus stats include:

  • Automatically displays after direct chat archival — no extra commands needed
  • Who texts more often? A comparison of number of messages sent by each person
  • How many of the other person’s messages you have liked
  • How many of your messages the other person has liked

What I learned

In terms of technical skills, I built this entire project in Java to further strengthen my grasp of the language. I learned how to authenticate with and use REST APIs, and I used Google’s Gson library in order to read the JSON data returned from my API calls. I also gained experience using Gradle to manage the project and its dependencies. Using Gradle, I was able to package the project into an executable build that can be run on any operating system with Java installed (download coming soon).

More broadly, though, I learned how to scope out my own project. The entire process of figuring out how to take an idea to a finished product was very rewarding. I also used Git and Github for version control and to work across multiple devices.

Made with💜by Bob