Skip to content

pizzadogsquared/cs386-pennypilot

 
 

Repository files navigation

Penny Pilot

Version

Current version: 0.1.0

Penny Pilot is a financial planning tool designed to help students at Northern Arizona University (NAU) manage their budget and savings for studying abroad. Many students struggle with financial planning, which discourages them from pursuing international education opportunities. Penny Pilot provides a user-friendly platform to track expenses, set savings goals, and visualize financial progress, reducing stress and empowering students to focus on learning.

Getting Started

These instructions will help you set up the Penny Pilot application on your local machine for development and testing.

Prerequisites

To run this project, ensure you have the following installed:

  • Python (Latest Version)
  • MySQL Database Server
  • Git (for version control)

Installing

Mac Installation

  1. Install Homebrew (if not already installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Install Python 3 (if not already installed):
brew install python3
  1. Install MySQL Workbench:

    • Download MySQL Installer from mysql.com
    • Remember your root password is not created so delete this in config.py to '' instead of '123455'
    • Create a new MySQL Connection named "pennypilot"
  2. Clone the repository:

git clone https://github.com/sesartrumpet/cs386-pennypilot.git
cd cs386-pennypilot
  1. Create and activate virtual environment:
python3 -m venv venv
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Configure MySQL Database:
mysql -u root -p

Then in the MySQL prompt:

CREATE DATABASE pennyPilot;
  1. Run the application:
python3 main.py

Windows Installation

  1. Install Python:

    • Download Python from python.org
    • During installation, make sure to check "Add Python to PATH"
  2. Install MySQL Workbench:

    • Download MySQL Installer from mysql.com
    • Run the installer and follow the setup wizard
    • Choose "Full" for the Setup Type
    • Remember your root password (make it 123455 to avoid altering code)
    • Create a new MySQL Connection named "pennypilot"
    • Open and run PennyPilot_db.sql inside pennypilot
    • Open and run data.sql inside pennypilot
  3. Install MySQL Community Server

    • Download version 8.4.4 LTS from mysql.com
    • Run the installer and follow the setup wizard
    • Connect to your root server
  4. Clone the repository:

git clone https://github.com/sesartrumpet/cs386-pennypilot.git
cd cs386-pennypilot
  1. Create and activate virtual environment:
python -m venv venv
.\venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run the application:
python main.py

Troubleshooting

Mac

  • If pip installation fails with "externally-managed-environment" error, make sure to use the virtual environment
  • If MySQL connection fails, verify MySQL service is running: brew services list
  • If permission errors occur, you may need to use sudo for some commands

Windows

  • If 'python' is not recognized, try 'py' instead
  • If MySQL is not recognized as a command, add MySQL to your system's PATH
  • If virtual environment activation fails, ensure you're using the correct path separator ()

Deployment

Running the Tests

pytest

This will run unit tests covering key functionalities such as:

  • Adding expenses and income data
  • Budget visualization rendering
  • User authentication workflow

Built With

  • Python - Backend language
  • Tkinter - GUI framework
  • MySQL - Database for storing user budgeting data

Contributing

Please read CONTRIBUTING.md for details on our code of conduct and how to submit pull requests.

Versioning

We use SemVer for versioning. For available versions, see the tags on this repository.

Authors

  • Victor Rodriguez
  • Sesar Parra
  • Elijah Sprouse
  • Manjot Kaur
  • Kyle Radzvin
  • Vikram Singh

See the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

  • Special thanks to NAU faculty and advisors for guidance.
  • Inspiration from existing financial planning tools.
  • Hat tip to open-source contributors whose code was used.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 86.3%
  • JavaScript 12.4%
  • Other 1.3%