DEV Community

Hasnain
Hasnain

Posted on

22 18 19 20 19

Real-Time Chat Application with React and Pinata for Effortless Messaging and File Sharing

This is a submission for the The Pinata Challenge

What I Built

I developed a real-time chat application with key features, and it is fully responsive, making it accessible from mobile UI as well.
features:

  • Real-Time Messaging: The application supports real-time messaging, ensuring that messages sent by users instantly appear in the chat room without delays.

  • File Sharing: The application allows users to upload and share various file types, such as images, PDFs, and documents, using Pinata for secure and decentralized file storage.

  • Chat Rooms: Users have the ability to create, join, and leave chat rooms, making the platform dynamic and user-controlled.

  • Message History: Each chat room maintains a message history, which is stored and made visible to users when they join a room, allowing for continuity in conversations.

  • Google User Authentication: Users can log in and log out seamlessly using their Google accounts, enabled via Firebase Authentication.

  • Private Messaging: Users can also send private messages to other users for one-on-one conversations.

Demo

Working: app link

My Code

Project Title - 2Connect

Features:

  1. Google User Authentication: Users can be able to log in and log out using their Google accounts via Firebase Authentication.

  2. Chat Rooms: Users should be able to create, join, and leave chat rooms.

  3. Real-Time Messaging: Messages sent by users should appear in the chat room in real time.

  4. Share File: It allows users to upload and share various types of files, including images and PDFs using Pinata IPFS.

  5. Message History: The chat application should store the history of messages for each chat room, which should be visible to users when they join the room.

  6. Private Messaging: Users should be able to send private messages to other users.

Tech Stack

  • React JS
  • Pinata
  • Firebase Firestore
  • Firebase Realtime database
  • Firebase Authentication

Screenshots

Chat Screen
Create Group
Group Chat
Join Group
Login Page



More Details

  • Users can share images directly by selecting them from their local directory. The application utilizes Pinata IPFS to manage and store these assets in a secure and decentralized manner.
chatting screen
Chat window
  • Users can also share PDFs, which are embedded in an iframe, allowing them to view and download the file directly from the chat interface.
group screen
Group chat
  • Users can join multiple group forums, allowing them to participate in various discussions and collaborate with different communities. This feature enhances user engagement by providing a platform for diverse interactions, enabling users to share ideas, ask questions, and connect with others folks.
join group
Join Group

TechStack Used:

  • React JS
  • Pinata
  • Firebase Realtime Database
  • Firebase Firestore
  • Firebase Authentication

API Trace View

Struggling with slow API calls?

Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

Top comments (3)

Collapse
 
ashutosh_dev profile image
Ashutosh_dev • Edited

Not responsive.
Take a look at my real-time chat app jeeoracle.netlify.app/app

Collapse
 
hasnain110 profile image
Hasnain

Thank you for your feedback. I have fixed the responsiveness. It appears there is no one-to-one chat feature on your portal.

Collapse
 
ashutosh_dev profile image
Ashutosh_dev

Yup, I just want to show you the responsiveness of my site.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more