Skip to content

nluu05/CryptoApp

Repository files navigation

Crypto Portfolio & Historical Price Tracker

A set of mobile apps for tracking cryptocurrency investments, visualizing historical price trends, and managing user profiles, built with Kivy and integrated with the CoinGecko API and MySQL.


Authors

  • Nhi Luu
  • Grant Rohrbaugh
  • Jon Wollam

Applications Overview

User Management & Main App

  • User login and creation with duplicate checks
  • User switching and deletion
  • Navigation between app modules
  • Help screen and home dashboard

Portfolio Tracker

  • Add new cryptocurrencies (with CoinGecko validation and duplicate symbol checks)
  • Create, update, and delete portfolio entries with purchase quantity and date
  • View current portfolio value using live CoinGecko prices
  • Percentage change calculator
  • User has to put in their own cryptocurrency/Symbol and the app will pull price.
    • Then you will be able to add the cryptocurrency to the portfolio.
  • Error messages for invalid or conflicting inputs

Historical Price Viewer

  • Select coins from the top 100 by market cap
  • Choose chart type (Line, Bar, Candlestick)
  • View price summary: average, high, and low
  • Plot prices from portfolio purchase date
  • Export price data as CSV (desktop safe, not mobile yet)

Installer

A setup script initializes the MySQL database with required tables and sample data:

  • Users
  • Coins
  • Market Data
  • (Optional) Historical Prices

App Status

  • Portfolio Tracker: Complete - Full Milestone I implementation with update/delete and chart features
  • Historical Price Viewer: Complete - Meets milestone; includes CSV export and chart enhancements
  • Main App & Navigation: Complete - User login/profile switch, help page, and dashboard included
  • Installer: Complete - Creates and populates the MySQL database

Known Issues

  • Entry date validation does not prevent future dates
  • Exported CSVs are not saved to mobile-safe locations (e.g., device files)

Dependencies

Install the required Python libraries:

pip install kivy pycoingecko matplotlib pandas mplfinance sqlalchemy mysql-connector-python

Ensure MySQL is installed and accessible at:

  • User: root (this is the default, but if you changed your MySQL username it will be that)
  • Password: pass (the user will have to change this to their own MySQL password)
  • Host: root
  • Port: 3306 (the port can be different, but MySQL will let you know)

Database Setup

To create and populate the coin database:

python installer/database.py

This will:

  • Create tables (User, Coin, Market_Data, Portfolio_Entries, Historical_Prices)
  • Add sample users and coins (BTC, ETH, etc.)

Running the App

To launch the application

python main.py

This launches the home screen where you can:

  • Log in as a user or create a new user
  • Add/view/update/delete cryptocurrencies and portfolio entries
  • Switch to historical viewer for trend analysis

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors