Geocaching Australia Development List
Where are we heading?
Work in Progress by your developers
- OAuth integration to enable site to work with many more mobile applications
- Solr integration and improved map/search performance
- Add status checkboxes to stats graphs to be able to include for cache status example Hide by Type -> check box for 'show archived' and 'show disabled'
Work on Backlog by your developers
- Create new Geocache Type - GeoArt https://wiki.geocaching.com.au/wiki/GeoArt - Code has been published, pending turn on of functionality, competition pending for new pathtag to be created.
- Convert database from UTF8 to UTF8MB4 to address data storage characters sets.
- Enhance API for access to dragonZone capabilities
- Add 8 Cardinal Directions to MyQuery
- Add degrees filter to MyQuery - query requires an additional HAVING clause as the WHERE cannot include the derived column name (bearing), allow for "ranges" including lower / higher (90 to 270 bottom of circle) and higher / lower (270 to 90 top of circle)
- Use output of a my query as a restriction list in Geocaching graphs:- Would it be possible to get stats on just the caches returned from a query? (think along the lines of setting a query in GSAK and then running FindStatGen) But this could be extended beyond just found caches. Could be used to answer questions along the lines of, of the caches in the zone x which has the most finds?, what percentage of SA's caches are micros?, In which month were the most events held?, Of the caches hidden by x and found by me what percentage are puzzles?, and so on... - Currently on hold pending architecture solution to request. As a query is specific to a user, different results will be produced depending on which query is used. The URL construction, if shared, will cause another user to see different results and may also leak sensitive information (such as home location) if not a public query. Public queries that use functions like found and not found will result in different outcomes and the static nature of the queries will result in a cached copy being show depending on the "last run today" and not refreshed.
Work Recently Delivered by your primary developers
Change all classes to use __construct (public function __construct()) rather than the function name being the same as the class name which is now deprecated.
Add new graphs to Cacher Stats for dragonZone trophies.
Add GGZ (Garmin GPZ Zip File) as a downloadable file type from a My Query to send directly to the Garmin GPS without having to use a 3rd party app.
Update to use a slider that than drop down on the cache edit / create page for difficuilty and terrain. Update site to use style of border-box across the site and remove individual class attributes and values.
Commence removal of select_cache_by_waypoint in favour of select_gca_caches
Make the importer "look nice" because ... Remove vestiges of sendto Remove $gca_reviewer as unneeded
Launch dragonZone research tasks.
Prepare dragonZone research quests.
Add other described items, crafting and trading (which ended up being the same thing) to dragonZone. Controllers, Disruptors and Enhancers can be traded for research materials (boosters can still be only traded with points). Other virtual items can also be traded form research material and will be released over time.
dZ Research Tasks and Research Materials launched to BETA testers. Trading is not yet complete.
Blitz game coded and released for one game in 2019 and one in 2021. Showdown game coded and released for one game in 2019 and one in 2021.
- The vestiges of the old API have been removed. There is still one remaining which is the GSAK call to get your list of queries. This will remain until the macro is updated to use the new API and the apikey. This significantly cleans the code base and reduces the number of branches in common logic reducing the ongoing need to maintain multiple branches depending on the API being called. There is no obvious user impact as it's all behind the scenes however if there are any strange results please raise a bug for analysis.
- Consolidate multiple functions into a single class for user selection by cacher name, username, id or case insensitive cacher name with a simple selector to make code maintenance easier.
- Add a bearing (sortable where applicable) to the geocache lists to facilitate new functionality to come soon. The bearing is true north and is the "floor" of the bearing from your home co-ordinates. i.e. 145.5 degrees would display at 145 degrees.
- Upgrade the function to select geocaches which match certain log criteria to a new class, similar to the recent change to simplify the code base a continue to the journey to minimise GLOBAL variables by explicity passing them to the class setter.
- Removed an almost duplicate of the gca_distance functionality by combining the function and using a more precise Earth radius (even though we know the Earth is an oblate spheroid).
- Add Finds by Degree Bearing (for all, GCA and dZ) to the geocacher statistics pages to facilite new missions yet to be announced.
In the MyQuery form there is now a selection for "I have logged a DNF", "I have not logged a DNF" or leave the radio button unchecked to ignore any DNF flags. If the user selects "I have logged a DNF" then the selection will be restricted to those geocaches that have a DNF logged. Combined with "I have found" or "I have not found" the user can then identify those which have been subsequently found by them or have not yet been found and a ripe for a "retry". The output can be any of the standard MyQuery outputs including a Google Map. Remember to check 3rd party geocaches if you want the ones from GC includes as well.
- Downloadable hotlists (csv, gpx etc) e.g : http://geocaching.com.au/my/hotlist/firsttofind.gpx - All hotlists (with the exception of First Day Finds which are not a true hotlist) can now be downloaded in GPX or ZIP GPX form directly from the hotlist page.
- Geocacher Heatmap of Finds - A new map has been created to view a heatmap (a heat map (or heatmap) is a graphical representation of data where the individual values contained in a matrix are represented as colors) of all of the geocachers finds. Hotter, more densely found areas are colored more red with blue being those areas which are colder or fewer finds in density and a gradient used in between to reflect the density of finds in an area.
- Centroid Over Time - http://forum.geocaching.com.au/viewtopic.php?p=217365#p217365 - A new maps section has been created on your cacher page that will lead to this (and in the future more) map based statistics based on a geocachers find and other log and geocache information. If you are logged in, then on the top right, click your username, then click on the "Maps" tab and select "Time Centroid".
- The "Find a Geocache Zone" page has "Warning Zone Checker" where you put in GPS co-ordinates and click 'Check'. Awesome! Simple request: can you add this "Warning Zone Checker" onto the page used to create new cache, please? - A new standalone zone check page has been created and linked from the zone finder and the page where you start to create a new geocache. The page opens in a new tab so you don't lose your place and you can check as many locations as you like. If a warning zone is detected there will be a dropdown that will take you to the zone on a map and a marker to show exactly where the geocache is positioned. This gives you an indication as to whether the zone boundary is accurate or whether your geocache would be best moved a little distance to be outside the zone.
A number of changes have been made in the background.
- We have simplified the call to decide which geocaches to get for a number of different scenarios. e.g. List of caches, map of caches, searches of caches, etc. This was a nasty sprawling mess of global variables, set, then "hoped to be valid" when the function was executed. This is now a slighly less nasty, sprawling mess by having the call to the selection wrapped up in a new class to ensure that wayward variables are not accidentally included. This also means parameters need to be explicitly set so there is a possibility that I have forgotten to set a parameter in the 50 or so calls that have been updated. If you notice this, please add to the bugs thread. viewtopic.php?f=1&t=19288 and provide information about "what may be missing" rather than just "hey this list is wrong". As much information as you can provide would be appreciated.
- The MyQuery functionality has been simplied behind the scenes. We have three places we use the MyQuery capability. The normal MyQuery you can run interactively, a mailer than runs overnight and emails you your GPX or ZIP file and via the GCA API to provide the same query results to any app that calls it. When the API was written we created a new function to extract your specific MyQuery parameters and construct a query that would be used to identify the geocaches to be selected. That has now been applied to the interactive MyQuery generator and the overnight mailer removing duplicate "cut and paste" style code and consolidating it into one. This means future MyQuery capability only needs to be updated in one location saving time and reducing the chance of bugs due to a mistype of code.
- The Route lists wasn't working. I guess no-one uses this :-( It's now been fixed.
- A set of new code to be able to draw a polygon (zone) on a map and save that to create a Zone of Interest has been pushed live and I'll be looking for a Beta Tester or two in the not too distant future. This allows you to draw a polygon on the map, grabbing and moving "handles" rather than having to construct a KML file and upload that for to create the zone. So if you were looking for a set of geocaches that were near to you, but "on this side of the river" you could draw a polygon, create a new zone with the boundary running up the middle of the river and then add that to a MyQuery to get just the caches with attributes you want AND only on the right side of the river.
- The old API code has been mostly removed. We wrote a new API some years ago and we have waited for everyone to be on the new code before removing the old. If your favourite app stops working, then please contact the app develeoper as they will need to move to the new API. GACacher and Geocube both use the new API so there should be no issues.
- The old "mobile" site (geocaching.com.au/mobile) has been decomissioned as the site is now responsive and the two apps take care of 100% of the mobile needs. If you still use the old mobile site, then, sorry, but you'll need to move to the other solutions in place.
- Forum Upgrade
- Upgrade forum software to cater for php7 upgrades
- Requires major change to timezone handling due to changes in the new forum software
- Bugs in upgrade disallow Global Moderators to post without posts going to approval queue
- Forum data conversion software confuses migration of timezone offets to new timezones (all users to be encouraged to update their timezone)
- 5 stage internal conversion process to unload the GCA specific user data, drop the columns, do the migration, add the columns, add the data, correct timezones.
- New authentication process in the forum software changes GCA login (internal, no external issues) to require substantial amendments to hashing algorithms.
- Upgrade all date handling internally to handle new timezones.
- Allow internal switching between old and new forum software to allow for rollback.
- Forum DB now splits user data across multiple table, so internal GCA changes to cater for additional table joins / updates / inserts
When changing co-ords on the Search for a Geocache (Home or Current Location) box on the home page, update the query string for the map. There is now a Map Now button which will take the entered co-ordinates and map the result. The original static map and link from that map will not change.
- 20th Anniversary 2020 Game of Games
- Add ability for "NOT=Tag" in My Query function so as to ignore things like cache race entrants. You may now select the Excludes Geocache With Tags on your MyQuery to exclude all geocaches that have one or more of the supplied tags. Note that using wildcard searches is slow and your MyQuery may run slow if you use too many tag combinations.
- Create map of archived caches by lat and lon search. By entering the lat and lon of a location, you can now see archived geocaches on a map. 1,000 geocaches will be returned to the map and will not increase even though you may pan the map. Copy and paste the URL / Internet Address for sharing between friends and to show locations of archived geocaches.
- For My Queries when you use a ZONE ID to restrict the caches archived caches are excluded due to the function that gets caches from the zone. Include archived caches if they are wanted. The MyQuery "Is Available", "Is Unavailable" or "Is Archived" checkbox will now exclude them based on the users selection.
- Develop log interactions into a single class - log delete are now all done by the new gca_log() class.
- Develop log interactions into a single class - log updates are now all done by the new gca_log() class.
- Develop log interactions into a single class - log inserts are now all done by the new gca_log() class. This is a background task that cleans up the code bases making for slightly easier access and understanding of simplified code.
- Add new game code for upcoming games.
- Change .png state flag images (header) to use SVG images as part of an overall move to SVG for everything.
- Update hotlists, ratings API and confirm for API availability.
- Add API for Q&A answer submission / codeword return for any geocache with a Q&A section.
- Add API for Cache name search eg Android app (for authenticated users)
- Quiz aka FAQ code and administration
- Code cleanup after responsive code changes for mobile devices (sidebars)
- Add the ability to select between daily or weekly update emails.
- Create "postcode" cipher for toolbox.
- Make trophy layout more responsive by having trophy groups toggle on or off.
- Add the ability have corrected co-ordinates for any geocache. Private only, available everywhere a set of co-ordinates is used. Could be used with a "GeoArt" cache type to display the cache on the map in the art work, but in GPX files as corrected co-ords to navigate to (delivered and in BETA test): - * Custom list of waypoints - Solved a few puzzles? Place em here so they come up on YOUR map - perhaps link to cache - viewable by user only.
- Add the ability to set bulk GPX files to only download the last 20 logs instead of all as a default. Default can be overridden on a My Query basis and will not apply to GPX files from a cache page.
- Upload of MP3 files for podcaches Album
- Investigate an alternative to nominatim for geocoding locale
- Add a filter and pagination to the GCA Gallery page
- Add image rotation service to gallery
- Change the drop shadow to use css classes and non-fixed image widths to allow for more responsive design opportunities.
- Add graphs for dZ and GCA well rounded cacher (In fact all of the cacher graphs that logically can have a separation between ALL, GCA and dZ Only have all been prepared)
- 2018 end of year game development and testing
Work Recently Delivered by your primary developers
- Add geonames as the primary source of elevation data to improve response times when logging caches, but retain OSM and Google as backups in the event of the geonames service being removed or throttled
- Create list of archived caches by lat and lon search
- What I would like to see is the descriptive naming of queries. ie found-caches-home100km.zip, rather than 1234.zip https://forum.geocaching.com.au/viewtopic.php?p=229149#p229149
- Use year(moment) rather than substring(moment,1,4) for improved selection criteria.
- Add year and year-month columns to geocache and log tables for improved selectability rather than trawl every record substringing the dates as you go,..
- Create a radar chart showing which degrees have or have not yet been found (All, GCA, dZ)
- Create a graph visualising relationships between geocachers (thickness of connection is strength of relationship) for one level of geocacher only.
- Create a graph visualising relationships between geocachers who have found the same geocaches on the same days and then their relationships creating a network of geocachers who have relationships to each other.
- Is it possible to add a API to edit/update a log? Because sometimes in the field you make mistakes and write a brief log you want to add to later. (mtrax)
- Investigate Create a Geocache page for speed and optimisation improvements.
- Finalise conversion of raster images into vectors
- Reconfigure user tables to decouple from forum tables
- Rewrite all cache interactions as a single class
- Enhance header to cater for responsive design and ads and competition banners
- Fix bounce handler
- I have recently started researching locationless caches and I frustration I found quite early on is that there are a fair number that aren't technically locationless. I'd love it if these type of locationless could have the state you need to be in to complete them added to the attributes. This way I would stop looking at the Queensland bus one, for example. . There need to be other ways to work out what locationless caches are about, so a text search needs to be allowed, or tagging to categorise them. I'd be looking for a whole of solution approach to locationless cache rather than piecemeal. Tag locationless caches
- NFC caches
- Add EPE to cache submission so finder can see how accurate the previous recording was. How to output in GPX file?
- Bulk/batch upload of logs - Have server notify you after it's all updated and processed.
- Improve Tag and Gallery visualisation
- Administrative Pages for Tags and Gallery, plus some stat generation
- Add state to http://wiki.geocaching.com.au/wiki/Cache_alerts to restrict caches to a stated state, even if it's inside the radius selected. i.e. Stops Tasmanian caches showing up in Victorian alerts. Trouble will occur for non-Australia cachers when their state won't be selectable. Want to try and keep the site as international as possible.
- Add functionality to alerts to stop alerts on moveables if already found. Should be able to make this user by user selection, but not cache by cache.
- Cacher specific galleries in new gallery system
- add more filters eg GCA only , cache-types to maps (along side found, owned, etc).
- Advanced" search options: (from search bar - not my query page) * Filter by cache type * Filter by cache owner * Filter by state
- HTML export from various cacher statistics pages (allow editing through FCK editor).
- Generate a GPX file based on the caches visible from a Google Map page.
- Allow cachers to add listing site prefixes to their ignore lists (like OX, OU, OK, GC, etc).
- When GeoArt is live, consider adding a "group" capability, like a GeoTour that you can use to view individual GeoArt collections. This is not the same as a tag as a tag would need to run through a MyQuery to extract and map whereas a GeoArt would be a separate list. Will be deferred until the volume of GeoArt is known and whether the collection is worthwhile to develop.
Rejected or not Required / Pursued
Ideas that have been proposed in the past but were rejected or did not progress at the time. These may always be brought up again in the future as times, minds and attitudes change with the influx of new players or the changing of the game over time.
- Codeword caches. As an add on to a cache you may be required to locate the codeword at the location. These may be too similar to virtual caches which have no box, history caches which require Q&A and not a box. Geocaching is about a box, not finding a codeword in a message on a plaque.
- Regular "Virtual" Event Activities _i.e. a scavenger hunt). A geocaching adventure where your location is independent of physical geocaches. A set of "requirements" is published in the event listing. The requirements are all virtual requirements in that they do not require a physical cache find, but virtual activities which can be achieved anywhere.
- Hunt the wocket (cache). A wocket is a cache. You have an event ... but it's a special event where people gather at a starting spot. There are 3 (or any number up to n depending on how many participants you have) special caches at the gathering spot. Each one with the organisers (need 1 organiser for each special cache (wocket)). The event starts. Each organiser heads off in a direction. They can be similar or different. 10 minutes later they stop and hide the geocache. They update the co-ordinates of their cache. The game is now on. Each of the teams at the event move towards a cache. They are not going to be in the same park, they're most likely a few km away by now. They will need to choose which one they head towards. They have 15 minutes to find the cache. The first person to find the cache gets 10 points. The next person gets 9, then 8, 7, 6 etc., until there are no more points to allocate or the time has expired. One you've found the cache you can head off to find one of the other in the game or you can wait. There's some strategy needed to decide how and where you are going. Your team cannot split up. After the 15 minutes is up the game piece moves on. Again a 10 minute travel time for the cache, hide and update the co-ords. The participants now have 15 minutes to get to the cache and collect some more points. After a few hours, the game is over and everyone gathers back at a central location for the rest of the event which is congratulating the winners (points are added up obviously), commiserating the losers, bitching about inaccurate co-ordinates or how much the rules of hunt the wocket suck.
- Geocaching Australia organises an Australia wide Rubber Duck Race. It's held in one town on a flowing body of water -- OR -- in each capital city. Permission is sought from the water owner (all capitals is going to be a logistical nightmare). People sponsor their way into the Rubber Duck Race for a nominal amount, (making numbers up), say $5.00. The winner, er, wins (something). The ducks are extracted from the body of water (including any who got lost along the way). The ducks are then released as movable Geocaching Australia Rubber Duck Geocaches. A few hundred identical Rubber Ducks are now available as Geocaching Australia geocaches. The race does not have to be along a river. The ducks could start at one event per state and then travel from that state. The duck further away from the start point when the game finishes is the winner.
- Dead Drop Caches http://wiki.opencaching.us/index.php/Dead_Drop_Caches
- Confluence caches - We are not restricted to just the degree confluence. If there are a number of degree confluences which are restricted by being on private property, we could increase the scope of the confluence caches by allowing a high frequency. e.g. Instead of just S37 E144 we could have S37 45 E144 45. Although that would increase the total number of possible confluences by a factor of 360 (60 x 60) to around 36,000. That seems a little over the top to me and I'd suspect that a significant number would be inaccessible as they would be on private property, especially in the urban areas. S37 10 E 144 10, S37 10 E 144 20, S37 10 E 144 20, etc would increase the CC's to around 8,000, again private property being most likely to kill a huge swathe of them.
- A Geocaching Australia version of the CITO event cache type. No traction and no interest.
- Geocaching Australia version of "challenge" caches. No traction and no interest.
- Geocaching Australia "Environment" cache. Better than a CITO by making the environment, not just cleaning it up. Small interest, no traction, no progress.
- Change the icons on the logs to a drop down list to save space / make look consistent.
- Integrate GPSBabel to support zillions of formats (GPSBabel is already integrated into the Route functionality and can be extended to cover any required format of data or use), so not required for any specific action.