Refactor Architecture#452
Draft
LBeghini wants to merge 7 commits into
Draft
Conversation
Co-Authored-By: Fernando Pimenta <[email protected]>
843facb to
f387c45
Compare
Co-Authored-By: Lavínia Beghini <[email protected]>
8ebfdd0 to
24d0530
Compare
9cbde6a to
a46ceaf
Compare
Co-Authored-By: Lavínia Beghini <[email protected]>
492737a to
284329f
Compare
20f8f5e to
5996f8b
Compare
Co-Authored-By: Lavínia Beghini <[email protected]>
5996f8b to
b590b13
Compare
Co-Authored-By: Lavínia Beghini <[email protected]>
7451ffe to
1dd74ed
Compare
Co-Authored-By: Lavínia Beghini <[email protected]>
1dd74ed to
9fd2972
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #193
Closes #191
Closes #180
Closes #182
Closes #446
Closes #435
Closes #450
Tip
What is new? ✨
Project Structure
sandboxThis folder copies the structure of
viewinsidesource. It is supposed to help develop visual components using PyQt. Each file inside the sandbox must follow the patternsandbox_{component_name}, and be stored in the same project structure found onview, because it uses the structure to automatically build the components.sourcecommonsStores objects and configurations that are used across the software.
domainKeeps all the logical foundation of the software, and all necessary configuration to make the program run. It is the only part of the software that interacts with mathematical libraries.
boolean_expression_solverIs where all the logic to solve equations or inequalities is. Now it is complex enough to deal with multiple logical connectives AND, OR. It also knows how to prioritize expressions with the use of parenthesis.
entitiesThose are the objects from the domain of the project. In a very basic way, they are meant to replace the dictionaries and will be used across the software to perform necessary calculations.
filterviewContains all the visuals of the software and is the only part that interacts with PyQt library.
componentsComponents encapsulate logic and contain elements. They act as higher-level UI constructs and may involve more complex interactions. Components are responsible for managing the behavior of elements and coordinating their actions.
elementsElements are minimal, basic components with common behavior. They are the building blocks of the UI and can make the use of items.
itemsItems are VERY minimal components, mostly used to display information and with almost no modifications from its parent Qt class.
pagesPages represent distinct sections of the application UI. Each contains one or more components and is responsible for displaying them. They are the content to be displayed inside the windows.
utilsContains methods, configurations, and constants that are required across the view.
windowsWindows are what will actually be displayed as a complete component of the software. Its internal contents are pages, and they have extra configurations as of where it's going to be displayed, the window size and so on.
controllerMakes the interactions between windows of the software.
testThis folder copies the structure of
source, as each file containing logic is supposed to be tested to grant coverage.Discoveries
Following the proposed pattern from Add code documentation #191 , the code is being documented. Some examples can be found at
source/view/components.Apart from testing the logic from
domain, components fromvieware also being tested using PyQtTest.Instead of downloading icons to be used in the software, it is now installed a library qtawesome that allows us to import icons directly.
Now we have a standardized way to use colors on the software, that adapts to the system's theme.
It was implemented a way to add logs at the crucial parts of the software to facilitate debugging once the executable is generated
Stores the needed settings and information of the software, including, for example, the software version.
Warning
ONLY the Wizard is implemented so far.