Skip to content

JamakaDev/CS50-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

PyCalc

Description of my CS50 Final Project:

I decided on Python as my language of choice for the project. Below is a list of just a few reasons for my decision:

  1. Python is versatile along with clear syntax
  2. The community seemed to be massive and supportive (as others are I'm sure)
  3. With that massive community brings forth many pre-built libraries & frameworks

Upon further research into Python, I came to find a few GUI (Graphical User Interface) frameworks/libraries that could be imported once downloaded.

  • PySimpleGUI
  • Kivy
  • PyQt5

While I chose to go with PySimpleGUI for my project, I found that PyQt5 had more to offer also with a decent community along with Kivy being in the same boat that they were both an overkill for this little test of my own.

To further expand on the last statement of testing myself:

  • With this final project, I decided to hold myself to:
    1. Learn more about the language of choice (Python)
    2. Come up with idea and how to initiate it.
    3. Research and learn the necessary frameworks/ libraries
    4. Demonstrate that newfound knowledge by implementing into project
    5. Create tests & logs to further gain exp testing/logging code
    6. Come out of it having the ability to LEARN ANY CODE OR LANGUAGE

Project Description

-I created a program that opens a calculator for use with a themed GUI to match the language of choice

-The fact that the project being a calculator is not all that impressive is something even I thought...haha

-Let me explain below what the end result/goal was for me to achieve! :)

PyCalc > calculator

  1. I did NOT use eval function for any of the application
  • Not using the eval function allowed me to learn how not to create the functions for computing but how importing works and more on file handling
  • This allowed me to keep the executable file shorter and cleaner.
  1. After finalizing the functions inside the other Python file, I imported the GUI library and got started on creating the layout and design.
  • I went with a 4x5 button layout & display above that
  • The color scheme I went with were the Python OG blue & yellow
  1. Once the application was working, I then decided to implement a logging system to review upon any errors the USER may incur!
  • The logging file holds the logs for when the PyCalc is being executed.
  • A log message contains the following:
    1. Operands
    2. Operators
    3. Function/location
    4. Timestamp
  1. Upon completion of the application, I researched testing of the code.
  • I came to find quite a few options in Python
  • Just to name a hand full:
    1. Robot
    2. PyTest
    3. Unittest
    4. DocTest

-For the purpose of this lil project, I chose to go with Unittest. -Unittest is built-in to Python and easily imported -> implemented!

  • I did this through a seperate file to keep the testing code from clogging up the source/ production code.

I would like to formally Thank You for taking the time to read through this adventure or journey of mine! I decided 7 months ago (Nov 2021) that I was going to start my journey to become self-taught developer! I would also like to send big shout out to the CS50 staff for all the hard work and dedication put into this curriculum accessible to the public!!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages