Professional Documents
Culture Documents
Report
Report
Report
An
Android Application
Submitted By
Name:
University Roll No.
SUBMITTED TO: -
This is to certify that the project “INVESTING BUDDY ” submitted by KANAV and
VINEET in partial fulfillment of the requirements for the award of B.Tech of
“COMPUTER ENGINEERING” to Chandigarh Group of College, is a record of
student’s own work carried out by them under my supervision and guidance.
PROJECT GUIDE
Neetika Gupta
Computer Science & Engineering
Chandigarh Group Of College Landran
ACKNOWLEDGEMENT
We are highly grateful to the HOD Department of Computer Science &
Technology
CGC COLLEGE OF ENGINEERING, LANDRAN for providing this
opportunity to make a major project at CGC COLLEGE OF ENGINEERING ,
we would like to express my gratitude to other faculty members of the
Computer Science department for providing academic inputs, guidance &
encouragement.
AND
1 CHAPTER 1: INTRODUCTION 5
2 CHAPTER 2: API’S USED 7
2.1 CoinGecko 8
2.2 NASDAQ 9
2.3 ALTERNATIVE.ME 10
SNAPSHOTS…................................................................................................................ 22
REFERENCES… ..............................................................................................................29
INTRODUCTION
Features it provides:
Investing buddy provides real time prices of Stocks listed under NASDAQ and real
time prices for crypto currencies.
News plays a vital role in an investing journey. Investors need to watch news for proper
entry and exit in the market .
Due to multiple Stocks and currencies its hasling task to remember when to invest
and in which quantity so investing buddy provides a note section where one can make
their on notes .
Investors like Warren Buffet says: I am greedy when others are fearful and I am
fearful when others are greedy .In order to understand current mood of market
investing buddy provides a rainbow chart, mmi indicator and fear and greed index
respectively for stock and crypto market.
5 INVESTMENT CALCULATORS:
1 Sip Calculator
2 Lumpsum Calculator
3 Real Estate price calculator
6 PORTFOLIO BUILDING:
Investing buddy provides a space where one can track their investment in all brokers account
with all that all other investments like bank fd , gold silver currencies in one application and
one can save them in jpg format in gallery section which is one click away in structured
format using pie chart as older saying is that a picture worth a thousand words.
API’S USED
API:
Coingecko Api:
The Nasdaq Data Link API provides a flexible and efficient method for accessing
real-time exchange data and other financial information. Here’s a concise overview:
ALTERNATIVE.ME
● Background:
○ CoinMarketCap discontinued its public API, prompting Alternative.me
to step in and provide a new public API for coin and token prices.
○ Developers who previously used CoinMarketCap’s v1 or v2 endpoints
can seamlessly switch to Alternative.me’s endpoints without altering
their existing code.
● Importance of Images:
○ Images play a crucial role in today’s digital landscape. They visually
represent items, objects, or text.
○ Benefits include enhanced online marketing (images attract more
engagement), market research (analyzing trends), and audience
understanding.
TOOLS USED
KOTLIN:
Kotlin's interoperability with Java means that you don’t have to adopt Kotlin all at
once. You can have projects with both Kotlin and Java code.
XML
XML (Extensible Markup Language) for Android: XML serves as a critical component
in Android app development, primarily used for defining the user interface (UI)
layout. Here are the key points:
1. UI Layout Definition:
○ In Android, XML files describe how UI elements (widgets) should be
arranged on the screen.
○ The activity_main.xml file, for instance, defines the layout hierarchy
using ViewGroup containers (e.g., LinearLayout, RelativeLayout) and
widgets (e.g., TextView, EditText).
2. Hierarchy of Views:
○ Android UI is built as a hierarchy of views (widgets) within layouts.
○ ViewGroup containers control the positioning of child views.
○ Widgets represent UI elements (buttons, text fields, etc.).
SQLITE
SQLite is an integral part of Android app development, and it plays a crucial role in
managing local data storage. Let’s explore what SQLite is and how it fits into Kotlin-
based Android applications:
1. What is SQLite?
○ SQLite is a lightweight, self-contained, open-source relational database
management system (RDBMS).
○ It stores data in a structured format, similar to traditional databases, but
with minimal overhead.
○ Unlike client-server databases (such as MySQL or PostgreSQL),
SQLite operates directly within the application process.
2. Key Features of SQLite:
○ Embedded Database: SQLite is embedded directly into the Android
app, eliminating the need for a separate database server.
○ Zero Configuration: No complex setup or administration required; the
database file resides on the device.
○ Cross-Platform: SQLite databases can be easily copied between
different platforms (32-bit and 64-bit systems).
○ ACID Compliance: Supports transactions, ensuring data consistency
and reliability.
○ Small Memory Footprint: Ideal for mobile devices with limited
resources.
3. Usage in Android Development:
○ Local Data Storage: Android apps use SQLite to store data locally,
such as user preferences, cached content, and structured data.
○ Content Providers: SQLite databases power Android’s built-in content
providers, allowing data sharing between apps.
○ Android APIs: The Android SDK provides classes and methods to
interact with SQLite databases.
4. Integration with Kotlin:
○ Kotlin, being fully interoperable with Java, seamlessly works with
SQLite.
○ Developers can create, query, and manage SQLite databases using
Kotlin code.
○ Kotlin’s concise syntax and null safety enhance database-related
operations.
5. Common Use Cases:
○ User Profiles: Store user information (names, emails, etc.) locally.
○ Caching: Cache API responses or frequently accessed data.
○ Offline Mode: Enable app functionality even when the device is offline.
○ Structured Data: Manage structured data (e.g., lists, settings)
efficiently.
In summary, SQLite is the go-to choice for local data storage in Android apps.
Whether you’re building a simple to-do list or a complex note-taking app,
understanding SQLite and its integration with Kotlin is essential.
MVVM
1. Components of MVVM:
○ Model: Represents the data and business logic. It encapsulates data
sources (local databases, APIs, etc.) and performs data manipulation.
○ View: Represents the UI layer. It displays data to the user and captures
user interactions.
○ ViewModel: Acts as a mediator between the Model and the View. It
holds the UI-related data and exposes it to the View. ViewModel
doesn’t directly reference the View, ensuring better decoupling.
2. How MVVM Works:
○ The View observes changes in the ViewModel’s data (using LiveData
or other observable mechanisms).
○ When the user interacts with the View (e.g., clicks a button), the
ViewModel processes the action and updates the Model if needed.
○ The updated data flows back to the View, which reflects the changes.
3. Benefits of MVVM:
○ Separation of Concerns: MVVM cleanly separates UI logic (View)
from business logic (ViewModel) and data (Model).
○ Testability: ViewModel and Model can be unit-tested independently.
○ Flexibility: ViewModel survives configuration changes (e.g., screen
rotation) without losing data.
○ Reusability: ViewModel can be shared across different UI components
(e.g., fragments, activities).
4. MVVM in Android:
○ ViewModel: Android’s ViewModel class (part of Jetpack) serves as the
ViewModel in MVVM. It survives configuration changes and holds
UI-related data.
○ Data Binding: MVVM pairs well with data binding, allowing direct
binding of ViewModel data to UI elements in XML layouts.
○ LiveData: LiveData (also part of Jetpack) enables reactive updates
from ViewModel to View.
5. Implementing MVVM:
○ Define your Model (data sources, repositories, etc.).
○ Create a ViewModel that exposes necessary data to the View.
○ Design your View (XML layout) and bind it to the ViewModel using data
binding.
○ Observe ViewModel data changes in the View.
Certainly! JSON (JavaScript Object Notation) is a widely used data exchange format
in Android development.
DEPENDENCY
1. Gradle Dependencies:
○ The Gradle build system in Android Studio allows you to include
external binaries or other library modules as dependencies in your
project.
○ Dependencies can be located on your machine or in remote
repositories.
○ When you add a dependency, any transitive dependencies it declares
are automatically included as well.
2. Types of Dependencies:
○ Library Dependencies:
■ These are external libraries or modules that enhance your app’s
functionality.
■ For example, you might use libraries like Glide for image loading
or Retrofit for network requests.
○ Plugin Dependencies:
■ These are specific to the Android Gradle plugin (AGP).
■ Examples include the Android Gradle plugin itself or other
plugins that enhance the build process.
○ Local Dependencies:
■ You can also include local library modules (other parts of your
own project) as dependencies.
MPAndroidChart is a powerful chart library for Android that allows you to create
various types of charts and graphs in your app. Here are the key points about it:
1. Features:
○ Supports various chart types, including line charts, bar charts, pie
charts, radar charts, bubble charts, and candlestick charts.
○ Provides features like scaling, panning, and animations for interactive
chart experiences.
○ Highly customizable with options to configure colors, labels, legends,
and more.
2. Integration:
○ Gradle is the recommended way to add MPAndroidChart as a
dependency in your Android project.
○ Add the following lines to your build.gradle file:
repositories {
dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'}
Glide is an excellent image loading and caching library for Android. It simplifies the
process of fetching, decoding, and displaying images from various sources. Here are
the key points about Glide:
1. Features:
○ Glide supports fetching and displaying various media types, including
video stills, images, and animated GIFs.
○ It wraps media decoding, memory and disk caching, and resource
pooling into a simple and easy-to-use interface.
○ The library is highly customizable and efficient.
2. Integration:
○ To add Glide to your Android project, include the following dependency
in your build.gradle file:
dependencies {
implementation 'com.github.bumptech.glide:glide:4.16.0'
○ }
Google AdMob
Google AdMob provides a way for you to earn more money by matching ads to your
app based on the criteria you set. Here’s how you can integrate AdMob into your
Android app:
1. App Prerequisites:
○ Ensure your app’s build file meets the following requirements:
■ Minimum SDK version of 19 or higher.
■ Compile SDK version of 33 or higher.
○ Set up your app in your AdMob account:
■ Sign in to or sign up for an AdMob account.
■ Register your app with AdMob to obtain a unique AdMob App
ID. You’ll need this later.
2. Configure Your App:
○ In your project-level build.gradle file, include Google’s Maven
repository and Maven central repository:
buildscript {
repositories {
google()
mavenCentral()
allprojects {
repositories {
google()
mavenCentral()
○
○ Add the dependencies for the Google Mobile Ads SDK to your
module’s app-level Gradle file (app/build.gradle):
dependencies {
implementation 'com.google.android.gms:play-services-ads:23.0.0'
○ }
SNAPSHOTS
HOME SCREEN
CRYPTO & STOCK WINDOW
NOTES WINDOW
Calculators
https://kotlinlang.org/
https://www.investing.com/
https://developer.android.com/
https://github.com/
https://admob.google.com/