As suggested by the comments, you've got a lot of options in selecting the components that make up your web mapping application. OpenLayers is a good choice for a client-side mapping library. OpenLayers is not going to provide you with a rich set of widgets for your GUI.
Depending on whether this application is going to be integrated into an existing site, whether you want it to look like a more traditional desktop application, and where your front-end development skills lie, you can choose from widget libraries like jQuery UI, Dojo, and Ext JS. If you choose Ext JS, the GeoExt project provides a library that brings mapping functionality from OpenLayers to Ext JS applications.
And all that is just a limited set of your choices for the front end. On the back end, you want to set up services that are configured to work with your data and communicate via standard web mapping protocols with the client side. GeoServer and MapServer are two common open source mapping servers. You can read about the various features of each elsewhere, but both bring OGC Web Map Service (WMS) and Web Feature Service (WFS) implementations to your application. One benefit of using open standards is that you can swap out components of your application (in this case, the mapping service component) and the rest of your application can work without modification (in this case the client and database).
The query and feature interaction you mention above can be addressed by WFS functionality. WMS allows for rendering of your data on the server (to be displayed as map tiles on the client). And, regarding download, GeoServer allows clients to request data (for download) formatted as shapefile, KML, and more.
Below the mapping services, you'll need a place to store your data. You can store data on the filesystem with shapefiles, or you can use a spatially enabled database. PostGIS brings spatial functionality to the PostgreSQL database and is a popular open source option.
In most cases, even if someone sends you a link to an application that does bits of what you want, there will be "some assembly required" for you to put together the parts in a way that meets your needs.