Hi all,
I’m sharing a tool I wrote a while ago, I revived/upgraded recently.
Fleet-Yo is a fleet management and tracking tool intended for small gangs and medium sized fleets. This tool is inspired by others out there which made use of the ingame browser (namely the Agony Fleet Manager) but also newer ones (Erik Kalkoken’s Fleet report). Being a thing of the past I replaced all the ingame browser features with API calls using the EVE swagger interface, added some extra convenience and a few features, I thought might be useful and here we go.
I’m not offering this a service but the source code. All you need is php/mysql AND the ability to set up a cron job
https://bitbucket.org/snitchashor/fleet-yo/src/master/
Fleet-yo does two things.
- It offers you a way to manage fleets and modules (FC registers fleet, members click link in fleet MOTD and submit the fitting, FC / backup FCs can see fitting location…
- It generates statistics for fleets (either for running fleets by just setting a tick mark) or for past fleets by setting start/end time and pasting fleet members.
Registering the fleet is a matter of pushing a button.
Fitting submission helps the FC to assign e.g. med slots (a link to do so can be added to the MOTD automatically)
The fleet composition window shows who has fitted what and where. Alternatively you can get an ingame like tree view.
The statistics Overview shows you all the stats which ar viewable by the user logged in. Access level is set by the FC (including private, corp, alliance, fleetmembers or public)
Statistics include top kills/losses, ISK efficiency by pilot or ship type, enemy composition and more.
Here’s a link to the statistics (just me in a frig not really a fleet but you get the idea):
https://fleet-yo.tk/viewstats.php?fleetID=1136211493000&key=c762576ea70b2a4888857bfeacb31e3b (made public, doesn’t require login)
Requirements:
- php 7.1+
- php-curl
- php-gmp
- php-mbstring
- MySQL 5.7+
- php-mysqli
- For certain features (cookies), site should be running via ssl
Installation:
- Create a MySQL Database for the app.
- Import schema.sql from the SQL subfolder
- Go to https://developers.eveonline.com/ and register an app with the following scopes:
-
esi-characters.read_notifications.v1
-
esi-location.read_location.v1
-
esi-location.read_ship_type.v1
-
esi-universe.read_structures.v1
-
esi-ui.write_waypoint.v1
-
esi-fleets.read_fleet.v1
-
esi-fleets.write_fleet.v1
The callback url should be http(s)://<domain>/<app path>/login.php
- Rename config.php.sample to config.php and edit it. Fill in the database and developer app credentials, sitename, cookiedomain, useragent… and put a random string for the salt. This one is used to add some security to authentication cookies. Add at least one admin by his or her characterID. If you want to keep track of what you added you can use associative arrays like array(“Snitch” => 90976676,). If you want restrict access to certain Characters, Corporations or Alliances, add them to the allowed entities section. If you leave all three sections empty, access will be public.
- Run the file cron_updatesde.php once in order to fetch the required static data from fuzzwork. (Alternatively, check sql/required.txt and import the mentioned tables manually)
- Setup cron_runningfleets.php to run e.g. once every 10 minutes.
- (Optional) Setup cron_updatesde.php and cron_clearcache.php to run once a day or less frequent (SDE will only be updated if it changed).
- (Optional but appreciated) Log in to EVE and throw some ISK at Snitch Ashor
Done. If you need any help come find me on the tweetfleet slack.
Thanks to…
A lot of helpful people in #esi and #sso on tweetfleet.
Squizz Caphinator
Steve Ronuken
CCP
Jeff Bridges, because he deserves it
Bacon, because it’s underappreciated
Some information for the nerds, heres a more or less complete list of third party libraries which were used:
- ESI php client generated with swagger-codegen
- Auth was adopted from Fuzzy Steve’s EVE SSO Auth
- Fuzzy Steve’s Static dump mysql conversion
- jQuery
- jQuery datatables
- Twitter typeahead.js
- Nakupanda’s Bootstrap Dialog
- Bootstrap 3 Datepicker
- ChartJS
- The Guzzle PHP HTTP client
- Kevinrob’s Guzzle Cache Middleware
- Local AccessToken verification using Spomky Lab’s JWT Framework
- The jsTree jQuery plugin.