- Notifications
You must be signed in to change notification settings - Fork3
Refactor Architecture#452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Draft
LBeghini wants to merge7 commits intomainChoose a base branch from446-refactor-architecture
base:main
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Draft
Uh oh!
There was an error while loading.Please reload this page.
Conversation
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
Co-Authored-By: Fernando Pimenta <108306295+fsoupimenta@users.noreply.github.com>
843facb tof387c45CompareCo-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
8ebfdd0 to24d0530Compare9cbde6a toa46ceafCompareCo-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
492737a to284329fCompare20f8f5e to5996f8bCompareCo-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
5996f8b tob590b13CompareCo-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
7451ffe to1dd74edCompareCo-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
1dd74ed to9fd2972CompareSign up for freeto 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.
Uh oh!
There was an error while loading.Please reload this page.
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 fromAdd 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 libraryqtawesome 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.