Projects

cover

Math Solver

Visit the project

Description

The project consist on a web application that allows users to solve mathematical problems like unit conversion, symbolic solving, and plotting. The application uses Python and Flask to create a web server that sends dynamic requests to the user’s browser. The HTML templates are created using Jinja2 and TailwindCSS to create a responsive and user-friendly interface. More specifically, the front-end uses some some Flowbite components (Navbar and forms) to create a visually appealing interface. Additionally, a interchangeable theme is also implemented using TailwindCSS, Dark Mode properties and some JavaScript.

In order to avoid excessive syntax repetition a templates/layout.html is defined with the base HTML including the navbar and the dark/light theme button. The different pages defined in the templates folder are the home page, the unit conversion page, the symbolic solving page, the plotting page and the apology page. All the pages use the same layout and share the same navbar.

The business logic is implemented using Python classes that handle the units conversion and symbolic solving. This Python modules are in the app/models folder:

Multiple forms allow the user to enter input values for different cases. Requests are handled by the endpoints defined in main/routes.py which return an apology page in case something goes wrong. For this, the apology html template is rendered. The template receives a message and the error code and renders an image of the HTTP CATS API along with the specific message if applicable.

Examples

Unit conversor

Symbolic solver

Plotter