These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
123Next pageLast page
 

[DEPRECATED] SeAT: API Tool and Corporation Manager

First post
Author
qu1ckkkk
The Warp Core Stabilizers
#1 - 2014-04-13 15:33:58 UTC  |  Edited by: qu1ckkkk
[UPDATE] If you are looking at installing this for the first time, rather check out the 1.x code HERE

Greetings!

Introducing SeAT! A simple (or stupid) EVE API Tool.
SeAT attempts to be a Corporation Management Tool written in PHP using the Laravel 4 Framework.

SeAT itself is the result of a rewrite of the original Corporation Management Tool that I wrote for our corp and figured there may be others out there that may need similar tools.

While usage of the front-end is entirely optional, all of the API data is stored in the database, and updated regularly on a schedule.

With SeAT, you are able to:
- Store member APIs along with the data that is made available via the EVE Online API. This includes wallet journals, mail etc.
- Check member skills and assets
- Monitor Corporation Starbases and Wallets
- Grant members access to corporation information such as starbases, contracts and wallets

The above is just a small snippet of what is actually exposed via the web front end, however there is a lot more information available in the database with SeAT having implemented over 55 API endpoints at the time of this post. Of course as the project matures, more information will be available via the front-end.

Requirements:
Basically, a web server capable of serving PHP pages, a MySQL database and the Redis cache. Details are available in the projects docs.
SeAT itself can also be run to only update the database with API data, and you can use this data in your own application, ignoring the SeAT front-end!

Links:
Sources: https://github.com/eve-seat/seat
Feature Page: http://eve-seat.github.io/
^~~ screenshots there too :P

As always, feedback is welcome.

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

CCP FoxFour
C C P
C C P Alliance
#2 - 2014-04-14 08:16:49 UTC
thank you very much for sharing! :D Love seeing amazing projects like this open sourced.

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Kivorno
Myanapa Corsica
#3 - 2014-04-14 14:17:21 UTC
Very much like the tool, will have a good play around with it.

Proud creator and developer of Eve-Merchant / Eve-Merchant Sprint

wariora
Brutor Tribe
Minmatar Republic
#4 - 2014-04-14 17:00:18 UTC
Borrow me 2bil?
Korporaal Paling
The Scope
Gallente Federation
#5 - 2014-04-14 19:16:51 UTC  |  Edited by: Korporaal Paling
wariora wrote:
Borrow me 2bil?


Looking at your wallet data, I would say you need to play less Somer Blink... Blink
Ramirez Dora
Neckbeards International
#6 - 2014-04-15 08:18:46 UTC
Is the DB separable from the front-end layer, and would you be ok with people utilising the DB storage solution for other purposes than the front-end dashboard you've designed? Hoping to have a dig into the code later today as well. I've been working with PhealNG a lot for API calling and caching, but this seems to go a step beyond that. Does it use PhealNG or similar under the hood or have you implemented the API call mechanism from scratch?
qu1ckkkk
The Warp Core Stabilizers
#7 - 2014-04-15 11:41:16 UTC
Ramirez Dora wrote:
Is the DB separable from the front-end layer, and would you be ok with people utilising the DB storage solution for other purposes than the front-end dashboard you've designed? Hoping to have a dig into the code later today as well. I've been working with PhealNG a lot for API calling and caching, but this seems to go a step beyond that. Does it use PhealNG or similar under the hood or have you implemented the API call mechanism from scratch?


They are most definitely separable. The only requirement really would be for you to populate the 'seat_keys' table somehow with actual keys, and then have the workers process the jobs as normal to update the DB. In the next release I'll probably have have a cli util added to add keys too that you could potentially reference off.

As far as API calls go, all of the calls eventually get handed down to pheal-ng to call and return workable results for. Bearing in mind pheal-ng also has a layer of caching added that you just have to keep in mind.

If you don't want to use the web front end, just don't set that part up :)

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

