GithubHelp home page GithubHelp logo

sean-clayton / elite-dangerous-market-tracker Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 872 KB

A live tracker of market goods for Elite: Dangerous. Development repo at https://git.seanclayton.me/sean/elite-dangerous-market-tracker |

Home Page: https://elitemarkettracker.com

License: ISC License

JavaScript 2.22% CSS 85.01% CoffeeScript 12.77%

elite-dangerous-market-tracker's Introduction

Elite: Dangerous Market Tracker

By Sean Clayton (CMDR SKULBUNY)


Build Status

Development Status
Build Status
Code Climate
Test Coverage

Known Issues

  • It's not working

Application Info

What it is

A tool to contribute and analyze market information in the world of Elite. Also functions as a API for 3rd-party applications to hook into.

How it Works

Contributors add the following information:

  • System name (if one does not exist)
  • Station name (if one does not exist)
  • Commodity name
  • Sell Price
  • Buy Price

The server will then store all info in a database alongside with a timestamp, creating a history of each facet (such as a history of a system, station, and/or commodity). A user will then either specify a system/station/commodity or be defaulted to a global view, displaying information such as global average vs global min/max.

Anticipated Features

  • Add information to database
  • View information from database
    • In graph form
    • JSON
  • Account creation
  • Personalized Dashboards
    • Customized views
    • Personal graphs with real-time information

Supported Browsers

I intend to only support the latest 2 versions of evergreen browsers, which are:

  • Google Chrome
  • Safari
  • Firefox
  • Internet Explorer

Evergreen browsers are web browsers that update themselves on startup, without user input, thus keeping it fresh (evergreen). The latest 2 versions of these browsers are what I'm targeting—for example, at the time of this writing (2014-01-11), Google Chrome's latest 2 versions are v39 and v38 and Firefox is v34 and v33.

This application also is 100% dependent on JavaScript. Literally nothing will work if you have it disabled, so please enable it :) You may not like it, but when people say something along the lines of "People who can't support people who block JavaScript are just bad developers" is like saying a wideout in American football is a bad reciever if they use gloves to catch the ball: It makes it easier for them to do their job better and more efficiently, at the cost of the extra <1lb on their body. A very great trade-off, in my opinion, and I don't ever intend on supporting JavaScript-disabled browsers.

Development Info

Prerequisites

  • Node.js v0.10.33
  • NPM v1.4.28
  • Meteor v1.0.2.1

