Neo-Chat

Table of Contents

This is a list of all the sections in this post. Click on any of them to jump to that section.

Neo-Chat

Flutter Dart Firebase OpenAI Anthropic

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

  • Flutter - Cross-platform UI toolkit for building native applications
  • Dart - Programming language optimized for client development
  • Provider - State management solution for Flutter

Backend & Infrastructure

AI Integration

Prerequisites

Before you begin, ensure you have the following:

Installation & Setup

  1. Clone the repository
git clone https://github.com/Rahat-Kabir/neo-chat.git
cd neo-chat/neo_chat
  1. Install dependencies
flutter pub get
  1. Configure Firebase
  • Follow the instructions in FIREBASE_SETUP.md
  • Copy lib/firebase_options.dart.template to lib/firebase_options.dart
  • Update with your Firebase configuration
  1. Configure API Keys
# Windows
setup_api_config.bat
 
# Linux/Mac
chmod +x setup_api_config.sh
./setup_api_config.sh

Edit lib/config/api_config.dart and add your API keys. Never commit API keys to version control.

  1. Deploy Firestore Security Rules
firebase deploy --only firestore:rules

Quick Start

# Web
flutter run -d chrome
 
# Android
flutter run -d android
 
# iOS
flutter run -d ios
 
# Desktop (Windows/macOS/Linux)
flutter run -d windows

Important Notes

  • API Keys: At minimum, you need one AI provider API key (OpenRouter recommended for access to multiple models)
  • Firebase Setup: Follow FIREBASE_SETUP.md carefully 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.