Measure the porch with a tape measure to calculate a slope for the roof, at least 2 inches per foot and preferably more; a wide porch usually will have a more gradual slope or pitch. Locate a place on the house to attach the roof, high enough to provide a slope with posts on the outside edge 8 feet high. Determine the number of posts needed, with no more than 8 feet between posts on both sides and front.
Install posts or columns in metal post brackets, with a plate on the floor and four upright sides to hold the posts. Fasten them to the porch floor with galvanized screws for wood or concrete screws for a concrete floor. Set the posts in place, measure to make sure they are the correct height and even at the tops, plumb them with a level and secure them with galvanized screws through the holes in the brackets. Drive all screws with a power screw gun.
Remove siding from the house to attach a 2-by-6-inch ledger board to support that end of the roof. Mark the height for the roof connection and snap a level chalk line for the bottom of the ledger board. Nail the ledger in place temporarily with a hammer and framing nails. Drill pilot holes with a power drill through the ledger into wall plates or studs and fasten the ledger with long lag bolts, with a bolt head and a screw point, driven with a ratchet wrench.
Attach another 2-by-6 horizontally across the outer poles. Secure it with 3-inch galvanized deck screws driven into the posts or columns. Use a level to make sure the top is level. Complete the outside roof frame with 2-by-6 boards between the outside edges of the ledger board and the ends of the outer band on the posts.
Use a framing square to mark angles for the side bands and for rafters from the ledger to the outer band. Put the square point on the bottom of a board and align the inch mark of the pitch, 2-inch for a slope of 2 inches per foot, on the tongue of the square and the 12-inch mark on the blade at the top of a rafter board and draw the angle that forms on the tongue. Make the rafters and outer bands the same angle. Cut similar but reverse angles on the ends by putting the square point at the top of the board. Use a circular saw to cut the boards.
Fasten rafters, spaced 24 inches apart, to the ledger board and the outer band with metal rafter hangers, which are u-shaped brackets fastened to the support boards with 2-inch galvanized screws. Set the rafters into the hangers and secure them with 1-inch screws through the hanger sides.
Cover roof frame with 5/8-inch oriented strand board, or OSB. Lay it with the rough side up. Fasten it to the rafters with 2-inch screws. Use as many full panels as possible, placed perpendicular to the rafters, and trim the edges where needed with a circular saw.
Lay roofing paper in horizontal layers, starting from the bottom and overlapping seams at least 6 inches. Staple it to the OSB with a construction stapler. Put metal drip edge on all edges of the roof. Nail it under the roofing paper on the bottom eave and over the paper on the edges. Put metal step flashing at the top of the ledger board, with one side to go under the house siding and the other over the OSB.
Cut the tabs off enough three-tab shingles to go across the bottom of the roof. Nail these in place with shingle nails through the cut side, with the other end slightly over the edge of the roof decking. Cut the width of one tab off the first shingle on the next row and nail it and other shingles in place. Add shingles up to the house wall. Butt the last row tightly against the step flashing. Re-install the siding to go over the flashing and join the shingles with no gap in between.