Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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 intomain
base:main
Choose a base branch
Loading
from446-refactor-architecture
Draft

Conversation

@LBeghini
Copy link
Member

@LBeghiniLBeghini commentedJan 20, 2024
edited by fsoupimenta
Loading

Closes#193
Closes#191
Closes#180
Closes#182
Closes#446
Closes#435
Closes#450

Tip

  • To view the visual of the software, we strongly recommend the use of the sandboxes.
  • Domain logic can be better understood executing the tests.
  • The app is still functional and can be executed from main.

What is new? ✨

Project Structure

  • sandbox
    This folder copies the structure ofview insidesource. 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.

  • source

    • commons
      Stores objects and configurations that are used across the software.

    • domain
      Keeps 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_solver
        Is 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.
      • entities
        Those 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.
      • [WIP]filter
    • view
      Contains all the visuals of the software and is the only part that interacts with PyQt library.

      • components
        Components 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.
      • elements
        Elements are minimal, basic components with common behavior. They are the building blocks of the UI and can make the use of items.
      • items
        Items are VERY minimal components, mostly used to display information and with almost no modifications from its parent Qt class.
      • pages
        Pages 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.
      • utils
        Contains methods, configurations, and constants that are required across the view.
      • windows
        Windows 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.
    • controller
      Makes the interactions between windows of the software.

  • test
    This folder copies the structure ofsource, as each file containing logic is supposed to be tested to grant coverage.

Discoveries

  1. CODE DOCUMENTATION
    Following the proposed pattern fromAdd code documentation #191 , the code is being documented. Some examples can be found atsource/view/components.
  2. TESTS
    Apart from testing the logic fromdomain, components fromview are also being tested using PyQtTest.
  3. ICONS
    Instead of downloading icons to be used in the software, it is now installed a libraryqtawesome that allows us to import icons directly.
  4. COLORS
    Now we have a standardized way to use colors on the software, that adapts to the system's theme.
  5. LOGS
    It was implemented a way to add logs at the crucial parts of the software to facilitate debugging once the executable is generated
  6. CONFIG
    Stores the needed settings and information of the software, including, for example, the software version.

Warning

ONLY the Wizard is implemented so far.

  • Wizard
  • Filter
  • Project

atilaajones and fsoupimenta reacted with heart emoji
Co-Authored-By: Fernando Pimenta <108306295+fsoupimenta@users.noreply.github.com>
@LBeghiniLBeghiniforce-pushed the446-refactor-architecture branch from843facb tof387c45CompareJanuary 20, 2024 04:05
Co-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch 3 times, most recently from8ebfdd0 to24d0530CompareJune 29, 2024 06:43
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch 3 times, most recently from9cbde6a toa46ceafCompareJuly 8, 2024 04:36
Co-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch 2 times, most recently from492737a to284329fCompareJuly 9, 2024 03:46
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch 5 times, most recently from20f8f5e to5996f8bCompareJuly 10, 2024 04:12
Co-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch from5996f8b tob590b13CompareJuly 11, 2024 02:43
Co-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch from7451ffe to1dd74edCompareAugust 19, 2024 08:32
Co-Authored-By: Lavínia Beghini <lavinia@beghini.dev.br>
@fsoupimentafsoupimentaforce-pushed the446-refactor-architecture branch from1dd74ed to9fd2972CompareAugust 19, 2024 10:02
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Configure version Replace icons with Qt built-in icons Add code documentation PyQt Test Add code logs

3 participants

@LBeghini@fsoupimenta

[8]ページ先頭

©2009-2025 Movatter.jp