open All Channels
seplocked EVE Technology Lab
blankseplocked Introducing lootTracker -- Wormhole loot tracking software thing
 
This thread is older than 90 days and has been locked due to inactivity.


 
Author Topic

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.15 22:40:00 - [1]
 

Edited by: Sable Blitzmann on 07/07/2011 07:31:06
Fellow pilots,

A while back, my corp ran a C3 wormhole that had a bunch of anomalies. I was tasked with running my alt as salvager, and let me tell you it was somewhat of a pain managing all the loot in a way that was fair for everyone coming and going from fleet. I eventually resorted to screenshot'ing the collected loot whenever someone left or joined the fleet to keep track of who earned what.

So I began work on an application that would help track loot and who helped earn it. Took me about a week to get functionality down, and then another week or so tweaking the look and feel.

The basic idea here is simple:
Operations are broken down into groups, which include the people who were in the fleet. When someone leaves/joins, the owner of the operation removes/add them and a new group is created. Loot records are assigned to groups, so that people are payed based on what they worked for. All loot is dumped into a corp hanger, preferably one that is restricted to directors and trusted members only.

When the operation ends, the loot is eligible for sale. When selling, you simply put in how much each loot sold for. After that, lootTracker calculates how much each members gets based on the percentage of loot their group helped obtain.

Here's a proof of concept of how the application works in regards to calculations. I made this before I started work on the application as a sanity check to make sure my idea would work and make sense. Note: all calculations were done by hand, so there may be a few mathematical errors on this page, but the basic gist is the same.
Proof-of-Concept

Features
- Restricted to corp members only
- Some pages can be restricted to certain roles (by default, selling and payout is director-only)
- Can pull market data from EVE Central to estimate total profit of recorded loot
- Makes tracking loot easy and, more importantly, fair to all involved
- Though it's geared more towards WH operations, you can add any group of loot via SQL queries. Minerals and ore, for example, can be added to the loot array.
- (not on demo) Import sale data directly from the API to make loot sale days easy. (doesn't affect loot logging; still have to manually type those in, unfortunately)

Demo
Demo is available here:
lootTracker Demo

Only works in the IGB at the moment. Point the IGB there, type in a password, and hit register. Thereafter, you may log in with the same password. Passwords are encrypted, but I still advise you to use a password that's not linked to any online account you have. Every time someone registers, their name will pop up in the member list operations page and will be able to be included in operation groups. Furthermore, the member list is preloaded with some of my corp members so that there are a few people available to test things out with.

Best thing about this? It's 100% free and open-source. Git repo here.

License
This project is licensed under the AGPL. Basically, if you use it, you must keep your version and any modifications you make to it open-source. It would be awesome if you opened up a git repo for your installation so that I can pull any improvements you make into the main project. GitHub makes this easy by their fork and pull-request features.

Current Release
This application is still in pre-alpha stages until you guys can battle test it a bit. If you find any bugs or problems, or would like to see a new feature, let me know via the GitHub issues page. but, as far as I know, you can download the source, edit the configs, and start using it immediately with almost no issue.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.15 22:43:00 - [2]
 

Edited by: Sable Blitzmann on 07/07/2011 07:28:45
Edited by: Sable Blitzmann on 07/07/2011 07:23:50
Edited by: Sable Blitzmann on 30/06/2011 07:36:25
Edited by: Sable Blitzmann on 24/06/2011 03:44:35
ISK Donations
I'm not asking for a price to use this service like so many other applications out there. I believe in free open-source software. However, I do welcome donations of any amount. If your corp or group of friends have benefitted from this, I would ask for an ISK donation if you can spare it. Again, it's totally optional and not required; I made this becasue I thought it might be a fun project (and it is!) and becasue it would help my corp when we move into a WH, not to get rich off it. =)

Known Issues
1) For some reason, in the IGB, the back button causes a 400 error, often after POSTing a form submission. So, say you login and hit the back button. Bam, 400 error. I have no idea how to fix this, if it can be fixed. If anyone has any ideas...
2) Light color scheme. I'll get around to making a dark scheme similar to that of EVE Gate.

