Neo-Chat
Neo-Chat is an AI-powered chat application that combines real-time messaging, group chat rooms, and intelligent AI conversations. I built this project as part of one of my university courses to explore how modern chat applications can integrate multiple AI models seamlessly, giving users the flexibility to choose between different AI providers like OpenRouter and OpenAI all within a single interface. Anthropic integration is planned but not yet implemented.
This was my first serious venture into Flutter development, and I wanted to create something that works across all platforms - mobile, web, and desktop. The challenge of building a cross-platform app that handles real-time messaging, group chats, user authentication, and AI integration taught me a lot about state management, Firebase architecture, and working with multiple external APIs. The project uses Provider for state management and Firebase Firestore for real-time data synchronization.
Features
- User Authentication - Secure Firebase Auth with email/password and Google Sign-In
- AI Chat Interface - Modern chat UI with AI conversation support and real-time streaming
- Multi-Model AI Support - Integration with OpenRouter, OpenAI, and Anthropic APIs
- Group Chat Rooms - Multi-user chat rooms with real-time synchronization
- Cross-Platform - Works seamlessly on iOS, Android, Web, Windows, macOS, and Linux
- Material Design 3 - Modern UI with light/dark theme support
- Offline Support - Message caching and synchronization when back online
- Secure Data Storage - Firebase Firestore with comprehensive security rules
Tech Stack
Frontend & Core
Backend & Infrastructure
- Firebase Auth - User authentication and identity management
- Firebase Firestore - Real-time NoSQL database
- Firebase Storage - File storage for media content
AI Integration
- OpenRouter - Access to DeepSeek R1 and other open-source models
- OpenAI API - GPT-3.5 Turbo and GPT-4 support
- Anthropic API - Claude models integration
Prerequisites
Before you begin, ensure you have the following:
- Flutter SDK (>=3.8.1)
- Dart SDK
- Android Studio or VS Code
- Firebase account
- API keys for AI features:
- OpenRouter API (recommended) - Get from openrouter.ai
- OpenAI API (optional) - Get from platform.openai.com
- Anthropic API (optional) - Get from console.anthropic.com
Installation & Setup
- Clone the repository
git clone https://github.com/Rahat-Kabir/neo-chat.git
cd neo-chat/neo_chat- Install dependencies
flutter pub get- Configure Firebase
- Follow the instructions in
FIREBASE_SETUP.md - Copy
lib/firebase_options.dart.templatetolib/firebase_options.dart - Update with your Firebase configuration
- Configure API Keys
# Windows
setup_api_config.bat
# Linux/Mac
chmod +x setup_api_config.sh
./setup_api_config.shEdit lib/config/api_config.dart and add your API keys. Never commit API keys to version control.
- Deploy Firestore Security Rules
firebase deploy --only firestore:rulesQuick Start
# Web
flutter run -d chrome
# Android
flutter run -d android
# iOS
flutter run -d ios
# Desktop (Windows/macOS/Linux)
flutter run -d windowsImportant Notes
- API Keys: At minimum, you need one AI provider API key (OpenRouter recommended for access to multiple models)
- Firebase Setup: Follow
FIREBASE_SETUP.mdcarefully for proper authentication and database configuration - Security Rules: Deploy Firestore security rules before using the app in production
- Cross-Platform: Tested on Android, iOS, Web, and Windows. macOS and Linux should work but may need additional testing
- Offline Mode: Messages are cached locally and synced when connection is restored
Contributing
This project is open-source and welcomes contributions! Feel free to fork, improve, and submit pull requests. Whether it’s adding new AI providers, improving the UI, or fixing bugs, all contributions are appreciated.
License
This project is licensed under the MIT License and is open-sourced for educational and professional use.