Hackathon Challenge: Build a gRPC-Powered Chat App to Work at Umee!
About Umee
Explore our website: https://www.umee.social/
Join the Discord: https://discord.gg/qmcHKkG2
Umee (“You-Me”) is a social impact project designed to strengthen human connection and community bonds.
Our mission is to bridge the gaps in modern social interactions by making it easier for familiar faces to become friends, for newcomers to feel welcome, and for everyone to stay connected through shared interests and activities. As a social impact project, Umee is more than just an app, it's a movement to bring people closer together in a world that often feels disconnected.
We want to provide an unconventional way to join our team of career professionals, students, and enthusiasts who are passionate about creating a platform that inspires human connection. Use this hackathon to prove your skillset, and if you are selected to join the team, you will not be joining as an intern; you will be joining as a team member and major stakeholder who will help us throughout the rollout process.
We are looking for passionate and motivated individuals with the needed skillset to accelerate our launch in Q1 of 2025 and become a crucial member of our team moving forward.
Together, we are building something meaningful, something that has the potential to change the way we connect, communicate, and collaborate.
The Task
Build a secure, low-latency chat app where users can send messages and media instantly, thanks to bi-directional gRPC streaming, an EC2-hosted chat server, and Parquet-based storage for efficient data handling.
Requirements
Tech Stack Requirements
Your app must utilize the following technologies:
- Flutter (Dart) – Build the front-end UI/UX
- gRPC – Implement real-time messaging with efficient RPC communication
- AWS Amplify Services:
-
DynamoDB (for user and chat metadata)
-
S3 (for media storage & Parquet files)
-
Cognito (for authentication)
-
AWS EC2 (Dockerized gRPC Server) – Persistent chat server to maintain live connections
-
Parquet Data Format – Store chat logs efficiently
-
Your Objective
Core Features You Must Implement
- Authentication with AWS Cognito
-
Users must be able to sign up, log in, and stay authenticated.
-
Secure token-based authentication for accessing chat services.
-
- gRPC-Based Real-Time Chat
-
Implement bi-directional gRPC streaming to send/receive messages.
-
Chat should feel instantaneous—no unnecessary delays!
-
- Persistent Chat Server on AWS EC2
-
Deploy a gRPC server inside a Docker container running on EC2.
-
Ensure persistent user sessions and scalable handling of concurrent chats.
-
- Parquet-Based Message Storage
-
Chat messages should be saved in Parquet format for efficient storage & retrieval.
-
Store Parquet logs in AWS S3, while storing chat metadata (timestamps, users, etc.) in DynamoDB.
-
- Chat History & Retrieval
-
Users should be able to scroll back and retrieve past messages.
-
Implement efficient querying to fetch specific message histories.
-
Bonus Features
- Media Attachments
-
Enable users to send images/videos (stored securely in S3).
-
Implement presigned URLs for temporary media access.
-
- Typing Indicators & Read Receipts
-
Show when users are typing a message or show the message as it is being written.
-
Indicate when messages are read.
-
- Encryption Utilization
-
Implement a basic encryption layer for secure messaging.
-
- Web/Mobile Compatibility
-
Make your app run seamlessly on both mobile and desktop Flutter environments.
-
Submission Guidelines
- GitHub Repository – Share a public repo with clear instructions.
- README.md – Document how to set up, run, and test your app.
- Demo Video (Optional, but Recommended!) – A short clip (2-5 min) showcasing your app’s functionality.
- Bonus: Deploy a Live Version – If you deploy the chat server on AWS, provide the URL for testing!
Prizes
Developer Position at Umee
The developer of our favorite submission will not be joining as an intern, but as a team member helping us throughout the rollout process of our mobile app!
Devpost Achievements
Submitting to this hackathon could earn you:
Judges
Suwan Lee
Developer
Davis Wang
Developer
Judging Criteria
-
gRPC Implementation (40%)
- Efficient bi-directional streaming; Clean, well-structured .proto files; Proper handling of real-time message delivery & connection persistence -
AWS Amplify Integration (25%)
Smooth Cognito authentication; DynamoDB & S3 correctly handling data -
Flutter UI/UX & Performance (20%)
Clean, intuitive chat interface; Smooth user experience -
Code Structure & Best Practices (15%)
Modular, scalable code architecture; Well-documented README explaining setup & implementation
Questions? Email the hackathon manager
Tell your friends
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.