Kivorno
Myanapa Corsica
#8 - 2014-04-16 16:55:51 UTC
Hi qu1ckkkk,

Seem to be running into a problem, I have the server all setup and pulled correctly, however when adding a new API it just seems to spin round without continuing.

The line is seems to be failing on is line 113 in app/controllers/ApiKeyController

$key_info = $pheal->accountScope->APIKeyInfo();

If I place a break point in front of it the output is:

API Key Check Results
Pheal\Pheal Object ( [userid:Pheal\Pheal:private] => *USERID* [key:Pheal\Pheal:private] => *APIKEY* [keyType:Pheal\Pheal:private] => [accessMask:Pheal\Pheal:private] => [scope] => account [xml] => )

As mentioned before however, if the break point isn't there then the $key_info is not populated and so hangs.

Any help would be appreciated.

Proud creator and developer of Eve-Merchant / Eve-Merchant Sprint

qu1ckkkk
The Warp Core Stabilizers
#9 - 2014-04-16 17:16:13 UTC
Kivorno wrote:

The line is seems to be failing on is line 113 in app/controllers/ApiKeyController

$key_info = $pheal->accountScope->APIKeyInfo();

If I place a break point in front of it the output is:

API Key Check Results
Pheal\Pheal Object ( [userid:Pheal\Pheal:private] => *USERID* [key:Pheal\Pheal:private] => *APIKEY* [keyType:Pheal\Pheal:private] => [accessMask:Pheal\Pheal:private] => [scope] => account [xml] => )

As mentioned before however, if the break point isn't there then the $key_info is not populated and so hangs.


Would it be possible to eve-mail me the last bit of output in your laravel.log that can be found in app/storage/logs?
Also, you may need to check that the user the webserver is running as has the required permissions to write to app/storage/ as pheal will attempt to cache the received XML from the server to disk for later retrieval if the cached_untill timer has not yet been passed.

Lemme know if this helps.

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

qu1ckkkk
The Warp Core Stabilizers
#10 - 2014-04-16 17:50:32 UTC
qu1ckkkk wrote:
Kivorno wrote:

The line is seems to be failing on is line 113 in app/controllers/ApiKeyController

$key_info = $pheal->accountScope->APIKeyInfo();

If I place a break point in front of it the output is:


Would it be possible to eve-mail me the last bit of output in your laravel.log that can be found in app/storage/logs?


Got this resolved by ensuring that the OS in use has php-curl and curl itself installed and up to date. Will add to install docs soon™

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

qu1ckkkk
The Warp Core Stabilizers
#11 - 2014-04-16 18:57:50 UTC
Just pushed a small release (v0.2) with some small backend & frontend fixes, including a corporation ledger.
Version 0.2 Changelog

If you have a older version running, refer to the UPGRADING doc as per "docs/UPGRADING.md" or link here

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

Roberta Chikita
Doomheim
#12 - 2014-04-17 01:20:06 UTC
Hi!

Just fresh install Seat on debian 7. All fine with some install command modification but (yes there is but)...

When I go to the base url, it's a directory page.
For show the app, I have to go on /server.php

In /server.php I don't have any style (css and JS) because the public folder is not used is url.

I think my vhost and/or rewritemod/rules are involved but I don't show where is the problem..

for my vhostfiles:

Quote:
[VirtualHost *:80]
ServerAdmin webmaster@localhost
DocumentRoot /var/www/seat
ServerName seat.myserver.com
#DirectoryIndex server.php
[Directory /]
Options FollowSymLinks
AllowOverride None
[/Directory]
[Directory /var/www/seat]
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

[/Directory]

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
[Directory "/usr/lib/cgi-bin"]
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
[/Directory]

ErrorLog ${APACHE_LOG_DIR}/errorlog.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
[/VirtualHost]

