Professional Documents
Culture Documents
(Full) Mygpt Ai Chating App
(Full) Mygpt Ai Chating App
SYNOPSIS
1
1.1 SYSTEM SPECIFICATION
● Processor : i3
● Hard Disk : 20 GB
● Memory : 4GB RAM
XML:
● Markup Language: XML uses tags to define the structure and meaning of
data within a document. Tags are enclosed in angle brackets (< >) and can
be nested to represent hierarchical relationships.
2
● Extensibility: The "eXtensible" in XML refers to its extensibility,
meaning that users can define their own customized tags and document
structures to suit specific needs or applications. This flexibility allows
XML to adapt to various data formats and requirements.
3
KOTLIN :
4
● Functional Programming Support: Kotlin supports functional
programming paradigms, including higher-order functions, lambda
expressions, and immutable data structures. These features enable concise
and expressive code, promote code reuse, and facilitate writing code in a
more declarative style.
● Smart Casts and Type Inference: Kotlin's type system includes smart
casts, which automatically cast types within a certain scope when certain
conditions are met, reducing the need for explicit type checks and casts.
Additionally, Kotlin's type inference capabilities allow developers to omit
type declarations in many cases, resulting in cleaner and more readable
code.
● Data Classes: Kotlin provides a concise syntax for defining classes whose
primary purpose is to hold data. Data classes automatically generate
boilerplate code for equals(), hashCode(), toString(), and copy() methods,
making them ideal for modeling immutable data.
ANDROID:
5
● Application Ecosystem: Android has a vast ecosystem of applications
available through the Google Play Store and other third-party app stores.
These applications cover a wide range of categories, including
productivity, entertainment, communication, gaming, and more, providing
users with a rich and diverse selection of software.
6
API:
● Data Formats: APIs define the data formats used for representing and
exchanging information between systems. Common data formats include
JSON (JavaScript Object Notation), XML (eXtensible Markup
Language), and Protocol Buffers, among others.
● Endpoints and Methods: APIs expose endpoints, which are URLs that
clients can send requests to, along with methods or operations that clients
can perform on those endpoints. Endpoints represent specific resources or
functionalities provided by the API.
7
● Rate Limiting and Quotas: APIs may implement rate limiting and usage
quotas to prevent abuse and ensure fair usage of resources. Rate limiting
restricts the number of requests a client can make within a certain time
period, while quotas limit the total amount of usage allowed for a given
period.
● Versioning: APIs may evolve over time, with new features being added or
existing features being modified or deprecated. Versioning allows
developers to specify which version of the API they are targeting and
ensures backward compatibility with existing client applications.
ANDROID STUDIO:
8
● Code Editor: Android Studio features a powerful code editor with syntax
highlighting, code completion, code refactoring, and other
productivity-enhancing features. It supports multiple programming
languages, including Java, Kotlin, and XML (for layout files).
● Layout Editor: Android Studio includes a visual layout editor that allows
developers to design user interfaces (UIs) for their apps using a
drag-and-drop interface. Developers can preview the UI in real-time
across different device screen sizes and orientations.
● Gradle Build System: Android Studio uses the Gradle build system to
automate the build process for Android apps. Gradle allows developers to
define dependencies, configure build variants, and customize the build
process through build scripts written in Groovy or Kotlin.
9
● Extensibility: Android Studio is highly extensible, with support for
plugins and extensions that enhance its functionality. Developers can
install plugins for additional features, code generators, template libraries,
and integration with third-party services.
SQLite:
10
● ACID Compliance: SQLite is ACID (Atomicity, Consistency, Isolation,
Durability) compliant, ensuring that database transactions are reliable,
consistent, and durable. It supports transactions, which allow multiple
database operations to be grouped together and treated as a single unit of
work.
● Small Footprint: SQLite has a small memory and disk footprint, making it
well-suited for embedded and mobile environments with limited
resources. The SQLite library is typically only a few hundred kilobytes in
size, making it ideal for use in mobile apps.
● Open Source: SQLite is open source and released into the public domain,
allowing developers to use, modify, and distribute it freely without any
licensing restrictions.
JETPACK COMPOSE:
11
development experience. Developers can take advantage of Kotlin
language features such as extension functions, lambdas, and DSLs
(domain-specific languages) to define UI components and layouts.
12
2. SYSTEM STUDY
2.1.1 DRAWBACKS:
13
2.2.1 FEATURES:
14
3. SYSTEM DESIGN AND DEVELOPMENT
The file design of the MyGPT AI Chatting App includes organizing the
project files and resources efficiently to ensure a structured and maintainable
codebase. The project files are categorized based on their functionality and
purpose, such as UI components, backend logic, data models, and resource files.
Additionally, proper naming conventions and directory structures are followed
to enhance readability and ease of navigation for developers.
15
3.5 SYSTEM DEVELOPMENT
2. BACKEND MODULE
Description: Manages server-side functionalities and communication.
Features:
● Communication with OpenAI’s GPT-3.5 API.
● User preferences and conversation history storage.
3. DATABASE MODULE
Description: Responsible for data storage and retrieval.
Features:
● Secure management of user data.
● Integration with backend for seamless information flow.
16
5. TASK AUTOMATION MODULE
Description:
Enables automation of tasks based on user commands.
Integrated within the backend.
6. SECURITY MODULE
Description: Ensures user data privacy and secure communication.
Features:
● User authentication.
● Clear communication about data usage practices.
17
4. TESTING AND IMPLEMENTATION
4.1 TESTING:
18
4.1.3 USER ACCEPTANCE TESTING (UAT):
4.2 IMPLEMENTATION:
19
5. CONCLUSION
In conclusion, the MyGPT AI Chatting App aims to revolutionize the way users
interact with chat applications, providing them with an intelligent and adaptable
platform for communication, task management, and information retrieval. With
its advanced AI capabilities and user-centric design, the app offers a
sophisticated yet accessible personal assistant for Android users, enhancing
their productivity and overall user experience.
20
BIBLIOGRAPHY
● Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P.,
... & Amodei, D. (2020). Language models are few-shot learners. arXiv
preprint arXiv:2005.14165.
● Google. (2022). Android Developers. Retrieved from
https://developer.android.com/
● OpenAI. (2022). OpenAI GPT. Retrieved from https://openai.com/gpt
● SQLite. (2022). SQLite. Retrieved from
https://www.sqlite.org/index.html
● Jetpack Compose. (2022). Jetpack Compose. Retrieved from
https://developer.android.com/jetpack/compose
● Python Software Foundation. (2022). Python. Retrieved from
https://www.python.org/
● Android Studio. (2022). Android Studio. Retrieved from
https://developer.android.com/studio
● The Apache Software Foundation. (2022). Apache License, Version 2.0.
Retrieved from https://www.apache.org/licenses/LICENSE-2.0
● Kotlin. (2022). Kotlin. Retrieved from https://kotlinlang.org/
● Material Design. (2022). Material Design. Retrieved from
https://material.io/design
● GitHub. (2022). GitHub. Retrieved from https://github.com/
21
APPENDICES
Level 0
22
Level 1
23
C. SAMPLE CODING
http://www.apache.org/licenses/LICENSE-2.0
<application
android:name=".ChatGPTApp"
android:allowBackup="true"
android:allowClearUserData="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@drawable/openai"
android:label="@string/app_name"
android:roundIcon="@drawable/openai"
android:supportsRtl="true"
android:theme="@style/Theme.ChatGPTAndroid"
tools:targetApi="31">
<profileable
android:shell="true"
tools:targetApi="29" />
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<intent-filter>
24
<action android:name="android.intent.action.MAIN" />
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="com.skydoves.chatgpt.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="com.skydoves.chatgpt.initializer.AppInitializer"
android:value="androidx.startup" />
</provider>
</application>
</manifest>
package com.skydoves.chatgpt
import android.app.Application
import com.skydoves.snitcher.Snitcher
import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp
class ChatGPTApp : Application() {
package com.skydoves.chatgpt
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.runtime.CompositionLocalProvider
import com.skydoves.chatgpt.core.designsystem.composition.LocalOnFinishDispatcher
import com.skydoves.chatgpt.core.designsystem.theme.ChatGPTComposeTheme
import com.skydoves.chatgpt.core.navigation.AppComposeNavigator
import com.skydoves.chatgpt.ui.ChatGPTMain
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
25
D. SAMPLE SCREEN
26