iMessage Clone



Objective
The main objective of this project was to create a clone of the iMessage application. The application should allow users to send and receive messages in real-time. The application should be user-friendly and responsive on all devices.
Tools & Technologies
Nextjs, TailwindCSS, Chakra UI, GraphQL, Apollo Client, MongoDB, Express, Prisma, Pub-Sub
Challenge
This is a Next.js application which allows users to send and receive messages in real-time. The application is built using Next.js, TailwindCSS, Chakra UI, GraphQL, Apollo Client, MongoDB, Express, Prisma, and Pub-Sub. The application is responsive and works on all devices. Users can send messages to other users in real-time.
First the user needs to sign in using their Google account. Once signed in, the can click on the chat icon to open a model where they can search for other users and start a chat with them. The username of the user is unique and is used to identify the user. Selecting a user from the search results will open a chat window where the user can send and receive messages in real-time.
The database used in this project is MongoDB. The user data is stored in the MongoDB database. The messages are stored in the MongoDB database. Prisma is used to interact with the MongoDB database. Using Pub-Sub, the messages are sent and received in real-time. Also graphql is used to query the data from the database.