https://github.com/jukelyn/acnh-fish-chart
A simple site for tracking fish and finding the best months to fish to complete the Critterpedia in Animal Crossing: New Horizons!
https://github.com/jukelyn/acnh-fish-chart
animal-crossing animal-crossing-new-horizons css flask html javascript python
Last synced: 2 months ago
JSON representation
A simple site for tracking fish and finding the best months to fish to complete the Critterpedia in Animal Crossing: New Horizons!
- Host: GitHub
- URL: https://github.com/jukelyn/acnh-fish-chart
- Owner: Jukelyn
- License: cc-by-4.0
- Created: 2025-03-10T15:50:06.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-14T04:26:20.000Z (about 1 year ago)
- Last Synced: 2025-05-14T06:03:50.138Z (about 1 year ago)
- Topics: animal-crossing, animal-crossing-new-horizons, css, flask, html, javascript, python
- Language: Python
- Homepage: https://acnh-fish.jukelyn.com
- Size: 36.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README







### Built using





### Deployed on



## Table of Contents
- [ACNH Fishing Tracker/Guide](#acnh-fishing-trackerguide)
- [Current Features](#current-features)
- [Information](#information)
- [Local Development](#local-development)
- [Docker Deployment](#docker-deployment)
# ACNH Fishing Tracker/Guide
A simple site for tracking fish and finding the best months to fish to complete the Critterpedia!
## Current Features
1. **Reads fish spawning data** from `data/fish_datasheet.csv`, extracting all fish names and their spawning months.
2. **Creates two main DataFrames:**
- `NH_df` → Contains fish names and their **Northern Hemisphere** spawning months.
- `SH_df` → Contains fish names and their **Southern Hemisphere** spawning months.
3. **Generates spawning calendar** for the chosen hemispheres:
- Rows: Fish names
- Columns: Months (January–December)
- Green cells: Indicate spawning months
4. **Ability to input** fish that have been caught:
- Inputs fish data via a form
- Checks for the valid fishes and removes them from the _uncaught list_
## Information
The fish spawning data is from [this spreadsheet](https://docs.google.com/spreadsheets/d/e/2PACX-1vTGrIfAI5ybCvaiIux5kEbermRFZe6aooAs7I1iVrJF27DrXSOJQxxEcQXzIw6KRacx1721da2oN2SM/pubhtml)
and the data for caught fish can be editted by anybody but the site that I used for mine is
[ac-catch](https://ac-catch.com/) and [nook.lol](https://nook.lol/).
It doesn't matter where the input data is from but it just needs to include the proper
fish names (`blue_marlin` vs `blue marlin`) and one fish per row. The file can also
contain other random info but if it isn't a fish that is properly named to match the fish in the datasheet, it will be filtered and a fuzzy matching algorithm will be used to suggest what fishs the input may be for.
See fuzzy matching below:

## Local Development
The site is written using Flask and mostly HTML and JS. In order to host a local version of the site, these are the reccomended instructions:
1. Have Python and pip installed
2. Clone the repo
```bash
git clone https://github.com/Jukelyn/acnh-fish-chart.git
```
3. Enter the repo and create a virtual enviornment (venv)
```
cd acnh-fish-chart && python3 -m venv venv
```
4. Activate the venv
POSIX bash/zsh:
```bash
source venv/bin/activate
```
Windows:
```cmd
C:\> venv\Scripts\activate.bat
PS C:\> venv\Scripts\Activate.ps1 // Don't do this though, why are you using PowerShell?
```
5. Install dependencies
```bash
pip install -r requirements.txt
```
6. Host a local server
```bash
python run.py
```
The site should now be available on `127.0.0.1:5000` (or whatever other IP/port you set in `src/__init__.py`)
## Docker Deployment
1. Follow the previous steps 1 to 5.
2. [Build](https://docs.docker.com/build/concepts/dockerfile/#building) the docker image from the provided Dockerfile. (You can also just do step 3, it will build it for you)
3. Change the `docker-compose.yaml` file to use the networks that you have defined, or remove the network fields if you want to have it create it's own automatically.
4. Add port to forward, if needed. If you are using a reverse proxy on the same server, you don't need to do this, just forward your (sub)domain to the container on the port directly. (Default: 5000)
- If you change the port, make sure to change it in `src/__init__.py` as well as `Dockerfile`.
6. Run `docker compose up -d`
7. Navigate to the IP:port or (sub)domain that you assigned in your reverse proxy.