Feature List - AZensky/HackUp GitHub Wiki

Users

  • New users can create an account with a first name, last name, email, and password. Upon submitting the signup form with invalid data, users will be informed about the validations they failed to pass.
  • Users can also log in as a demo user
  • Existing users can log into their account and check their profile, which contains the groups they are members of, and the number of groups they have joined.
  • Users have a status for each group. Users that are organizers of a group are able to delete a group, edit a group, edit an event for the group, and delete an event for a group.
  • Users can log out of their account anytime, and if the page is dependent on being a logged-in user, it will redirect them to the landing page.

Groups

  • Any logged-in user can create a group by submitting a form that includes the group name, an about section, type, private, city, and state.
  • Groups have a detail page, which displays the location, amount of members, organizer, group name, an about section, and the upcoming events for the group.
  • All groups are displayed on the "Groups" page.
  • The organizer of the group is displayed with edit and delete options for the group. These options are not available to users that are not the organizer.

Events

  • Any organizer of a group can create events for that group. The form to create an event consists of the event name, type, venue, capacity, price, description, start date, and end date.
  • Events have a details page, which displays the date and time of the event, the event name, the event location, a details section, and a recommended events section.
  • Events can only be deleted by the organizer of the group that created the event.
  • If a group is deleted, all events associated with a group are deleted.

Search Filter

  • Implemented a search filter on the home page and the navigation bar outside of the home page.
  • The search filter finds all events that contain the word inputted into the search bar (case-sensitive) and displays them on the events page.