nexus-devs / nexushub Goto Github PK
View Code? Open in Web Editor NEW๐ Warframe and WoW Classic Economy Analytics
Home Page: https://nexushub.co
License: Other
๐ Warframe and WoW Classic Economy Analytics
Home Page: https://nexushub.co
License: Other
As suggested on Discord. 'Effort' would be defined by an item's ducat cost combined with their demand vs supply ratio and count. Higher demand with many offers indicates difficulty and obtainability.
How to implement?
Would be most interesting in a view to display top/worst performers -> When displayed as individual stat on the item page, it makes sense to display their relative ranking as well. Something like: 0.89 - #12.
From a programmer's point of view, we'll need to just take the 3 values we have (price, ducats, supply/demand) and arbitrarily see what makes most sense.
Who would benefit from this?
Regular players who aren't too big into the capitalism aspect (shows them the best places to farm). Combined with patch note events as discussed with @-stratosphere-#5814, this may be a nice set of data to have when analyzing trends/game meta.
/category/item/
)/img/category/Something Prime-min.ext
)Add more if necessary
query would filter items by fuzzy match
Add a check on startup that verifies all necessary mongoDB indexes and creates them if they don't exist.
Not sure why this isn't a thing yet, the code basis for this should still be there, just perform a median calculation in each interval with the available price stack.
Here's an old design for reference
Will require 'last results' endpoint (Deleted it a while ago to avoid misuse, but should be there for this use case). We'll also need an endpoint for busy hours, returning an array with non-duplicate offers per interval and their relative percentage.
possible regions: EU, NA, ASIA, RU, SA, SEA
Need to purge depending on supply/demand. Huge demand increase indicates sudden market change that would otherwise be purged.
The current open source page is just using a very basic list layout. However, since the open source approach is integral to our project, we should do as good of a job explaining the concept as possible.
The core message of the page is supposed to be that we're an open community that welcomes anyone who wants to shape the future of this project.
Sub goals of the page include:
Some useful references:
https://opensource.google.com/
I'll keep this list to keep track of every UI feature that has been omitted while building certain components. (Most likely since they're unnecessary for an MVP)
API data already exists, just need to implement the Vue components based on old designs. (PM me for designs, can't access them at this time)
In the item statistics endpoint, add a key to each component which displays the price-range in which most requests are located in.
Possible approaches:
Combine with #36 (individual buying/selling statistics)
Need help looking into these heapdumps for potential memory leaks. To analyze: Open Chrome, go to Profiles in dev tools and load the snapshot.
Currently the average for the full time window is calculated by summing up each interval's avg and dividing by number of intervals.
The issue: One interval with extreme prices and only few offers that day affects the overall average too much.
To fix: Before calculating average for each interval, add the price sum to the main component. Later divide price sum of main component by valid offers.
Invalid requests return no information about rejection reason.
To fix: Return Error Object with proper reason. If return value instance of error -> send error back.
Input suggestions are too slow to refresh on every keypress, so instead fetch them only after no key has been pressed for 50-100ms.
Don't know how to reproduce. Prints "\n" of normal timelog afterwards too, so no immediate double-posting. (time diff was 0.0011ms)
The codebase doesn't have a license, contributing information, or copying information. Providing those would allow for contributions from others, if the team is open to it.
See Venka Prime Set, Banshee Prime Set, Fragor Prime Set. No idea what causes this. Sometimes the sets do get through. But there definitely should be more.
(checked the requests collection, there's lots of valid offers)
Implement some sort of cache to reduce input to resource-node for most-used methods.
Site doesn't have Konami Code. I r8 0/8, very bad m8.
Suggestion: Convert all characters into emojis.
Implement some regex that matches the allowed in-game special character pattern. Allowed characters:
-
.
[
]
_
no space allowed.
To reproduce:
Expected result:
Nothing, vertical pan should be ignored
Actual result:
Seemingly "random" event is triggered with deltaX and deltaY being the diff of what seems to be the left screen center (not confirmed). At the same time, the event immediatley receives the isFinal
property, which triggers the reset()
function. Listening to the panend
event won't work either (never gets triggered)
Edit: This may be an issue with hammer.js, not the implementation
Mostly used as a subscribable endpoint. New request comes in => publish request.
Presently your mongo connection string is in plain text.
Just for your own security, while it is a LAN-reserved IP, it'd still be safer to move it to either a configuration file or, better yet, a process file for something like PM2
This will likely require breaking changes. A sensible schema may look like this:
{
item: "itemname", // key used to be called title, but for consistency item is preferred
buying: {
offers: {
count: Number,
percentage: Number,
},
components: [/*...*/] // original components array, but offers {} like above instead of supply/demand
},
selling: {/* same as buying */},
combined: {/* same as original, but no supply/demand keys, use offers instead, offers.percentage is 100%*/}
}
Might have missed something, so it's best to look at other possibilities too.
List of items and their user requests in the last hour. Generated from /items/:item/requests, Would dynamically maintain the items
collection.
If method is routed but Method.js has not connected to the mongodb, unhandled promise rejection occurs because this.db
inside Method is not defined.
Suggestion: Return 'Not ready' (202 - Accepted)
All unique requests in the last hour
Add a percentage how much a price can be "trusted". E.g. if theres only one offer it should be about 2%~, if there are 10k offers with almost the same price 100%
In order to keep processing time constant, even on longer time-range queries, it would seem sensible to have an upper limit of requests processed. However, instead of capping the output with a limit
, we'd have to skip every n'th request based on an estimate of how many requests are present.
The resulting supply/demand data would then be multiplied with the according factors.
http://localhost:3010/warframe/v1/items/ember%20prime/statistics?timeend=1507814464
returns data for all requests, although it's actually in the future.
Average prices are calculated incorrectly (divided by number of intervals?), even if one or more intervals have no values
/view/dist/favicon.ico is currently ~350kb in size, seems f'n unnecessary. Compression is possible but seems to require some workarounds. Think GIMP supports compressed ico files.
Add scripts and services that get run on startup or shutdown, sort of like middleware.
Example:
[{ name: "Ensure and create index", script: "/scripts/mongo_index.js", entry: "start" }, ... ]
Improper handling of process.hrtime()
. Requires hack-free solution (without 3rd party library).
70% supply and 30% demand means 3 buying is the same as 7 selling for avg
Required unit tests:
Adds a system that allows attaching bounties (in the shape of ingame assets) to Github issues. List of bounties will be on separate page on development hub. New listings may also get automatically posted on Discord and mention anyone who joins the specific role.
This feature will likely bring a lot of life, or at least attention, to our open source approach.
Will be used by players who need ingame currency/items in a short time frame.
Also useful for developers that were interested anyway and needed that bit of extra convincing to get more involved into the respective issues.
Due to the scope of this project, the documentation will be kept to an abstract minimum
Scraping
Issues with bounties will be scraped through Github's API. Issues will be filtered by the Bounty
label and then by user (whether or not they're in the nexus-devs org). The title should include the bounty like Some Issue [Bounty: 30p]
where everything between the last :
and last ]
will be taken as bounty.
User implementation
The resulting data will then be displayed on their own page on the nexus-stats website (simple sortable list) and updated through our nexus-bot on discord.
So you can remove the hardcode limits
Not sure yet which feature works best with this, but the following features should be covered:
Edit: Might be a good idea to tie this with the notification example, so people have a transition between the two and we can explain the missing gaps that pop up when only focusing on the UI or API part.
Min-diff between requests still working.
Bug occurred after refactoring auth.js into auth & limit.
So users could query for R0-R10 individually. Default value should be 0, so the prices appears as it should be (unranked) on the website.
Add optional param to get stats from a specific region.
Caused in in /warframe/v1/game/updates
due to lost connection (socket hang up)
Solution: Use request package instead of http (has built-in workaround)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.