Skip to content

AttilaAKINCI/ChatterAI

Repository files navigation

Chatter AI

Chatter AI is a Gemini AI powered chatting app which can simulate mutual chatting behaviour.

If you find my repository helpful, you can buy me a coffee to see more PoC samples 🍻☕️

APK Link (https://drive.google.com/file/d/1F-NiE28cLRZd3_tpXKRD3mdVVeL9iPMa/view?usp=sharing)

Note

Chatter AI is a standalone application which handles/wraps all of necessary simulation/backend logics inside to simulate real time chatting experince.

How to run in your local

In order to run project in your local be aware below points ->

  • Android Studio Iguana | 2023.2.1 RC 1 | Build #AI-232.10227.8.2321.11379558, built on January 30, 2024
  • Checkout master branch
  • Add below parameters to your local.properties file.
    • SERVICE_ENDPOINT_BASE_URL=https://randomuser.me/
    • GEMINI_API_KEY={Your_Gemini_API_Key_Here} -> You can follow this link to checkout Gemini API documentation.

3rd party lib. usages & Tech Specs

WireFrame

ScreenShots

Business Logics

Chatter AI consist of 4 different screeens namely Splash, Login, Dashboard, Messaging.

General capabilities of Chatter AI:

  • Creation an account
  • Login to an account
  • Logout from an account
  • Remember last logged in user
  • List chat sessions
  • Match with random chat mate
  • Show chat history
  • Send message to chat mate
  • Receive Gemini AI response as reply
  • Receive chat mate's response
UI Flow Basics
  • UI Flow starts with Lottie animation and app navigates to Login Screen or Dashboard Screen by checking logged in status of any user.
  • On Login Screen below validations are applied for given input text
    • Input text can not be blank
    • If it's login button action, user should be registered before with given name input
    • If it's register button action, user should not be registered before with given name input.
  • Login Button navigates user to Dashboard screen
  • Register button fetches random user information via randomuser.me public api and overrides name with given text. Then saves it into local database and logs user in.
  • Logged in user will be remembered for second app launch.
  • Dashboard Screen lists user's chat sessions.
    • Logout button logs user out and clears logged in status.
    • Start new chat button generates new user via randomuser.me api and creates a chat session with new fetched user.
  • Tap actions for any row navigates user to Messaging Screen.
  • Messaging history will be restored for each chat session.
  • User can send message by using bottom text field and send button.
  • Integrated chat simulation engine will pick for each send message and will reply it with Gemini AI response, if valid api key provided. As a fallback mechanism (in case of any issue with Gemini) simulation engine will reply with Answer for '<User's message>' -> {random integer value} format

App Video

Launch & Login   Direct Dashboard & Logut  Login Validations   Find Chat Mate    Messaging           

License

The code is licensed as:

Copyright 2021 Attila Akıncı

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.