Almost a year ago, I decided to learn to code.
I like computers, I like the internet; I wanted to know more about what makes them tick. I’m not sure what made me think I’d be successful, but I jumped in head first. My goal was to create the online fishing log I wanted to use but didn’t seem to exist.
Since then I’ve tinkered with my fishing log off and on for many months; amazingly, I was able to build a semi-functional site in a few weeks. I have been logging each fishing trip in my web app since last fall.
It hasn’t been easy; this code stuff is tough. It doesn’t come naturally to me either; I don’t think logically, and I’m terrible at math… but somehow I’ve managed to cobble together bits of borrowed code and my own creations to create something usable.
It’s not ready for prime time yet, but I’m building it to support multiple users. I’m pretty happy with how it’s turning out– it is actually turning into the web-based fishing log I want to use.
It’s got a real live login screen, just like all those “real” web sites.
2013-07-26_0846
The purpose of this site is to log fishing trips, and most of the functionality revolves around logging trips and viewing trips.
2013-07-26_0848
The “log a trip” screen allows you to enter in all the information about your fishing trip, including pin-pointing the exact location on a map. The map grabs the latitude and longitude, and using that information it gets the weather for that date and time of day, as well as the USGS streamflow of the body of water (if it’s moving water).
I’m especially proud of some of the fancier features, like a popup date picker and auto-complete.2013-07-26_0853
2013-07-26_0850
I recently added a points system to the log, which calculates a “score” for your trip based on number of fish caught, whether you fished a new body of water, and some other sillier things like “ninja score.” The number of fish caught doesn’t always tell the whole story: if you snuck onto a golf course avoiding security patrols to catch a single small bass, that sounds like a good trip to me.
2013-07-26_0855
Once you log your trip, of course you can view your past trips. The other day I added a feature that will disguise the locations if anybody else is looking at your trips. This way you can log a trip and share it with the world and keep your secret fishing holes a secret.
2013-07-26_0905
The system records the GPS location of each trip, and you can view all your trips on a big map. This might be my favorite part. If you want to, you can also download those locations as a KML file and view them in Google Earth. In fact, by using Google Earth’s “network link” feature, you can link to your KML file and your Google Earth will auto-update as you add more trips to your log.
I think that’s pretty cool.
2013-07-26_0905_2
Each user has a kind of “profile page” where you can see their “stats.” Right now it’s fairly spartan, but I’ll be adding more numbers and charts– things like “fish per week” and a “species checklist” will probably appear in the next few weeks. I’m thinking about implementing some kind of “badge” system (like Foursquare) where you get special bonuses for catching a new species or fishing when the air temperature is below 32°F.
2013-07-26_0915
Does anybody else want to track their fishing with this much detail? Probably not, but I’m really building this for myself. At some point I’ll probably open it up to beta testers on an invite-only basis, if there is any interest. There are plenty of other fishing log sites out there, but none of them are quite what I’m looking for.
Does this sound like something you’d like to try? Let me know in the comments!

Tech specs

Stop reading here if you don’t want to hear about the nitty-gritty technical details!
I didn’t realize how many different tools I’d need to make a site like this work. I figured I could do everything I needed in PHP, but I was wrong!
The site is built in PHP (which dynamically produces HTML), at least my hacked version of it. All of the data is stored in MySQL databases; everything is backed up once an hour in two locations. I have some maintenance scripts written in Python as well (a much prettier language than PHP).
2013-07-26_0938
Sometimes (often) I try to do something that is above my level of understanding– like create a javascript array using PHP. If I can’t do it the “correct” way I usually end up making it work in what is most likely coding blasphemy.
2013-07-26_0935
The fancy menus, embedded maps, and auto-complete boxes are created with Javascript and jQuery– I barely understand any javascript but can copy and paste code just fine.
When a user logs a trip, I use the Geonames API to figure out the zipcode, city, state, and even county. Then the code compares the name of the waterbody with USGS streamflow gauge stations in that city on that waterbody to grab the historical streamflow information from the USGS API. The zipcode and date are used to get weather information from the Wunderground API.
I use the Google Maps API extensively; to show the full map of past trips, and also to show the location of each trip on its “trip page.”
I do my best to use JSON and XML when dealing with these APIs; I use PHP to parse them and get the info that I need. It’s been tough figuring out how the heck to read JSON, but I’m getting better.
2013-07-26_0941
I recently added a database of every species of fish in the U.S. I borrowed the list from fishbase.org, which doesn’t seem to have a usable API. I had to manually copy and paste a list of all the fish into Excel, then I used a Visual Basic snippet to extract the fishbase.org URL of each fish. That database will help to autocomplete the names of fish you catch, as well as provide additional information like latin name (and a link to the fishbase.org page).
As a part of my testing I built a little fishbase.org search- you can check it out here.
I’ve got a long list of features I’d like to add, not the least of which is social media integration. It would be cool if logging a trip creates an event in Facebook or a tweet on Twitter like “Chris just logged a trip on CB’s Fishing Log: he caught 14 smallmouth bass!”
I sure would like to catch 14 smallmouth bass in one outing.. That would definitely be worth a badge.
What’s the future of this site? For now it’s my side project; I tinker with it off and on, slowly adding features while logging all my fishing trips. Maybe, if there is anybody else in the world who wants to track their fishing to this level, I’ll open it up to anglers other than me.


6 responses

  1. Hey dude,
    This app idea is rad, and I am interested in utilizing it to track my outings/trips. You should add a baitcaster to the gear used section. I love the map feature, too. I think it’s really awesome to zoom out, and see all of the different places you fished marked.

    • Thanks man! Good idea- I’ll add baitcasting. If you want to sign up to get updates head over to cbfishes.com/log/index.php

  2. I’m a web developer and fly fisherman and found your repo on GitHub today. Push the rest of your code up there! I’d love to contribute to improving the project!

  3. Hey Tom, thanks for finding me!
    To be honest, I’m not entirely sure how to even use GitHub, and I got stuck when I tried to push the entire fishinglog directory…
    Obviously I’m still learning but would LOVE any input! I’ll see if I can put the rest of it up there. I don’t know what my long-term plans are for this (i.e. open source, pay-app, or what) but it seems like collaborating with others on GitHub could really help with the project. Thanks!

  4. I followed you on WCF and wanted to show you my support. I’d love to give it a test run when ready. I kayak fish with some of my buddies and would definitely love a fishing log like yours. I’m still rather new to the kayak fishing world so any new information (or information that identifies a trend) would be of great help. The log looks great, especially the Google Earth auto-mapping. The one thing I already try to do is identify and then document specific landmarks or unusual features at each productive location I’ve fished. Just saying I’ve fished the Fox River wouldn’t help much without being rather specific in some type of narrative. Your app looks very functional for what I already do. Great idea bud!!!

    • Thanks JC!
      The original motivation for creating this was to make “the fishing log I wanted to use” but didn’t exist. I love seeing my trips mapped out, and really like seeing the stats- like how many fish I’ve caught this year, or what percentage of my trips were on moving water.
      Originally I was thinking the log would be totally private for each user, but maybe it would be cool if there were a social aspect to it; anglers who fished the Fox and wanted to share some tips, for instance, could do so. Maybe their tips could show up on a “place page” for that body of water.
      Maybe even seasonal lure recommendations.. like if the current date is July 28, the site could tell you what lures/flies caught fish on that river a year ago! So many possibilities…
      I’m working on getting it a little more polished before I unleash it to the beta-testers, but as soon as I do I’ll let you know!

Leave a Reply

Your email address will not be published. Required fields are marked *