Also, if you plan to use this, let me know! I hope to get a list of pilots/corps utilizing this up sometime in the near future! =)

Changelog
06.21 - 2c9eeb removed requirement for IGB for login, however it's still required for registration.
06.22 - b4741b brought with it API registration. Now registration is as secure as can be and can be done without the IGB. lootTracker is now fully functional in any browser.
06.23 - 4e4063 added an admin page (director-only by default) that can tweak the database precision when doing calculations regarding % of loot collected by each group. Default is no decimal places in percentage (12%), but can now be extended to be more precise (ie: 12.345%). Also add a member reset option.
06.30 - pushed `journalImport` branch. This is a development branch that isn't guaranteed to work, however it tracks progress on this feature and everyone is welcome to pull from it and test it out. =)
07.03 - 6ac803 merged `journalIport` branch into master. It seems to work well. Refinements and polish continue.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.15 22:46:00 - [3]
 

Reserved...

Erik CoolBreeze
Amarr
Posted - 2011.06.16 09:47:00 - [4]
 

How do you get the loot into the system? manual type it?
Haven't tried it, and honestly don't play enough to bother trying either.
Sounds good if loot can be fetched, but I have never seen such an option in either API or IGB.

TorTorden
Amarr
Posted - 2011.06.16 11:48:00 - [5]
 

IGB only seems rather silly considering the IGB is pretty much just chrome.
Using it for authentication is also a no no, I'm sure many people here can show you a couple of firefox plugins that let's you spoof them easily.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.16 19:51:00 - [6]
 

Edited by: Sable Blitzmann on 16/06/2011 19:52:55
Originally by: Erik CoolBreeze
How do you get the loot into the system? manual type it?
Haven't tried it, and honestly don't play enough to bother trying either.
Sounds good if loot can be fetched, but I have never seen such an option in either API or IGB.


Unfortunately, yes, you must manually type how much loot was collected, along with how much it was sold for... I wish there was an IGB option to drag and drop items into a browser to generate a string with itemID and amount. For the selling, I have been playing around with the idea of importing it from API wallet transactions, but this might take a while if I decide to go for it.

Originally by: TorTorden
IGB only seems rather silly considering the IGB is pretty much just chrome.
Using it for authentication is also a no no, I'm sure many people here can show you a couple of firefox plugins that let's you spoof them easily.


It is very silly, and I do plan to change it soonish. However, I must stress - authentication is not done via IGB. It's very obvious that character info can be spoofed via add ons (hell, I spoofed them while developing on FireFox). However, that's where the password comes in at. Once you register a password with the system, you'll have to know the password to access that character.

The only header lootTracker uses for authentication is the character ID (and the character name for the non-logged in Welcome message), and even then you must supply the correct password for the character. On top of that, in normal situations (ie: when not using the Demo), if the character ID isn't a part of the corp, they aren't able to register.

Again, IGB isn't used for authentication. I have a user and password system in place for that. I will get around to opening it to non-IGB browsers soonish, shouldn't be difficult at all. Eventually, I'll also make registration very secure by using the limited API to verify character and corp...

PsyKzz
Posted - 2011.06.18 14:25:00 - [7]
 

Would you not find it better to use the api to provide the information for when items are sold?

This way you can be 100% sure that you are giving the right ISK to the the same people.

NickyYo
Posted - 2011.06.18 14:43:00 - [8]
 

WTF!!!!!
I just either caughts a Trojan from your Proof-of-Concept type website or the eveonline website!!!

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.18 15:59:00 - [9]
 

Originally by: PsyKzz
Would you not find it better to use the api to provide the information for when items are sold?

This way you can be 100% sure that you are giving the right ISK to the the same people.



Yes it would. However there are several complications to that. For example, to use such a feature would require that you check the "use corp account" every time you sell so that it goes tot he corp journal. If someone forgets to do that once in a sale process, the whole thing can be screwed up, and since it's not likely to get every corp members API and check their journal for mistakes, you're relaying on the user to do what they're supposed to do. So it's either rely on them to use the corp account on each sale, or rely on them to just put in the right amount in the first place.

