Giter VIP home page Giter VIP logo

Comments (4)

jenslauterbach avatar jenslauterbach commented on June 18, 2024

@11philip22 Thank you for taking time to report this issue. I am not sure if the project is still maintained, to be honest.

Maybe @zweizeichen has time to take a look.

from element43.

zweizeichen avatar zweizeichen commented on June 18, 2024

@jenslauterbach Hi, it's been a while :)

@11philip22 Thanks for reporting and your interest in our project :) @jenslauterbach was right. As you can probably guess from EVE-Tools/vue43's general state, it has not been maintained for quite a while. At first glance it seems like some attribute(s) in the theme are missing. This is probably due to a more recent version of vuetify introducing additional properties. You could try pinning vuetify to 1.0.7, however I'm not sure this would work. I guess themes could be implemented in a less hacky way (like properly merging data structures in Stylus) which would prevent issues like this in the future. Even if this would work, most of the other dependencies would still be horribly outdated though.

I'm not even sure client-side rendering is such a smart idea for EVE apps as you're handling large volumes of highly relational data (orders->stations->systems->regions, inentoryTypes etc.) and you tend to write a lot of boilerplate code just to get an order to appear in the user's browser. It may be smarter easier and more maintainable to just fetch that data on the server side (or even keep it in a DB seeded from ESI) and simply pass the client some pre-rendered HTML like in the good old days(tm). Maybe open a websocket connection listening for updates streamed by esi-markets and then refresh the page once there are new orders. Vue43 was a bit of an experiment in that regard and it turned out that a lot of data was sent around which often resulted in a suboptimal user experience. It also used lots of memory for server-side-rendering. I really liked the design though :) Reducing data sent to the client by providing a graphql backend also led to mixed results as we'd often have to load thousands of entities to e.g. display all orders for a busy item such as Tritanium. Turns out that most graphql frameworks (at least back then) seemed not to be designed for that use case. You could make it work in Go but again that solution was a bit over-engineered to say the least.

The lack of maintenance combined with the high velocity in the JS front-end space (for example Typescript support in the vue ecosystem seems to have come a long way since vue43 was originally implemented) has led to vue43 probably needing something akin to a full rewrite to be honest. While there is a decent chance of the backend services still functioning fine or just needing a few fixes here and there, I'm afraid vue43 might be beyond salvage at this point (I have not taken a closer look at the situation though). So I would kindly ask you to take a step back and maybe tell us what you're trying to achieve. We might be able to provide you with some directions. You may be better off simply re-using parts of our backend and writing a front-end system of your own rather than porting vue43 to a recent version of nuxt.

from element43.

11philip22 avatar 11philip22 commented on June 18, 2024

HI, Thanks for the quick response guys.
What i am trying to achieve is to create a tool that lists all profitable items for trading between jita and a private structure.
Kinda like what Goonswarm has with goonmetrics. https://goonmetrics.apps.goonswarm.org/importing/1030049082711/markup/

from element43.

zweizeichen avatar zweizeichen commented on June 18, 2024

Happy to help! That should actually not be too difficult. You may not even need element43 services for that. In fact, you may not even need a 'real' web application or database at all: You'd basically write a Python script or Go program (whatever you like best and has an ESI client library available) to fetch the data and output an HTML file or even easier CSV every X minutes/daily with a cron job. You can then serve that file with any HTTP server (such as nginx) or open the CSV in your favorite spreadsheet tool.

There's a catch, however. Unless they added an endpoint to ESI (IIRC there is none), you do not know the historic volume of items traded in your structure as ESI only supplies region-level volume data for trade. This makes it difficult/impossible to estimate an item's potential profit unless the structure is the main trade hub in that region. What you do have access to though are the orders in your structure's market.

So the first question you want to answer is what your import strategy would be: Do you want to trade based on comparing current Jita prices with current prices in your structure or do you want to trade based on historic (e.g. weekly) averages in regional prices? Or do you maybe want to employ a hybrid strategy? If you are lucky to supply a trade hub, trading based on historic averages is a potentially safe option as they are based on trades which actually took place. Whereas order data is generally skewed by scam orders. So calculating averages won't get you that far unless you're doing some fancy statistics and even then you do not know if items are actually traded for that price unless there's a lot of volume in the market. Also, when an order disappears from the orderbook you do not know if it was fulfilled or if the order's owner deleted it.

For example, a very simple import tool would compare last 7 day's sum of daily volume multiplied by average daily price for each item between two regions and output those items with the highest difference. This could provide hints towards items which may have a somewhat stable price difference between two regions (always double check with a market viewer, sometimes one market may be just lagging behind the other). Another short-term option would be downloading all orders in two regions or stations and comparing those to see if you can simply haul goods from A(sk) to B(id) which is more similar to a classic trade finder.

Note: If you want to trade based on your structure's market, you need authentication for requesting data as your structure is, well, private. Head over to https://developers.eveonline.com/ and create an application with the permission to read structure markets. Then, use https://github.com/EVE-Tools/element43/blob/master/util/tokenfetcher.py and edit-in the client secret and id as well as the scopes to fetch a token you can use to query ESI on behalf of the character you picked when running that script (the character obviously should have access to the structure). You can then use that token for making requests on behalf of that character in the future. Keep these IDs and tokens secret!

from element43.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.