Skip to content

Latest commit

Β 

History

7 Commits

Folders and files

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

Repository files navigation

🎨 Neomorphic Chat Flutter

Neomorphic Chat Logo

A Flutter Chat Application with Modern Neomorphic Design

Flutter Dart BLoC License: MIT


πŸ“– Overview

Neomorphic Chat Flutter is a modern chat application that showcases advanced Flutter development skills, clean architecture principles, and beautiful neomorphic UI design. Built as a technical demonstration, this project implements a complete authentication system with persistent sessions and an interactive chatbot interface.

Note: This project was developed as a technical assignment to demonstrate Flutter development capabilities, clean architecture implementation, and modern UI/UX design skills.

πŸ“± App Screenshots

πŸš€ Onboarding Experience

Onboarding 1 Onboarding 2 Onboarding 3 Onboarding 4
Welcome Screen Feature Highlights Design Showcase Get Started

πŸ” Authentication Flow

Registration Login
User Registration Secure Login

πŸ’¬ Chat Interface

Chat Interface
Interactive Chat Experience

✨ Key Features

πŸ” Authentication System

  • User Registration with comprehensive form validation
  • Secure Login with credential verification
  • Persistent Sessions using SharedPreferences
  • Professional Onboarding experience with smooth transitions
  • Secure Logout with confirmation dialogs

πŸ’¬ Chatbot Interface

  • Interactive Chat with message bubbles and input field
  • Smart Bot Responses with keyword-based logic
  • Conversation Management with clear chat functionality
  • Real-time Message Updates with smooth animations
  • Responsive Design across different screen sizes

🎨 UI/UX Excellence

  • Neomorphic Design Language with soft shadows and depth
  • Custom Widget Library for consistent design patterns
  • Typography System with Poppins font family
  • Adaptive Icons with proper Android implementation
  • Smooth Animations and micro-interactions

πŸ—οΈ Architecture & Technical Stack

Clean Architecture Implementation

  • Business logic
  • Models (User, ChatMessage)
  • Repository interfaces

3. Data Layer

  • Repository implementations
  • Data sources (local storage)
  • External services

πŸ“‹ State Management with BLoC

The app uses the BLoC (Business Logic Component) pattern for state management, which:

πŸ“ lib/
β”œβ”€β”€ πŸ” Auth/                    # Authentication Layer
β”‚   β”œβ”€β”€ bloc/                   # BLoC State Management
β”‚   β”‚   β”œβ”€β”€ auth_bloc.dart      # Business Logic Component
β”‚   β”‚   β”œβ”€β”€ auth_event.dart     # User Actions & Events
β”‚   β”‚   └── auth_state.dart     # Application States
β”‚   β”œβ”€β”€ auth_provider.dart      # Abstract Auth Interface
β”‚   β”œβ”€β”€ auth_service.dart       # Authentication Service
β”‚   β”œβ”€β”€ cache_manager.dart      # Local Storage Management
β”‚   β”œβ”€β”€ exception.dart          # Custom Exception Handling
β”‚   └── mock_auth_provider.dart # Mock Implementation
β”‚
β”œβ”€β”€ πŸ“Š models/                  # Data Models
β”‚   β”œβ”€β”€ chat_message.dart       # Chat Message Structure
β”‚   β”œβ”€β”€ onboarding_page_model.dart # Onboarding Data
β”‚   └── user_model.dart         # User Data Structure
β”‚
β”œβ”€β”€ πŸ“± screens/                 # Presentation Layer
β”‚   β”œβ”€β”€ home_screen.dart        # Main Chat Interface
β”‚   β”œβ”€β”€ onboarding_page.dart    # User Onboarding
β”‚   β”œβ”€β”€ register_page.dart      # User Registration
β”‚   └── sign_in_page.dart       # User Authentication
β”‚
β”œβ”€β”€ πŸ› οΈ utilities/               # Shared Components
β”‚   β”œβ”€β”€ widgets/                # Custom Widget Library
β”‚   β”‚   β”œβ”€β”€ button_neomorphic.dart     # Neomorphic Buttons
β”‚   β”‚   β”œβ”€β”€ chat_bubble_neomorphic.dart # Chat UI Components
β”‚   β”‚   β”œβ”€β”€ chat_input_neomorphic.dart  # Message Input Widget
β”‚   β”‚   β”œβ”€β”€ dialog_neomorphic.dart      # Custom Dialog System
β”‚   β”‚   β”œβ”€β”€ logo_neomorphic.dart        # Branded Logo Widget
β”‚   β”‚   └── textfield_neomorphic.dart   # Input Field Components
β”‚   └── Text_styles.dart        # Typography System
β”‚
└── πŸš€ main.dart               # Application Entry Point

