// This is a student project for my JavaScript course. // This was for Mod 4: Arrays.
Assignment Prompt:
Project 3: Hobby Filter Application
In this assignment you will build an application that filters a collection of items related to a hobby or interest of your choice. You will pre-populate the app with a dataset of at least 10 items and implement filtering using your own loop and if/else logic (no built-in array filters).
Pick a Hobby ----------
Choose a hobby or interest area that excites you. For example:
- Sports (e.g., basketball teams, soccer players)
- Music (e.g., bands, albums, instruments)
- Art (e.g., famous paintings, artists)
- Movies or TV shows
- Books or authors
- Video games
- Pets or animals
- Or another hobby approved by your instructor
Technical Requirements ----------
Create a class to represent your item (e.g., Band, Book, Team).
Your class should include several properties that make sense for your topic:
- One text property like a name/title
- One or two descriptive properties (e.g., genre, category, difficulty level)
- At least two boolean properties (true/false) that you can filter by (e.g., isLocal, isPopular, isBeginnerFriendly)
- An image URL that displays a picture for each item
Pre-populate an array of at least 10 objects of your class.
Provide a form with inputs that represent filter options. On filtering, the application should do the following:
- Clear the current results list
- Read the selected filters
- Loop through your array with a for or while loop
- Use if/else logic to decide which objects match the filters
- Append the matching objects’ rendered elements to the page
Style your form and results list so they are visually appealing and easy to use.
Extra Credit (Not Required) ----------
Add an additional filter beyond the basics (for example, a category dropdown or text search).
Display badges or icons on each item showing its properties.
Show a counter that indicates how many items matched out of the total.
Assignment Notes ----------
Your objects must include and display an image for each item.
You must write the filtering logic yourself with a manual loop; Array.filter() and similar built-ins are not allowed.
Use accessible labels and readable styling for a good user experience.