/compendium

Primary LanguageTypeScript


Image

Breath of the Wild Compendium

Ever been playing Breath of the Wild and wondered if you've truly "caught them all"? Where here's your chance to see everything the compendium has to offer?

This application allows you explore data about creatures, equipment, materials, monsters and treasure found in Hyrule (that can be stored in your compendium). You can sort creatures

Feature Overview

  • View a gallery of images based on your selected category.

    Sorting Options:

    • Creatures - see all, edible, or inedible creatures
    • Monsters - see monsters found in default play mode or filter by Master play mode.
  • Click on any item in the gallery and see more details about that item.
View Demo
Table of Contents
  1. About The Project
    • Built With
    • Getting Started
    • Roadmap
    • Contributing

    About The Project

    desktop view of app

    (back to top)

    Built With

    • [React][React.js]
    • React Focus Lock
      • Focus Lock ensures that when your modal is open, the element you want the user to be focused on, is in focus, AND when they close the modal, they are focused on the element they were on before opening the modal. The internet is for everybody!
    • React Remove Scroll
      • React Remove Scroll makes prevent the back ground from scrolling while viewing a modal, a snap!
    • TypeScript
    • Axios
    • Styled Components
    • TanStack Query
      • Tanstack query allows us to ensure our server state remains in sync and lets us take advantage of cached data from fetches (in this project, I've set a near infinite cache and stale time, but we normally wouldn't want to do this, you can read more about why here)
    • Hyrule Compendium API

    (back to top)

    Getting Started

    Installation

    1. Clone the repo
      git clone https://github.com/FreedomWriter/compendium.git
    2. Install NPM packages
      npm install
    3. Start development server
      npm start
    4. Have fun!

    (back to top)

    Roadmap

    • Testing plan
      • Write unit tests to cover all hooks
      • Write intergration tests to ensure the following behave as expected:
        • Filtering by Creature type (all, edible, inedible)
        • Filtering by Monster type (master mode, default)
    • Search capability
      • The api does support searching, however only for exact matches, so this needs to be implemented client side
    • Detailed view
      • Create a Modal component
      • Create card component
      • Render Card in Modal when a Tile is clicked

    See the open issues for a full list of proposed features (and known issues).

    (back to top)

    Contributing

    Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

    If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

    1. Fork the Project
    2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
    3. Commit your Changes (git commit -m 'Add some AmazingFeature')
    4. Push to the Branch (git push origin feature/AmazingFeature)
    5. Open a Pull Request

    (back to top)

    License

    Distributed under the MIT License. See LICENSE.txt for more information.

    (back to top)

    (back to top)

    Large Tablet:

    large tablet view


    Small Tablet:

    small tablet view


    Mobile:

    mobile view