{"id":15516790,"url":"https://github.com/samrap/algebrasolver","last_synced_at":"2025-10-14T03:18:16.083Z","repository":{"id":17618717,"uuid":"20422888","full_name":"samrap/algebrasolver","owner":"samrap","description":"A command line interface program for calculating algebraic equations and expressions written in Python","archived":false,"fork":false,"pushed_at":"2014-06-02T23:14:48.000Z","size":888,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-21T08:13:59.248Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samrap.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-02T23:12:39.000Z","updated_at":"2024-10-31T17:31:35.000Z","dependencies_parsed_at":"2022-08-30T21:30:29.418Z","dependency_job_id":null,"html_url":"https://github.com/samrap/algebrasolver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samrap/algebrasolver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrap%2Falgebrasolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrap%2Falgebrasolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrap%2Falgebrasolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrap%2Falgebrasolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samrap","download_url":"https://codeload.github.com/samrap/algebrasolver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrap%2Falgebrasolver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017790,"owners_count":26086143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-02T10:09:55.447Z","updated_at":"2025-10-14T03:18:16.048Z","avatar_url":"https://github.com/samrap.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Algebra Solver 1.0\n\n---------------------------------------------------------------\n\n###Written by: Sam Rapaport\n###Contact: samrapdev.com\n###Report a bug: rapaport.sam7@gmail.com\n\n---------------------------------------------------------------\n\nAlgebra Solver is a command line application for solving simple\nand complicated algebraic formulas and equations. The interface\ncombines Python's IDLE prompt style with the simple notation of\ncommand line functions for an easy-to-learn command line function\ncalculator. Users, read sections 1-4 to learn about easy\ninstallation and the various functions this program has to offer!\nDevlopers, skip to section 5 for a quick intro on the structure\nof the program.\n\n\u003e\u003e **Table of Contents**\n\n\u003e\u003e* Section 1:        Installation\n* Section 2:          Running the program\n* Section 3:          Navigating around\n* Section 4:          Using the manuals\n* Section 5:          Developers\n\n---------------------------------------------------------------\n\n## Section 1 | Installation\n\nWelcome to Algebra Solver! In this section we will go over the\ninstallation process. It is very simple,  but if you've never\nused the command line, you'll need to pay attention.  Most of\nthe instructions apply to all platforms, but in general they\nrefer to Mac OSX/Unix and Linux operating systems. If you are on\nWindows, a quick tutorial on the command line is recommended.\n\n1. The first step is to save this folder to somewhere that is\neasy to get to. I suggest saving it straight to your Desktop,\nbut it is completely up to you. The following instructions\nwill assume the folder (called a directory) is saved to the\ndesktop. Once the directory is saved to the desktop, open the\nterminal. On Mac, the terminal is located in the Applications\nfolder under \"utilities\". Open the app, wait for $ to show up\nand type the following (\u003center\u003e means to type the enter/return\nkey, do not type '\u003center\u003e'):\n\n    cd Desktop/algebrasolver\u003center\u003e\n\n(Note that if you saved the algebra folder somewhere besides\nthe desktop, you will need to replace that command with the\ncorrect path. If you don't know what that means, it is best\nto just save it in your Desktop.)\n\n---------------------------------------------------------------\n\n## Section 2 | Running the program\n\n1. You are now inside of the application folder. To start the\napplication type:\n\n    python algebra.py\u003center\u003e\n\n2. The app should now be up and running, with a '\u003e\u003e\u003e' prompt\ndisplayed. Read ahead to see how to use the app!\n\n---------------------------------------------------------------\n\n## Section 3 | Navigating around\n\nNow we will look at how to navigate around the program and use\nall the awesome functions. Now that the folder is installed in\nthe Desktop, to use the program from now on, all you have to do\nis open the terminal and type:\n\n    cd Desktop/algebrasolver\u003center\u003e\n    python algebra.py\u003center\u003e\n\n(Remember \u003center\u003e means hit the 'enter' or 'return' key, do not\ntype 'enter'!)\n\nThe first time the program is started, a prompt asking you to\ncreate a username will pop up. Type a username and hit \u003center\u003e\nor skip it by typing ! and then \u003center\u003e\n\nEverytime the program opens, the following prompt is displayed:\n\n    Algebra Solver 1.0\n    Type 'man' for more info\n    \u003e\u003e\u003e\n\nType the word 'man' (short for manual) to open up the user\nmanual. A short text file will be displayed showing the various\ncommands you can type in to calculate an equation. Don't worry\nabout accidentally entering the wrong thing, an error message\nwill be displayed and then you can continue on. Let's take a\nlook at using a function on the algebra command line:\n\n    \u003e\u003e\u003e s\u003center\u003e\n    Enter coordinate one (x,y): \n\nTyping 's' and hitting enter opens the slope command. The\nslope command returns the slope between two points on a line.\nNotice that once the command is opened, a prompt is displayed\nthat says to enter the first set of coordinates in (x,y) format.\n\n    \u003e\u003e\u003es\u003center\u003e\n    Enter coordinate one (x,y): (3,4)\u003center\u003e\n    Enter coordinate two (x,y): (5,6)\u003center\u003e\n    1\n\nAfter entering both points, the answer is returned. In this case\nthe slope is 1. Once a command has been finished the '\u003e\u003e\u003e'\nprompt returns, and you can use the same command or a new one.\n\n----------------------------------------------------------------\n\n## Section 4 | Using the manuals\n\nThe user manuals are a very important resource. They are short,\n(much shorter than this I promise) easy to understand references\nfor using the various commands in this application. To open the\nmain manual, type 'man', and a text file will pop up with a list\nof all the commands. Type 'q' to exit the manual and return to\nthe program. \n\nIf you need help with a specific command, type 'man xcmd' where\n'xcmd' is replaced by the name of the command you need help with.\nThere are specific manuals for every command in this application,\nso if you're not sure how to use a command or you keep getting\nan error message, check out the manual on the command to help\nyou out.\n\n---------------------------------------------------------------\n\n## Section 5 | Developers\n\n[This section is for developers, you can stop reading if you\njust want to use this application and not contribute to the\nproject.]\n\n### 5.1 | Introduction to file structure\n\nThe filesystem of this application is very simple:\n\n    /algebrasolver\n        README\n        algebra.py\n        /config\n        /extras\n        /manuals\n\nalgebra.py is the main app script. It contains the interface\nand program startup. Read the docstrings in-script to learn\nmore about the specifics. \n\n/config contains the main calculation module, alg.py. If you\nwant to add more functionality, edit alg.py. Read the doc-\nstrings to get more info on the manual. /config Also contains\nthe JSON file userinfo.json, which is updated via userinfo.py\n(also located in /config). The userinfo JSON file stores the\nuser's name and command history. The userinfo Python script edits\nthe file if the user wants to change their name, or clear the\ncommand history.\n\n/manuals is a directory of all the user manual text files. The\nname of the manual must match the name of the command (with the\naddition of .txt extension), because the manuals are accessed\nvia the command name. See method OpenFile in the InputHandler\nclass in algebra.py for more info.\n\n### 5.2 | Adding a new calculation function\n\nLet's say you want to add a new calculation function to the\nprogram. For the sake of simplicity, the function you want to add\nprints the sum of two input values, x and y.\n\n\u003e\u003e Write the function in /config/alg.py:\n\n    def sumxy(x, y):\n        \"\"\"Include a docstring explaining function if necessary\"\"\"\n        print x + y\n        return x + y\n\n\u003e\u003e Add the input handling method in the InputHandler class in\n/algebra.py:\n\n    class InputHandler():\n        # other methods\n\n        # your method\n        def HandleSum(self):\n            # handle input\n            # call to alg.sumxy(x, y)\n\n\u003e\u003e If the method has options and therefore requires a flag, add\nthe line\n\n\u003e\u003e `if not self.ValidateFlag('command', flag): return False`\n\n\u003e\u003e To validate the flag, where `'command'` is the name of the\ncommand. Be sure to add a valid flags list to the ValidateFlag\nmethod.\n\n    class InputHandler():\n        # other methods\n\n        # your method\n        def HandleSum(self, flag=False):\n            # validate flag\n            if not self.ValidateFlag('command', flag): return False\n            # handle input\n            # call to alg.sumxy(x, y)\n    \nFinally, add a user manual with the same name as the command with\na .txt extension and put it in the /manuals directory.\n\n### 5.3 | Formatting\n\nAlgebra Solver conforms relatively strictly to [Python PEP8][1]\nstandards, with the exception of personal preference. The main\nstyles to adhere to are listed below:\n\n* Multiple word variables and functions are separated with an\nunderscore (_), not camelCase\n* All lines must be less than or equal to 80 characters long\n(PEP8 specifies 79, but 80 makes more sense)\n* Each word in a method name begins in a capital letter as in\n`MethodName(self, args)`\n* Docstrings and comments are used liberally\n* **All intents must be 4 SPACES, not a tab width of 4**\n* All lines of README and user manual files must be less than 50\ncharacters in width\n\n--------------------------------------------------------------\n\nThank you for using Algebra Solver!\nQuestions? Check out my contact info on samrapdev.com\nReport a bug to: rapaport.sam7@gmail.com\n\nCurrent version: 1.0\n\n\n  [1]: http://legacy.python.org/dev/peps/pep-0008/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrap%2Falgebrasolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamrap%2Falgebrasolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrap%2Falgebrasolver/lists"}