Teaching systematic object-oriented software development to undergraduate students is difficult: Students need to develop a lot of complex skills. These include technical skills in object-oriented software development, but also social skills—for example, how to collaborate with other developers as part of a team working towards a large and complex software system. To acquire these skills, students need hands-on development experiences—for example, through team-oriented project courses. Designing such project courses is a challenge in itself: They must be both sufficiently challenging and achievable within the limited time available. In our special situation (large numbers of students supervised by small numbers of staff) an important further requirement is scalability: Different projects should be easily comparable while allowing for different tasks for different teams to reduce the risk of plagiarism. The solution that in our experience satisfies all these requirements is to use an application framework for an everyday application domain—for example, the business domain.Since 1997, we have been using Salespoint, a Java-based framework for creating business applications, that has been jointly developed and maintained in Dresden and Munich. In this paper, we briefly recollect the educational background and aims of the courses and present in some detail Salespoint (and its most recent revision, Salespoint2010): central notions like catalogs and stocks, the functionality it offers to users (application control, data management, and much more), a technical overview of its architecture, an example application built with Salespoint, and some lessons learned so far.