Report

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

INVESTING BUDDY

An
Android Application

SUBMITTED IN PARTIAL FULFILMENT OF THE


REQUIREMENTS FOR THE AWARD OF

Degree of Bachelor of Technology in Computer Science & Engineering

Submitted By
Name:
University Roll No.

SUBMITTED TO: -

Department of Computer Science & Technology


CGC COLLEGE OF ENGINEERING, LANDRAN
CERTIFICATE

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

We would like to express our deepest appreciation to all those who


provided us the possibility to complete this report.
And everyone who helped us to gain knowledge while developing this
project
TABLE OF CONTENTS

CGC COLLEGE OF ENGINEERING, MOHALi 1


CERTIFICATE 2
ACKNOWLEDGEMENT 3

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

3 CHAPTER 3: TOOLS USED 11


3.1 KOTLIN 11
3.2 XML 12
3.3 SQLITE 13
3.4 MVVM 15
3.5 JSON 17
4 DEPENDENCIES 18
MPChart 19
Glide 20
Admob 21

SNAPSHOTS…................................................................................................................ 22

REFERENCES… ..............................................................................................................29
INTRODUCTION

INVESTING BUDDY is an commercial (ad based earning)android application built


using kotlin,xml, sqlite ,retrofit and mvvm structure .It uses google admob services for
revenue. It's an investment tracker application where one can track their investment
which can be in multiple accounts in one application in the form of a pie chart.

Features it provides:

1 Stock market & Crypto market indices screening:

Investing buddy provides real time prices of Stocks listed under NASDAQ and real
time prices for crypto currencies.

2 Real estate and financial market news :

News plays a vital role in an investing journey. Investors need to watch news for proper
entry and exit in the market .

3 Investment Note building:

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 .

4 MMI (MARKET MOOD INDEX):

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:

Investing buddy comes with calculators :

1 Sip Calculator

2 Lumpsum Calculator
3 Real Estate price calculator

4 Emi Price Calculator

6 Commodity Calculator(Gold & Silver).

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:

An API (short for Application Programming Interface) serves as a vital bridge


between different software components, enabling seamless communication and data
transfer. Imagine APIs as the connectors that allow various parts of a complex
system to work together harmoniously. Here’s what you need to know:

● Definition and Purpose:


○ An API is a set of protocols and instructions written in programming
languages (such as C++, Java, or JavaScript). These instructions
define how two software components will communicate with each
other.
○ APIs are essential because they allow developers to create powerful,
resilient, and secure applications by connecting small, discrete chunks
of code.
○ Think of APIs as the “language” spoken by different software
components—they enable them to exchange information effectively.
● How APIs Work:
○ APIs operate behind the scenes, allowing users to locate and retrieve
specific information.
○ Consider a weather app: It uses APIs to fetch real-time weather data
from external services (like OpenWeatherMap) and display it to users.
○ APIs act as intermediaries, ensuring that requests from one part of the
system reach the appropriate destination (e.g., fetching stock prices,
accessing a database, or interacting with hardware).

Coingecko Api:

CoinGecko API is a powerful and comprehensive cryptocurrency data API trusted


by thousands of traders, developers, and industry builders. Here’s a concise
summary of its features:

● Real-Time Crypto Price Data:


○ Access real-time prices, market data, and trading pairs for over 13,000
cryptocurrencies.
○ Retrieve data for tokens tracked across 100+ blockchain networks and
800+ decentralized exchanges.
○ Explore NFT collections with floor prices and historical data from 22
marketplaces.
● One API for All Crypto Market Data:
○ CoinGecko’s API provides a unified solution for retrieving crypto price,
market data, and metadata.
○ Whether you’re interested in Bitcoin, Ethereum, or altcoins, this API
covers it all.
NASDAQ:

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:

● Purpose and Features:


○ Nasdaq Data Link APIs offer highly scalable and robust real-time stock
market data.
○ Developers can access fundamental information, historical prices,
financial ratios, indexes, options, volatility, earnings estimates, and
more.
○ These APIs streamline data delivery, allowing effortless integration of
real-time data from various sources.

ALTERNATIVE.ME

Alternative.me Crypto API is a valuable resource for accessing real-time data on


various cryptocurrencies. Here’s a concise summary of its features:

● 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 is a statically typed, general-purpose programming language developed by


JetBrains, that has built world-class IDEs like IntelliJ IDEA, PhpStorm, Appcode,
etc. It was first introduced by JetBrains in 2011 and is a new language for the JVM.
Kotlin is an object-oriented language, and a “better language” than Java, but still be
fully interoperable with Java code.

Kotlin is sponsored by Google, announced as one of the official languages for


Android Development in 2017.

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

MVVM (Model-View-ViewModel) is an architectural pattern widely used in Android


app development. It promotes a structured separation of concerns, making
applications more maintainable, testable, and scalable. Let’s dive into the key
aspects of 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.

In summary, MVVM promotes a structured approach to Android development,


making apps more robust and maintainable.
JSON

Certainly! JSON (JavaScript Object Notation) is a widely used data exchange format
in Android development.

● Purpose and Importance:


○ JSON serves as a lightweight, structured language for data
interchange.
○ It is an alternative to XML due to its simplicity and efficiency.
● Key Features:
○ Lightweight: JSON files are concise and easy to read.
○ Language-Independent: JSON can be used with any programming
language.
○ Key-Value Pairs: Data is represented as key-value pairs (e.g., "name":
"John").
○ Arrays: JSON supports arrays (lists) of values.
● Usage in Android:
○ Data Exchange: Android apps use JSON to exchange data with
servers (e.g., fetching weather forecasts, user profiles).
○ Parsing: Android provides classes like JSONObject and JSONArray to
parse and manipulate JSON data.
○ Serialization: Convert Java/Kotlin objects to JSON and vice versa.
DEPENDENCIES

DEPENDENCY

In the context of Android development, dependencies play a crucial role.


Let’s explore what they are:

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 {

maven { url 'https://jitpack.io' }

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

MMI(MARKET MOOD INDEX)


PIECHART MAKER

PIE CHART MAKER


NEWS SECTION
REFERENCES

https://kotlinlang.org/

https://www.investing.com/

https://developer.android.com/

https://github.com/

https://admob.google.com/

You might also like