Galal Chat is a real-time chat application built with Vue 3, Firebase, and Vite. This project demonstrates the implementation of private chat rooms, real-time messaging, and Firestore integration.
- Real-Time Messaging: Messages are updated in real-time using Firestore's
onSnapshot. - Private Chat Rooms: Users can join specific chat rooms using a unique
roomId. - Firestore Integration: Messages and chat rooms are stored in Firestore with proper structure and security rules.
- Responsive Design: The UI is optimized for both desktop and mobile devices.
- Vue 3 Composition API: The project leverages Vue 3's modern features for better state management and reactivity.
- Vue 3: Frontend framework for building the user interface.
- Firebase Firestore: Real-time database for storing chat messages and room data.
- Moment.js: For formatting timestamps in chat messages.
- Vite: Development environment for fast builds and hot-reloading.
- CSS: Custom styles for a clean and responsive design.
-
Frontend Development:
- Designed and implemented the chat interface using Vue 3.
- Created reusable components like
NewMessagefor sending messages andChatfor displaying chat rooms.
-
Real-Time Messaging:
- Integrated Firestore's
onSnapshotto enable real-time updates for messages. - Implemented message fetching and rendering logic with proper reactivity.
- Integrated Firestore's
-
Private Chat Rooms:
- Added functionality to create and join private chat rooms using
roomId. - Ensured each room has its own isolated message history.
- Added functionality to create and join private chat rooms using
-
Firestore Integration:
- Designed Firestore database structure:
rooms (collection) |-- roomId (document) |-- messages (subcollection) |--messageId (document) - Used Firestore security rules to protect data.
- Designed Firestore database structure:
-
Responsive Design:
- Styled the application to ensure usability on both desktop and mobile devices.
-
Debugging and Testing:
- Added extensive logging for debugging Firestore queries and ensuring data integrity.
- Tested the application for edge cases like empty rooms and invalid
roomId.
npm installnpm run devnpm run build- Add user authentication for secure access to chat rooms.
- Implement typing indicators and message read receipts.
- Enhance the UI with animations and better styling.
If you'd like to know more about this project or collaborate, feel free to reach out!