I'm planning on using some sort of ultrasonic sensor (like the parallax ping?)
"You guys get busy coding. I'll go get their requirements." No, it doesn't work that way. You get the requirements first. Then, you write code. Pick the sensor first, then write the code.
What is your custom PCB for? How can you have designed that without knowing what you were going to connect to it?
and some kind of photosensor to detect the white edge of the boundary
What boundary? Inner or outer edge?
Also, I'm using an L298N to drive two motors, but I'm wondering if the 2 amps it can supply per motor will be enough? It's the mini class (20x20cm, 3kg max), and I've got it fully heat-sinked, so I'm hoping there won't be any problems with torque and using large enough motors here...
The current will be enough for motors that draw less than 2A. It will not be enough for motors that draw more than 2A. Simple arithmetic.