A simple and scalable real-time chat application built using React and Firebase. This app supports real-time messaging between users, with user authentication and message storage via Firebase Firestore.
⚡ View Demo https://cloudhangouts.web.app/
- Real-time messaging between users.
- Firebase authentication (Google, Email, etc.).
- Firebase Firestore for message storage.
- Responsive design for mobile and desktop.
- User-friendly interface with a clean layout.
- React - Frontend UI
- Firebase Authentication - User authentication
- Firebase Firestore - Real-time database
- Firebase Hosting - Deployment
Make sure you have the following installed:
- Node.js
- Firebase CLI
- A Firebase project setup with Authentication and Firestore and Storage
-
Clone the repository:
git clone https://github.com/amineichou/realtime-chat-app.git
-
Install dependencies:
cd realtime-chat-app npm install
-
Create a
.env
file at the root of the project and add your Firebase configuration:REACT_APP_FIREBASE_API_KEY=your_api_key REACT_APP_FIREBASE_AUTH_DOMAIN=your_auth_domain REACT_APP_FIREBASE_PROJECT_ID=your_project_id REACT_APP_FIREBASE_STORAGE_BUCKET=your_storage_bucket REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id REACT_APP_FIREBASE_APP_ID=your_app_id
-
Start the development server:
npm start
- Go to the Firebase Console.
- Create a new Firebase project.
- Enable Firebase Authentication with the providers you need (Google, Email/Password, etc.).
- Set up Firestore Database with appropriate rules for read/write access.
- Get your Firebase configuration from the project settings and add it to your
.env
file.
To deploy your app using Firebase Hosting:
-
Install the Firebase CLI:
npm install -g firebase-tools
-
Log in to Firebase:
firebase login
-
Initialize Firebase in your project:
firebase init
-
Deploy to Firebase Hosting:
firebase deploy
If you'd like to contribute, feel free to fork the repository and submit a pull request. Any contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.