Overall Architecture Breakdown
As illustrated in the architecture diagram above, the system architecture is characterized by a straightforward design. Specifically, the web application backend operates on a Python Flask server. The Flask server serves as the primary mechanism for handling global routing logic and flow. Additionally, the Flask server facilitates the rendering of HTML pages through the Jinja templating system. Consequently, the end-user can interact with the web application and provide the netlist input. Once the netlist input is received, it is processed through the routing algorithm. The routing algorithm then produces the routed netlist output in addition to the congestion data associated with the lay- out. Subsequently, the congestion data is subjected to further processing, generating a congestion heat map visualization.
In this context, Firebase serves as a multifunctional platform for user authentication, real-time database operations, and storage management. Specifically, Firebase authenti- cation is leveraged to manage the login and registration processes. When a user creates an account, email verification is mandatory before the initial login attempt. The Fire- base real-time database is utilized to store all user data, including their netlist data and other relevant information. In addition, Firebase storage is employed to store the output files generated by the system. The output files are grouped based on the user’s directory, thereby allowing users to easily access and download their respective output files.