1. A method performed by a computing device configured to perform the method, the method comprising: receiving a design specification for a solar power installation project, the design specification identifying a total number of solar panel modules to be installed at a site and placement of each solar panel module at the site; loading possible string lengths for the solar panel modules, the possible string lengths being associated with one or more inverters available for installation at the site; and when the design specification is determined feasible in view of the possible string lengths: organizing the solar panel modules into stringing groups, each stringing group comprising solar panel modules that share a mounting region at the site; and when the design specification is determined feasible in view of the stringing groups: determining possible stringing solutions in view of the stringing groups and the possible string lengths; generating a numerical weighted value for each possible stringing solution based on one or more factors, the factors comprising: the number of inverters, variation in string length and the number of strings, wherein the number of inverters is weighted more heavily than the other factors such that each additional inverter after a first inverter impacts the numerical weighted value by a predetermined amount; selecting an optimal stringing solution from the possible stringing solutions based on the numerical weighted value; placing a required number of the solar panel modules in the mounting region to complete a module design that meets a target energy generation specification of the selected possible stringing solution; and generating design documents using the module design.