A modern AI-powered chatbot mobile application built with Flutter, featuring a clean and responsive UI, local chat history, user profile management, and an AI model served through a Python API.
- π User authentication with login and sign-up
- π€ AI-powered conversations
- π¬ Previous conversations and chat history
- π€ Profile page and profile picture management
- π· Set profile picture using the camera or gallery
- π Runtime permission handling for camera and internet access
- ποΈ Clear stored conversations/data
- β Complete account deletion
- π§ Email and password management
- π Light and dark themes
- π Privacy Policy
- π¨ Custom app icon and splash screen
- β¨ Smooth animations throughout the app
- π Improved dialogs and user feedback
- πΎ Local data storage
- π API connectivity and internet-connection handling
- Flutter / Dart
- GetX β state management and navigation
- SQLite (sqflite) β local data storage
- HTTP β API communication
- Inter β application-wide font
- Lucide Icons β icons
- Image Picker β camera/gallery image selection
- Path Provider β local file handling
- URL Launcher β opening external links
- Flutter Native Splash β custom splash screen
- Python
- FastAPI
- TensorFlow / Keras
- Intent-based text classification model
ai_chatbot_colab/
βββ ai_model/
βββ android/
βββ assets/
βββ ios/
βββ lib/
β βββ binding/
β βββ controllers/
β βββ middleware/
β βββ services/
β βββ theme/
β βββ utilities/
β βββ view/
βββ test/
βββ web/
βββ main.dart
- π User account creation and authentication
- π¬ AI-powered conversations
- ποΈ Chat history management
- π Resume previous conversations from chat history
- ποΈ Delete individual conversations
- π€ Profile management
- πΌοΈ Change or remove profile picture
- π· Select images from the camera or gallery
- πΎ Local data storage
- π Privacy-focused local data handling
- π Light and dark themes
- π Change account password
- π§ Change account email
- ποΈ Delete the entire user account
- π Built-in Privacy Policy
- βοΈ Contact the developer through email
- π¨ Custom UI with animations
- π± Responsive Flutter interface
The application was developed using Flutter and Dart.
-
GetX β Used as an integrated solution throughout the application, including:
- State management
- Navigation
- Dependency management
- Application-level utilities
- sqflite β Local SQLite database for storing application data.
- path β Handling database and file system paths.
- path_provider β Accessing application directories on the device.
The application relies heavily on local storage, which helps keep user data on the device and supports a privacy-focused approach.
- http β Used to communicate between the Flutter application and the backend API.
The Flutter application communicates with a Python-based backend that provides access to the AI model.
- Cupertino Icons β iOS-style icons.
- Lucide Icons β Additional modern icons not available in the default Flutter icon set.
- TweenAnimationBuilder β Used to create custom UI animations and transitions.
-
image_picker β Used for selecting images from:
- Camera
- Device gallery
- url_launcher β Used for opening external links, including the developer's email contact and other external resources.
- flutter_native_splash β Used to customize the application's splash screen and branding.
- flutter_launcher_icons β Used to generate application launcher icons for Android and iOS.
- flutter_lints β Recommended Dart and Flutter lint rules.
- flutter_test β Flutter testing framework.
The AI system is powered by a machine-learning model developed using Python.
The project is divided into two main parts:
Flutter Application
β
β HTTP Requests
βΌ
Python Backend API
β
βΌ
AI Model
β
βΌ
Generated Response
The Flutter application handles:
- User interface
- User interactions
- Chat interface
- API communication
- Local data storage
- User settings
- Profile management
- Image handling
- Authentication-related screens
- Theme management
The Python backend handles:
- API endpoints
- AI model loading
- Processing user messages
- Generating AI responses
- Communication between the Flutter application and the AI model
Privacy was an important consideration during the development of the application.
User-related application data is stored locally on the device, reducing the need to send unnecessary personal data to external services.
The application also provides a dedicated Privacy Policy explaining how data is handled.
The application was designed with a focus on providing a clean and simple user experience.
The Flutter UI includes custom layouts, reusable styling, responsive elements, and animations.
One of the animation techniques used in the application is Flutter's:
TweenAnimationBuilderwhich was used to create smooth UI animations without relying on an external animation package.
Make sure you have the following installed:
- Flutter SDK
- Dart SDK
- Android Studio or another Flutter-compatible IDE
- A connected Android/iOS device or emulator
- Python environment for running the backend
Clone the repository:
git clone <repository-url>Navigate to the project:
cd <project-folder>Install Flutter dependencies:
flutter pub getRun the application:
flutter runThe AI backend must also be running for the chatbot functionality to work.
The Flutter application communicates with the Python backend through its API endpoint.
Configure the API endpoint according to your local/server environment before running the application.
Flutter Developer
Responsible for:
- Complete Flutter UI implementation
- Application screens and user experience
- GetX application architecture
- API integration from the Flutter side
- Local SQLite database integration
- Local data management
- Image handling using camera and gallery
- Theme system and Light/Dark mode
- UI animations
- Profile and account management
- Chat history functionality
- Settings and privacy-related screens
- API communication and error handling
GitHub: @Abdalla-Medhat
AI / Backend Developer
Responsible for:
- AI model development
- Model training and preparation
- Python backend
- API endpoints
- AI model integration with the backend
- Backend-side processing of chatbot requests
GitHub: @Don-Youssef
| Package | Purpose |
|---|---|
get |
State management, navigation, dependency management, and application utilities |
sqflite |
Local SQLite database |
path |
File and database paths |
path_provider |
Application storage directories |
http |
API communication |
lucide_icons |
Additional icons |
url_launcher |
Opening external links and email |
image_picker |
Camera and gallery image selection |
flutter_native_splash |
Splash screen and branding |
flutter_launcher_icons |
Application launcher icons |
cupertino_icons |
iOS-style icons |
flutter_lints |
Dart/Flutter linting |
flutter_test |
Testing |
This project is developed for educational and portfolio purposes.
For questions, feedback, or suggestions, please use the contact information provided within the application.





