A sophisticated Flutter-based chat application featuring a space-themed UI that integrates with the Gemini Pro language model.
- Space-themed user interface with custom animations
- Real-time chat integration with Gemini Pro AI
- Customizable user and bot avatars
- Cross-platform support (Android, iOS, Windows, macOS, Linux)
- High-performance image caching and preloading
- Message grouping and timestamps
- Dark mode optimized design
- Typing indicators
- Scroll-to-bottom functionality
- Message copy and formatting support
- Flutter/Dart (SDK ^3.5.3)
- BLoC Pattern for state management (bloc, flutter_bloc)
- Dio for HTTP requests
- Lottie for animations (^3.1.3)
- Google's Gemini Pro API
- Custom image caching system
- Cupertino Icons (^1.0.8)
lib/
├── bloc/
│ ├── chat_bloc.dart
│ ├── chat_event.dart
│ └── chat_state.dart
├── utils/
│ └── constants.dart
├── repos/
│ └── chat_repo.dart
├── model/
│ └── chat_messgae_model.dart
├── models/
│ └── profile_model.dart
├── pages/
│ └── home_page.dart
├── screens/
│ └── profile_selector_screen.dart
└── main.dart
- Flutter SDK (latest stable version)
- Dart SDK
- Android Studio/VS Code with Flutter plugins
- Gemini Pro API key
- Clone the repository:
git clone https://github.com/WWI2196/Space-GPT.git
cd space_gpt
- Install dependencies:
flutter pub get
- Configure API key in constants.dart:
const String apiKey = 'YOUR_API_KEY_HERE';
- Run the application:
flutter run
theme: ThemeData(
fontFamily: "Space Mono",
brightness: Brightness.dark,
scaffoldBackgroundColor: Colors.grey.shade900,
primaryColor: Colors.pink.shade900,
)
Add custom avatars in:
- user_profiles
- bot_profiles
- Image preloading and caching
- Optimized message rendering with RepaintBoundary
- Efficient message grouping
- Virtual scrolling implementation
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature
) - Commit changes (
git commit -m 'Add AmazingFeature'
) - Push to branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.