Installation

  1. Run git clone [email protected]:sean/elite-dangerous-market-tracker.git wherever/you/want (Replace "wherever/you/want" with your preferred destination")
  2. cd into the directory specified in the previous step
  3. Run meteor to build and execute the app (defaults to port 3000)

Supported Environments

  • OS X 10.10 Yosemite
  • Arch Linux

Note: This should build properly on any system that Meteor officially supports, but I don't have enough time to test for all of those environments. Soz.

3rd-Party Meteor Packages Used

  • iron:router | Adds routing
  • momentjs:moment | Parses date objects really well. Obviously a huge time-saver for this project
  • meteorhacks:fast-render | Renders page before DDP happens. Makes it render initially from static html, then uses reactive stuff
  • pfafman:nvd3 | Graph library. Prone to change.
  • fourseven:scss | Adds scss capabilities
  • bstocks:bourbon | Huge library of awesome scss mixins/functions/helpers. Best thing for scss. Better than compass
  • bstocks:neat | Easily the best grid framework out there. Only caveat is it relies on scss, but I see that as a plus.
  • perak:fuzzy-search | Fuzzy search framework
  • infinitedg:gsap | Wrapper for the GreenSock animation library. It's pretty freaking cool.

Contributing

Submitting Market Information

Use the tool! This is probably the easiest and least expensive (ie. Free) option to contribute to this project. It's pretty useless if no one uses it!

Pull Requests

Donating code is probably the best form of payment I could receive. I'd be more than happy to run all of my open-source projects from my own home during my free time, but sadly, there's not a lot of that free time left :(

If you wish to do a pull request with some bug fixes or whatever, please make sure that the following is met:

  1. Code style is the same
    • Spaces not tabs
    • 2 spaces per tab
  2. Code is DRY

Other than that, I don't think I'm very stingy when it comes to injecting yourself into the project. Thanks for lending a hand :)

Submitting Issues

I use the Github Repo issue tracker for managing the issues of this project. Please submit any you have with as much detail as possible--they really do help out a lot. A few examples of what to submit:

  • Critical Issues
  • Feature Requests
  • Enhancing current features
  • Bugs
  • Discussion
  • Questions

Donate

Not a developer? I don't discriminate--I'd be more than willing to take your money. But please note before throwing your wallet at me:

This project does not run on money. If you choose to donate money, it will be used for things like coffee, bourbon, beer, or something, unless I receive enough to pay my current salary.

That said, here are the current ways to support my projects:

Gratipay PayPal Bitcoin Flattr

Sharing is Caring

Programming skills not up to snuff? Wallet low on cash? Have a Reddit or Twitter account? Sharing this project around helps it grow!

Tweet Reddit


Legal Info

Copyright Notice

Elite © 1984 David Braben & Ian Bell. Frontier © 1993 David Braben, Frontier: First Encounters © 1995 David Braben and Elite: Dangerous © 1984 - 2014 Frontier Developments plc. All rights reserved. 'Elite', the Elite logo, the Elite: Dangerous logo, 'Frontier' and the Frontier logo are registered trademarks of Frontier Developments plc. All rights reserved. All other trademarks and copyright are acknowledged as the property of their respective owners.

Copyright (c) 2014-2015, Sean Clayton

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

elite-dangerous-market-tracker's People

Contributors

sean-clayton avatar

Stargazers

 avatar

Watchers

 avatar  avatar

elite-dangerous-market-tracker's Issues

Public API

Enables anyone to hit the site and receive JSON. I think I only want to support JSON at the moment, but if someone wants to contribute other formats like XML or YAML or something, that'd be cool 😎

I want the URL to hit be any url with data, suffixed with .json. So if, for example, http://elitemarkettracker.com/system/LHS-3448/ shows a bunch of info for that specific system and its stations, etc, then http://elitemarkettracker.com/system/LHS-3448/.json should return the JSON for that. Shouldn't be hard to implement.

Data Structure

I'm a plain ol' front-end dev who just happens to know a now-backend language (JS/CS). I suck at databases. Really bad. Any help or input on how to structure this database would be great 😎! All I'm really asking for is some direction on how I should handle the structure of the Station -> Commodities Market. There is a lot of repeated information inside of the way I'm thinking, which would be something like:

{
  name: "Abraham Lincoln Gateway"
  system: "Sol"
  type: "station"
  market: [
    {
      category: "Chemicals"
      name: "Explosives"
      buy: 123
      sell: 321
      isRare: false
      date: "2015-01-11T23:20:10.345Z"
    }
    {
      category: "Chemicals"
      name: "Hydrogen Fuels"
      buy: 456
      sell: 123
      isRare: false
      date: "2015-01-11T23:25:35.526Z"
    }
  ]
}

{
  name: "Dalton Gateway"
  system: "LHS 3447"
  type: "station"
  market: [
    {
      category: "Chemicals"
      name: "Explosives"
      buy: 232
      sell: 121
      isRare: false
      date: "2015-01-11T23:20:10.345Z"
    }
    {
      category: "Chemicals"
      name: "Hydrogen Fuels"
      buy: 787
      sell: 542
      isRare: false
      date: "2015-01-11T23:25:35.526Z"
    }
  ]
}

I think it might be a better way to optimize this—maybe, maybe not, but I'm not knowledgable on the subject enough to decide that.

Per-Account Dashboard

There should be a dashboard where you can build your own graphs. This is gonna be a hard one to crack, but I want it in :)

URL scheme

I'm a huge proponent of semantic things, so the URL should reflect that.

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.