ChatV - Real-time Chatroom Website
ChatV is a real-time chatroom application that allows users to communicate in public and private rooms. It's built with modern web technologies and Firebase for real-time database and authentication. This project was developed as part of the Software Studio 2024 Spring course.
Click on the picture to see demo video
- Login using email/password or Google authentication.
- Navigate the public chatroom or create private rooms.
- Add friends to private rooms using their UIDs.
- Send messages and enjoy real-time communication!
- Node.js
- npm
- Firebase account
-
Clone the repository:
git clone https://github.com/vaclisinc/chatv.git cd chatv
-
Install dependencies:
npm install
-
Create a
.env
file in the root directory and add your Firebase configuration:APIKEY=your_api_key DATABASE=your_database_url
-
Build the project:
npm run build
-
Set up Firebase:
- If you haven't already, install the Firebase CLI globally:
npm install -g firebase-tools
- Log in to Firebase:
firebase login
- Initialize Firebase in your project directory:
Follow the prompts to set up Firebase Hosting for your project.
firebase init
- If you haven't already, install the Firebase CLI globally:
-
For local testing:
firebase serve
Note: For improved development experience, a watch mode has been implemented:
- Run
npm run build
once at the start of your development session. - After that, any changes to the project files will automatically trigger a refresh, allowing you to see your changes immediately without manual rebuilding.
- Run
-
To deploy:
firebase deploy
This project includes a practical feature for local testing:
- After running
npm run build
once, any subsequent changes to the project files will automatically refresh the build. - This allows you to see your changes immediately without manually rebuilding the project each time.
This feature significantly speeds up the development process and makes it easier to iterate on your changes.
- User Authentication: Supports email/password and Google sign-in
- Public Chatroom: A space where all logged-in users can interact
- Private Chatrooms: Create and manage private conversations
- Real-time Messaging: Instant message delivery and updates
- Responsive Design: Fully responsive web design for various devices
- User Profiles: Display user profile pictures in chats
- CSS Animations: Smooth transitions for enhanced user experience
- Security: Environment variable configuration for secure deployment
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Firebase for providing the backend infrastructure
- All contributors and testers who helped shape this project