Technology Stack

  • Framework: Flutter 3.7.2+
  • Language: Dart
  • State Management: BLoC Pattern
  • Local Storage: SharedPreferences
  • Architecture: Clean Architecture
  • Design: Neomorphic UI/UX
  • Font: Poppins Typography

🎨 Design Philosophy

Neomorphic Design Elements

The application implements a comprehensive neomorphic design system featuring:

  • Soft UI Elements: Subtle shadows and highlights creating depth
  • Consistent Color Palette: Neutral grays with accent colors
  • Smooth Interactions: Gentle animations and state transitions
  • Accessibility Focus: High contrast and readable typography
  • Modern Aesthetics: Clean, minimalist interface design

Custom Component Library

All UI components are custom-built following neomorphic principles:

  • Reusable button components with consistent styling
  • Chat bubbles with depth and shadow effects
  • Input fields with soft, inset appearance
  • Dialog systems with branded styling β”‚ └── sign_in_page.dart # User login β”‚ β”œβ”€β”€ utilities/ # Utility classes and widgets β”‚ β”œβ”€β”€ widgets/ # Reusable widgets β”‚ β”‚ β”œβ”€β”€ button_neomorphic.dart # Custom buttons β”‚ β”‚ β”œβ”€β”€ chat_bubble_neomorphic.dart # Chat bubbles β”‚ β”‚ β”œβ”€β”€ chat_input_neomorphic.dart # Message input

πŸš€ Getting Started

Prerequisites

  • Flutter SDK (3.7.2 or higher)
  • Dart SDK
  • Android Studio / VS Code
  • Android Emulator or Physical Device

Installation

  1. Clone the repository

    git clone https://github.com/your-username/neomorphic_chat_flutter.git
    cd neomorphic_chat_flutter
  2. Install dependencies

    flutter pub get
  3. Generate app icons

    flutter pub run flutter_launcher_icons
  4. Run the application

    flutter run

Building for Release

  1. Build APK

    flutter build apk --release
  2. Build App Bundle (for Google Play Store)

    flutter build appbundle --release

οΏ½ App Walkthrough

Authentication Flow

  1. Onboarding Screen: Welcome interface with app introduction
  2. Registration: Create account with email/password validation
  3. Login: Secure authentication with credential verification
  4. Session Management: Automatic login for returning users

Chat Experience

  1. Welcome Message: Automated greeting upon login
  2. Interactive Chat: Type messages and receive bot responses
  3. Smart Responses: Keyword-based bot logic for demonstrations
  4. Conversation Management: Clear chat history when needed

Demo Bot Commands

Try these sample interactions:

  • "hi" or "hello" β†’ Greeting response
  • "help" β†’ Available commands
  • "joke" β†’ Random joke
  • "weather" β†’ Weather information
  • "time" β†’ Current time

πŸ§ͺ Technical Highlights

State Management with BLoC

  • Predictable State: Unidirectional data flow
  • Separation of Concerns: Business logic separated from UI
  • Testability: Easy unit testing of business logic
  • Scalability: Clean state management for complex apps

Authentication Architecture

// Example: Authentication Event Handling
class AuthBloc extends Bloc<AuthEvent, AuthState> {
  AuthBloc() : super(AuthStateLoggedOut()) {
    on<AuthEventSignUp>(_onSignUp);
    on<AuthEventSignIn>(_onSignIn);
    on<AuthEventSignOut>(_onSignOut);
  }
}

Custom Widget Implementation

// Example: Neomorphic Button Component
Widget neomorphicButton({
  required String text,
  required VoidCallback onPressed,
  Color? color,
}) {
  return Container(
    decoration: BoxDecoration(
      borderRadius: BorderRadius.circular(15),
      boxShadow: [
        // Neomorphic shadow implementation
      ],
    ),
    // Button implementation
  );
}

πŸ“Š Project Metrics

  • Lines of Code: ~2,000+
  • Custom Widgets: 8 reusable components
  • Screens: 4 main application screens
  • Models: 3 data structure implementations
  • Architecture Layers: 3-tier clean architecture

πŸ›‘οΈ Security & Best Practices

  • Input Validation: Comprehensive form validation
  • Error Handling: Custom exception management
  • Code Organization: Clean architecture principles
  • Documentation: Comprehensive code comments
  • Git Workflow: Professional commit practices

🀝 Contributing

This project welcomes contributions! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow Flutter/Dart style guidelines
  • Maintain clean architecture principles
  • Add tests for new features
  • Update documentation as needed

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Flutter Team for the incredible framework
  • BLoC Library developers for state management solution
  • Neomorphic Design community for UI inspiration
  • Open Source contributors and maintainers

πŸ“ž Contact

Vineet - Flutter Developer


⭐️ Star this repository if you found it helpful!

Built with ❀️ using Flutter

⭐️ If you find this project helpful, please give it a star on GitHub! ⭐️

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages