- Java 79.4%
- HTML 17.7%
- JavaScript 2.1%
- CSS 0.8%
Source: javax.servlet/javax.ws.rs/javax.mail → jakarta.* across all
servlet and Mailer files; com.sun.mail.util.MailSSLSocketFactory →
org.eclipse.angus.mail.util.MailSSLSocketFactory.
Build: bump Java toolchain 15 → 17, jakarta.servlet-api 6.0.0,
jakarta.ws.rs-api 3.1.0, Jersey 2.39 → 3.1.10, tomcat-embed 9.0.72 →
10.1.30, jakarta.mail 2.1.3 + Angus Mail 2.0.3, drop unused
jaxb-runtime. Move log4j from providedCompile → implementation so it
bundles into the war (Tomcat doesn't provide it).
Gradle 9 fixes: drop bogus archivesBaseName from the JavaExec task;
add explicit war { } block (defaults gave wrong name and excluded
WebContent); make buildServletJar dependsOn upstream compileJava tasks
so it doesn't pick up stale class files; declare repos via
dependencyResolutionManagement in settings.gradle. Carry jai_core
locally since the geotools transitive isn't on Maven Central.
web.xml bumped to web-app 6.0 (Jakarta EE) schema.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|---|---|---|
| common | ||
| doc | ||
| libs | ||
| server | ||
| servlet | ||
| tomcat | ||
| WebContent | ||
| .gitignore | ||
| build.gradle | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
turf-game
This is a a hooby project for exposing some statistics for the location based GPS game Turf Game. If you are not familiar with this outdoor addicting game you can read about it here:
The services developed utilize the Turf API https://wiki.turfgame.com/sv/wiki/TurfAPI for retreiving statistical information.
Overall Solution
Turf Server
Is the central component running all the services. The component is implemented as a daemon. The server implements three different services being exposed via REST and HTML, you can access it here . The three services are described below. At startup the server reads a configuration file turf-server.cfg The configuration file specifies what server to run and what to do.
The server constantly pull information of the Turf Game Server using the public TurfAPI. The info via the APi is real-time info from the game but is has to be pulled of the server.
Mongo DB
The Turf server maintain in memory service states and statistics. A mongo database for persisting long living data and states.
HTML and Rest
The services implemented are accessible via HTML pages and REST.
Services
The services are implemented as separate plugins in the Turf server. They can be enabled/disabled by changing the server configuration file.
The services are found in under the package https://github.com/hoddmimes/turf-game/tree/master/server/src/main/java/com/hoddmimes/turf/server/services
- Top Sessions, tracking session having more than 25 takes and ranking the best 100 session based upon points achieved per hour.
- Day Ranking, display a daily ranking of turf users in a region. The ranking is reset every 24 hrs at midnight.
- Zone Notification, allows users to setup subscription for zone takes they have an interest in. Every time the zone for which they have a subscription is taken a mail is received.
- Region Statistics, compares statistics about statistics for regions.
- Heat Map, color encode zones in region Stockholm based upon the time since they were taken.
An instance of the Turf server is running on hoddmimes.com and the services are available via the