There's other little problems, like how to know where a sale ends and begins in the corp journal, actually using to correct division, cached times, etc.

Like I said before, it is an idea that I'm considering adding at some point in the future. But for now I would much rather just trust the user to enter the actual profit and hope they double check it rather than develop a way to fetch the data from the API and do a whole bunch of sanity check to make sure that it's correct. Maybe it can be used as an autofill, and the member can double check and do a final submission or something. Not sure. If you have any ideas or comments to add to this it's certainly welcome, and you're, of course, more than welcome to develop it yourself if you're bored. =)

Originally by: NickyYo
WTF!!!!!
I just either caughts a Trojan from your Proof-of-Concept type website or the eveonline website!!!


OH NOES!!! WHAT EVER WILL YOU DOE??!!!

I can assure everyone that this did not come from my demo site. NFS is a reputable host that I've never had a problem with, and the only thing being hosted on my account is basically a clone of the projects git repo (modified to allow anyone to regiter).

I'm also pretty certain it didn't come from the EVE Online website. Maybe you should stop going to those shady **** sites, hmm?

If you're the paranoid type of person, go ahead and clone the git repo and demo it on your own server. I could care not. =)

PsyKzz
Posted - 2011.06.18 16:15:00 - [10]
 

Originally by: Sable Blitzmann
Originally by: PsyKzz
Would you not find it better to use the api to provide the information for when items are sold?

This way you can be 100% sure that you are giving the right ISK to the the same people.



Yes it would. However there are several complications to that. For example, to use such a feature would require that you check the "use corp account" every time you sell so that it goes tot he corp journal. If someone forgets to do that once in a sale process, the whole thing can be screwed up, and since it's not likely to get every corp members API and check their journal for mistakes, you're relaying on the user to do what they're supposed to do. So it's either rely on them to use the corp account on each sale, or rely on them to just put in the right amount in the first place.

There's other little problems, like how to know where a sale ends and begins in the corp journal, actually using to correct division, cached times, etc.

Like I said before, it is an idea that I'm considering adding at some point in the future. But for now I would much rather just trust the user to enter the actual profit and hope they double check it rather than develop a way to fetch the data from the API and do a whole bunch of sanity check to make sure that it's correct. Maybe it can be used as an autofill, and the member can double check and do a final submission or something. Not sure. If you have any ideas or comments to add to this it's certainly welcome, and you're, of course, more than welcome to develop it yourself if you're bored. =)


If this is for use with a WH corp then more then likely they want full api's of every member, if not why not?

With that you would just have to specify times and you could just manually check who is the designated 'seller' Pick a time period, eg all items were sold on the 19th of June, then just take all journals relating to them amounts, this could support more then one seller and would be SUPER simplified if they did use 'corp wallet'.

I would like to implement it but i think i was little overwhelmed by your code. I would need to spend a bit of time to read into it, before i start getting involved.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.18 18:16:00 - [11]
 

Originally by: PsyKzz
If this is for use with a WH corp then more then likely they want full api's of every member, if not why not?

With that you would just have to specify times and you could just manually check who is the designated 'seller' Pick a time period, eg all items were sold on the 19th of June, then just take all journals relating to them amounts, this could support more then one seller and would be SUPER simplified if they did use 'corp wallet'.

I would like to implement it but i think i was little overwhelmed by your code. I would need to spend a bit of time to read into it, before i start getting involved.


That's a pretty good idea. Our corp doesn't keep full APIs on hand after acceptance into the corp. We're a small corp and run our operations based on trust. But, considering that, by default, the only people who can sell stuff anyway are directors, this shouldn't be too hard to achieve. It would require a means to fallback to manual submission in case the API fails for whatever reason, and would require quick a bit or reworking to the code. But it should be doable. ^_^