* Replace [] with <> (forum believes it's html :p )
Any ideas?

thank you !
qu1ckkkk
The Warp Core Stabilizers
#13 - 2014-04-17 04:08:13 UTC
Roberta Chikita wrote:

DocumentRoot /var/www/seat


Assuming you have SeAT setup in the above directory, you need to configure the document root as /var/www/seat/public. This directory contains a index.php which handles all of the request routing, assuming the .htaccess rules allowed (which seem like the case in your example).

In a typical deployment, you will configure your web server to only expose the public directory, and the rest will not be available for browsing etc. In your case, you could browse all of the SeAT directories if you have directory browsing enabled, which could reveal log files and or other sensitive information that you may not want.

Lemme know if this helps

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

Meritsa
Caldari Provisions
Caldari State
#14 - 2014-04-17 08:44:50 UTC
Hello,

This looks really promising. I must install this and play around with it. I am myself a PHP+Jquery developer and so is few of my friends that play Eve here, might just contribute to this project if it seems that we start using this Cool

Thumbs up for now Lol

:P

Roberta Chikita
Doomheim
#15 - 2014-04-17 10:32:41 UTC
qu1ckkkk wrote:

Assuming you have SeAT setup in the above directory, you need to configure the document root as /var/www/seat/public. This directory contains a index.php which handles all of the request routing, assuming the .htaccess rules allowed (which seem like the case in your example).


Perfect! Work fine but (yeah but again...)

When I try to put a full corp api (for view starbase list and other stuff), the api don't load, the API Key Check Results turn without end!

In my fire bug I had a 500 error with "Whoops, looks like something went wrong" in response.

It seem to fire error when try to pull AccountStatus. In cache folder/phealcache/keyID/vCode/account/AccountStatus/ The request.xml:
Quote:
[?xml version='1.0' encoding='UTF-8'?]
[eveapi version="2"]
[currentTime]2014-04-17 09:20:26[/currentTime]
[error code="221"]Illegal page request! Please verify the access granted by the key you are using![/error]
[cachedUntil]2014-04-18 09:20:26[/cachedUntil]
[/eveapi]


Any idea again? :)

Thank!

qu1ckkkk
The Warp Core Stabilizers
#16 - 2014-04-17 10:48:33 UTC
Roberta Chikita wrote:

In my fire bug I had a 500 error with "Whoops, looks like something went wrong" in response.



Ok this is a bug I need to fix. Thanks for the report! I've added the issue to the projects bug tracker here for this to be fixed. If everything works out as planned I can hopefully push a fixed release later tonight.

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

qu1ckkkk
The Warp Core Stabilizers
#17 - 2014-04-17 19:51:06 UTC
qu1ckkkk wrote:
Roberta Chikita wrote:

In my fire bug I had a 500 error with "Whoops, looks like something went wrong" in response.



Ok this is a bug I need to fix. Thanks for the report! I've added the issue to the projects bug tracker here for this to be fixed. If everything works out as planned I can hopefully push a fixed release later tonight.


Find this fixed in v0.3 here. Following the update guide found hereshould get your sorted out :)

Proud developer of SeAT! A Simple Eve API & Corporation Management Tool.

Project Page: https://github.com/eveseat/seat

Wafflehead
Garoun Investment Bank
Gallente Federation
#18 - 2014-04-17 21:27:50 UTC
Looks good!, going to try it out tomorrow!
Euthanasia Anneto
Embers Children
#19 - 2014-04-18 08:29:11 UTC
Well, if you could create a converter from the ecm db to the seat db I might give it a try.

.EC.. of [TOHA], Industrialists with guns. We're overe there, some where and no where... Contacting go through ingame convo's .EC.. and [TOHA] are recruiting, get in contact with us

Roberta Chikita
Doomheim
#20 - 2014-04-18 16:47:43 UTC
qu1ckkkk wrote:

Find this fixed in v0.3 here. Following the update guide found hereshould get your sorted out :)


Work's fine thank you !

Just little fix for your UPGRADING.md.

At the end the command "php artisan down" must be "up" to online app :)
123Next pageLast page