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.
- Nhi Luu
- Grant Rohrbaugh
- Jon Wollam
- User login and creation with duplicate checks
- User switching and deletion
- Navigation between app modules
- Help screen and home dashboard
- 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
- 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)
A setup script initializes the MySQL database with required tables and sample data:
- Users
- Coins
- Market Data
- (Optional) Historical Prices
- 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
- Entry date validation does not prevent future dates
- Exported CSVs are not saved to mobile-safe locations (e.g., device files)
Install the required Python libraries:
pip install kivy pycoingecko matplotlib pandas mplfinance sqlalchemy mysql-connector-pythonEnsure 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)
To create and populate the coin database:
python installer/database.pyThis will:
- Create tables (
User,Coin,Market_Data,Portfolio_Entries,Historical_Prices) - Add sample users and coins (BTC, ETH, etc.)
To launch the application
python main.pyThis 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