During the final two weeks of my GSoC journey, I worked on refactoring the simulator canvas and moving them to the Pinia store.
Canvases in CircuitVerse Simulator -
BackgroundArea Canvas - base canvas on which the grids are made
SimulationArea Canvas - canvas on which the circuit elements are drawn
MinimapArea Canvas - canvas showing the minimap of the entire area
Initially, the canvas in the simulator is represented as an object.
First, I had to figure out a way to implement the refactoring without breaking down the simulator since there are a lot of places where canvas objects are used.
Since most of the usage of the canvases is outside the Vue components, I learnt using a store outside of a component.
Initially, for separating the states, actions, and getters of the store into separate files, I was using a store for each of them, importing them all to the common store (hence 3 different stores instead of 1), and changed that to use one store for each canvas.
Future Works -
With most of the parts of the simulator converted to Vue, there still remain some bugs and parts yet to be refactored and tested - like the Verilog editor, Quick button panels, and some panels in Layout mode.
After these are completed - we would include the Vue Simulator in the main project alongside the actual simulator and open it to users for testing.
Once the Vue codebase is included in the Main repository, loading and saving the circuits online would work.
The last 12 weeks were an amazing learning experience.
I learned so many new technologies, and solving road blockers in each step boosted my motivation every time.
The best part of this program I felt is that having given a project idea, gave me all the freedom to plan out the project, and its workflow and execute them, and finally having completed it successfully boosts my confidence to the roof.
I would love to thank my mentor @abstrekt for always being there to help me.
Also @tachyons for always guiding me in the right direction.