Heat olive oil in a dutch oven or large pot over medium heat. Sauté onion for 3–4 minutes. Add the garlic and sauté for 2 minutes.
Add celery and carrots.
Add tomato sauce, broth, and water. Bring to a boil over high heat, and let simmer for 20–30 minutes.
Peel and cut potatoes into bite-sized pieces. Place in a bowl and cover with cold water until ready to use.
Add potatoes, spinach, beans, basil, oregano, salt, and pepper. Bring back to a boil and reduce to a simmer until potatoes are cooked through, around 20–30 minutes.
Fill a medium saucepan with water and salt, and bring to a boil. Cook seashell pasta until al dente. Drain and set aside.
Place a scoop of cooked pasta into serving bowls. Ladle the soup over the pasta, grate fresh parmesan cheese over top, and drizzle with olive oil.