I'll make an Issue about it on GitHub with the basic ideas. If you fork the code to work on it yourself, let me know so I can follow your development. =)

TorTorden
Amarr
Posted - 2011.06.19 14:14:00 - [12]
 

Quote:
With that you would just have to specify times and you could just manually check who is the designated 'seller' Pick a time period, eg all items were sold on the 19th of June, then just take all journals relating to them amounts, this could support more then one seller and would be SUPER simplified if they did use 'corp wallet'.


Sounds like making something more complicated than necesary imo (again my 0.02$).
Just stuff all the loot for an op into a corp hangar section and fetch values from the corp asset dump, link those values to the op, and presto workable data.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.20 21:07:00 - [13]
 

Edited by: Sable Blitzmann on 20/06/2011 21:16:06
Originally by: TorTorden
Quote:
With that you would just have to specify times and you could just manually check who is the designated 'seller' Pick a time period, eg all items were sold on the 19th of June, then just take all journals relating to them amounts, this could support more then one seller and would be SUPER simplified if they did use 'corp wallet'.


Sounds like making something more complicated than necesary imo (again my 0.02$).
Just stuff all the loot for an op into a corp hangar section and fetch values from the corp asset dump, link those values to the op, and presto workable data.


It actually isn't too complicated, and can potentially be a nice usability feature. I've opened up a support ticket here detailing how this might be achieved.

As for doing the same with loot submissions (as opposed to sale submissions), I'll look into that, but that presents problems of it's own, such as determining how much was already in the hanger and how much was added, making sure it's for the proper group in the operation, etc. it would be awesome if CCP could supply info on whats in your cargo... But it's still a neat idea and would be awesome if it can work, would probably be a variant of the above feature. If anyone has any ideas as to how this can be achieved, let me know!

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.21 20:59:00 - [14]
 

I've looked into trying to import asset data from the API to record the loot automatically (from corp hanger/current ship).

Unfortunately, this will not work because of the API cache. The asset cache is 6 hours long, way too long. Why? Say that you start an operation and an hour later you have a few people join in on the op. Because of the way the project is designed, you record the loot that has been collected for the first group. The API should be able to see this loot because it's the first time the API has been called. However, after another hour, a few people leave the op. You go and record loot for the second group and find that, uh oh, the API data is old because of the cache. You still need to wait 5 hours for an update.

The asset API simply doesn't update frequently enough to be of any use. I hope that CCP, in the near future, implements an IGB function that allows you to import your cargo hold into a textarea or something similar. Until then, or unless someone has a better idea, manual data insertion is required to record the loot. =/

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.24 03:49:00 - [15]
 

Edited by: Sable Blitzmann on 24/06/2011 03:58:06
Added a changelog to the second post.

Since my last post, I've remove IGB requirement, added API registration, and added admin page. None of this is on the demo site, and I doubt it will be anytime soon.

A note on API registration - full API is required. Why? lootTracker will, hopefully in the near future, use the journal API of character to verify loot sales. Journal API is only available to full API, so... The API key is encrypted, and only those who know the secret key (ie: webmasters and lootTracker itself) can decrypt them to use for API query.

Sable Blitzmann
Minmatar
Massively Dynamic
Posted - 2011.06.30 07:33:00 - [16]
 

I've been working on the feature to import sale data from the journal API. It still has a few kinks in it (it seems that sometimes the API isn't sorted in the proper way. I'll be running more tests in the next few days to confirm if this is the problem), but so far it's coming along nicely.

This feature is currently being worked on in the `journalImport` branch. I've just pushed this branch to the GitHub repo.

Also, on the topic of the demo, I'll be reworking it shortly to include a few guest accounts rather than have people register. The reason behind this is because the new registration system calls for the characters full API, and I can't ask people to demo something that requires their full API.

Still looking for thoughts/suggestions/feedback from anyone who has tried it (if anyone)


 

This thread is older than 90 days and has been locked due to inactivity.


 


The new forums are live

Please adjust your bookmarks to https://forums.eveonline.com

These forums are archived and read-only