Skip to content

jurmadani/WhatsAppClone

Repository files navigation

WhatsApp Clone

This project is an WhatsApp clone developed using React Native and TypeScript. It includes features such as user authentication/registration, adding contacts, account editing, send messages/images, all in REAL TIME. The project also utilizes Redux for global state management and Firebase for backend services, including Firebase Storage for storing media files, Firestore for the database.

🔗 Developer

linkedin

Key Features

  • User Authentication: User Authentication: login & sign-up via firebase.
  • Real-time Messaging: Send and receive messages in real-time, creating a seamless chatting experience similar to WhatsApp.
  • Account Management: Edit profile information and update profile picture.
  • Contact Management: Add and manage contacts to easily connect with friends and family.
  • Media Sharing: Share photos and other media files from the device gallery with contacts..
  • Notifications: Implement push notifications to alert users about new messages and updates.
  • Seen Message System: Users can see if they're message was seen by the ther contact.
  • UI Design: Modern UI with Ui Kitten, React Native Elements, and React Native Paper.
  • State Management: Efficient state management with Redux.

Technologies Used

  • React Native: Popular open-source JavaScript framework for cross-platform mobile app development.
  • Typescript: Superset of JavaScript with optional static typing for improved code quality and tooling.
  • Redux: Predictable state container for managing application state in JavaScript apps.
  • Git: Version control system for tracking code changes and facilitating collaboration.
  • npm: JavaScript package manager for easy dependency management.
  • Firebase: A comprehensive backend-as-a-service (BaaS) platform provided by Google.
  • Visual Studio Code: Popular code editor with rich features for code editing and debugging.
  • Figma: Web-based design tool for creating UI/UX designs and prototypes.

Configuration

Before running the application, you need to configure Firebase services. Follow the steps below:

Create a Firebase project at https://firebase.google.com if you haven't already.

  • Enable Firebase Authentication, Firestore, and Firebase Storage for your project.
  • Obtain the Firebase configuration object from the Firebase console.
  • Update the Firebase configuration in the project code.
  • Create a folder "backend" with file firebase.ts and replace the following lines with your Firebase configuration:
import firebase from "firebase/compat/app";
import "firebase/compat/auth";
import "firebase/compat/firestore";
import "firebase/compat/storage"
import "firebase/compat/database"

const firebaseConfig = {
 //your config goes here
};

if (!firebase.apps.length) {
  const app = firebase.initializeApp(firebaseConfig);

}

export { firebase };

Deployment

To deploy this project run

  npx expo start 

Screnshots

UI Libraries

  • UI Kitten: A customizable UI library for React Native that provides various UI components.
  • React Native Elements: A set of cross-platform UI components for React Native applications.
  • React Native Paper: A material design implementation for React Native, providing UI components and theming options.

Problem Approach

  • Analyzed project requirements and identified specific needs and features for each application.
  • Researched and evaluated technologies and frameworks for cross-platform compatibility, performance, and developer experience.
  • Set up the development environment and configured necessary tools, libraries, and dependencies.
  • Used a modular architecture pattern, separating the code into small, reusable components, to ensure seperation of concerns and efficient testing.
  • Used Git for collaboration, code management, and change tracking.

If time was infinite

Given infinite time, here are some exciting features I would add to enhance the user experience:

  • Group Chat: Foster seamless collaboration and teamwork through group conversations.
  • Video/Audio Calls: Enable real-time video and audio calls to connect people across distances.
  • Message Reactions: Express emotions and provide quick feedback with message reactions.
  • Swipe to Reply: Streamline conversations with an intuitive swipe-to-reply feature.

Contributing

Whether you use this project, have learned something from it, or just like it, please consider supporting it by buying me a coffee, so I can dedicate more time on building open-source projects like this :)

Buy Me A Coffee

License

The WhatsApp Clone is open-source and released under the GNU General Public License

Contact

For any inquiries or questions regarding the WhatsApp Clone application, please contact me at [email protected]

About

WhatsaApp Clone made with React Native & Firebase

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published