You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
sirgje 8444b2e3ab
Further time class refactoring
1 year ago
backend Further time class refactoring 1 year ago
core Further time class refactoring 1 year ago
html Added a config option to switch debug messages on/off 1 year ago
.gitignore Initial commit 1 year ago
example-nginx.conf Added example nginx configuration and some clarifications 1 year ago
gerbil.jpg Initial commit 1 year ago
license.txt Changed license to BSD 2-Clause 1 year ago
main-database-schema.sql Many fixes for the structures page. 1 year ago
readme.md Added example nginx configuration and some clarifications 1 year ago
static-database-schema.sql Initial commit 1 year ago

readme.md

gerbils

gerbil!

Hobby project which features a few, hopefully, useful features for the videogame Eve Online.

Current features

The current iteration of this project is mainly focused on EVE Online market tools.

Web tools:

  • Login system fully integrated with EVE SSO
  • Token system integrated with ESI
  • Appraisal generation from EFT
  • Swing trading tracker, shows you items that are currently below their average price
  • Track your corporation contracts, wallet, and structures (citadels)
  • Personal character tracker, showing their location, skill training, SP, etc.

Discord tools:

  • Real-time contract scanner, tells you immediately when a cheap contract is posted; restricted by ESI cache.
  • Real-time market scanner, like the contract one but for market items.

Project structure

  • backend folder: contains occasional (cron) or continuous processes (supervisor)
  • core contains the bulk of the project, including classes, models, routing, etc.
  • html this folder should be exposed via the web server as it contains the index file, css/js assets, images, etc.

Installation

Minimum requirements

This project has been tested and developed with the following stack:

  • PHP 7.4.3
  • Redis 5.0.7
  • MariaDB 10.3.22

Note: Breaking changes have been introduced with PHP 7.4.3 compatibility. Earlier versions will likely not work!

Those are the absolute minimum requirements. You can choose your own flavour of webserver or process controller; i personally used nginx and supervisor respectively.

You will need to point your webserver of your choice to the index.php file in the html directory. There is an example nginx config example-nginx.conf which you can use as a starting point. The most important thing is the url rewriting in try_files which is needed for the Slim framework router to work.

EVE online developers application

You should create a new application with full API access (every scope ticked) The callback url should be <host>/sso/

Config file

You should copy the core/Config_Example.php file core/Config.php and fill it out. Many lines have comments explaining what each setting does.

Composer

This project uses composer to handle external dependencies. Once installed, the composer.json file is located in the /core/External/ folder.

Database setup

This project has been tested on MariDB exclusively but should work just fine on most other variants. We will need two databases and an user with access to both. Once you have created them, you can put the necessary information in the Config.php file.

In the project root there are two files to create database schema, import them via your favorite method e.g mysql -u user -p gerbils < main-database-schema.sql

Secret key generation

For added security, all ESI tokens in the database are encrypted with a secret key. You can generate a completely random one by running the core/CreateSecretKey.php> script.

Build assets

To build (basically a combo of minifying and compacting) the necessary javascript and css assets, you can run the core/Assets/Build.php script.

Last step

Before you can start to use all the features, you must do a full ESI pull to add all the item types, categories, etc to the database. Check the readme.md in backend/ for more information.

License

BSD 2-Clause