Skip to content

Latest commit

Β 

History

89 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ€– AI ChatBot

AI ChatBot App Icon

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.

✨ Features

  • πŸ” 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

πŸ› οΈ Tech Stack

Mobile App

  • 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

AI / Backend

  • Python
  • FastAPI
  • TensorFlow / Keras
  • Intent-based text classification model

πŸ—οΈ Project Structure

ai_chatbot_colab/
β”œβ”€β”€ ai_model/
β”œβ”€β”€ android/
β”œβ”€β”€ assets/
β”œβ”€β”€ ios/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ binding/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ theme/
β”‚   β”œβ”€β”€ utilities/
β”‚   └── view/
β”œβ”€β”€ test/
β”œβ”€β”€ web/
└── main.dart

πŸ“± Screenshots

Splash Screen Login Screen Home Screen Previous Chats Settings Screen Profile Screen

✨ Features

  • πŸ” 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

πŸ› οΈ Technologies & Packages

Flutter & Dart

The application was developed using Flutter and Dart.

State Management & Application Architecture

  • GetX β€” Used as an integrated solution throughout the application, including:

    • State management
    • Navigation
    • Dependency management
    • Application-level utilities

Local Storage

  • 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.

Networking & API

  • 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.

UI & Icons

  • 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 Handling

  • image_picker β€” Used for selecting images from:

    • Camera
    • Device gallery

External Links

  • url_launcher β€” Used for opening external links, including the developer's email contact and other external resources.

App Launch & Branding

  • 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.

Development Tools

  • flutter_lints β€” Recommended Dart and Flutter lint rules.
  • flutter_test β€” Flutter testing framework.

πŸ€– AI & Backend

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

Flutter Side

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

Python Side

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

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.


🎨 UI & User Experience

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:

TweenAnimationBuilder

which was used to create smooth UI animations without relying on an external animation package.


πŸš€ Getting Started

Prerequisites

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

Installation

Clone the repository:

git clone <repository-url>

Navigate to the project:

cd <project-folder>

Install Flutter dependencies:

flutter pub get

Run the application:

flutter run

Backend

The 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.


πŸ‘₯ Contributors

Abdalla-Medhat

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

Don-Youssef

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


πŸ“¦ Main Dependencies

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

πŸ“„ License

This project is developed for educational and portfolio purposes.


πŸ“¬ Contact

For questions, feedback, or suggestions, please use the contact information provided within the application.

About

AI-powered chatbot mobile application built with Flutter and a Python FastAPI backend, featuring local chat history, user authentication, and an intent-based AI model.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages