Git Product home page Git Product logo

attilaakinci / chatterai Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.77 MB

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

Kotlin 100.00%
mvvm room-database timber hilt clean-architecture coil-compose datastore-android gradle-version-catalogs kotlin-android kotlin-dsl ktor-client lottie-animation mvi-architecture gemini-ai jetpack-compose material-3-design junit5 mockk-android compose-destinations coroutines-android

chatterai's Introduction

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.

chatterai's People

Contributors

attilaakinci avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.