it should allow authenticated users to request time off of work, which when approved by an administrator, shows up in a calendar. Administrators will be able to set vacation allotment for the year, so if you get 10 vacation days in a calendar year and you have already used all 10, then you will not be able to submit time off.
This could be done fairly easily with a calendar list and a custom list and some workflows. Users submit items onto the calendar, workflow checks to see if the user has available time from the custom list that tracks that information. If the user has n time remaining, the request is deleted, if they do have time, it goes to the supervisor for approval.
If approved, it appears on the calendar, if rejected, it gets deleted.