Code Monkey home page Code Monkey logo

evie's Introduction

EVIE

EVIE is a web-based API interface for EVE Online. It’s built using modern web technologies to provide a fast and responsive interface while still displaying a large amount of information.

My goal of this project is to build a robust API interface that is usable on any platform: including both desktop and mobile. cough cross-platform app cough. I don’t just want to display data from the API, but also do calculations, predictions and more to make EVIE more useful, even when you also have the game open.

Right now the features are limited, but new pages are being built and I have a lot of exciting features planned!


Screenshots

Dashboard

Skills Page

Wallet Page

Ore prices table


TODO & Ideas

General

  • Option to switch between TQ and SiSi.
  • Use shared functions between client and server
  • Selecting a subset of scopes for SSO
  • Something special on character birthday / April fools / christmas
  • Responsiveness
  • More pages!
  • More tests!
  • Set up automated testing.

Wallet page

  • Pagination
  • Cash-flow breakdown

Industry page

  • Fetch industry information from SDE(-like API) to server
  • Create routes so client can fetch industry info in small portions
  • Do cost calculations on resources, recursively

Configuration

EVIE requires some set-up to work, this information is for developers.

EVE Online developer applications

https://developers.eveonline.com/applications EVIE works with two EVE Online developer applications, one for logging in, and one for character auth. This is done so users can decide what scopes to grant for each of their characters.

  • SSO Login (Authentication Only)
  • SSO Auth (Authentication & API Access)
    • Give this all available scopes, only a subset will be used for EVIE.

Environment variables

  • DEBUG: Parameters for the debug package. See https://www.npmjs.com/package/debug for more information.
  • EVIE_CLIENT_PORT: The port the client should run on.
  • EVIE_DATA_VOLUME: Docker volume for the data folder.`
  • EVIE_DB_HOST: Host of the database to connect to.
  • EVIE_DB_NAME: Name of the database to connect to.
  • EVIE_DB_PASS: Password to use in the database connection.
  • EVIE_DB_PORT: Port of the database to connect to.
  • EVIE_DB_SSL_CA (optional): Location of the CA certificate in the container to use for a secure database connection.
  • EVIE_DB_SSL_CERT (optional): Location of the client certificate in the container to use for a secure database connection.
  • EVIE_DB_SSL_KEY (optional): Location of the client key in the container to use for a secure database connection.
  • EVIE_DB_SSL_REJECT (boolean): Whether to reject an insecure connection to the database.
  • EVIE_DB_USER: Username to use in the database connection.
  • EVIE_ENV: Configuration to pass to Angular for building.
  • EVIE_FA_TOKEN: FontAwesome 5 token.
  • EVIE_PROXY_SETTING: The setting Express' trust proxy should be set to. (Default: 1)
  • EVIE_SERVER_PORT: The port the server should run on.
  • EVIE_SESSION_KEY: Name of the session ID cookie.
  • EVIE_SESSION_SECRET: Secret used to sign the session ID cookie.
  • EVIE_SESSION_SECURE (boolean): Serve cookies over a secure connection only? Disable for local development.
  • EVIE_SSO_AUTH_CALLBACK: Callback URL of the SSO application that handles character auth.
  • EVIE_SSO_AUTH_CLIENT: Client ID of the SSO application that handles character auth.
  • EVIE_SSO_AUTH_SECRET: Secret Key of the SSO application that handles character auth.
  • EVIE_SSO_LOGIN_CALLBACK: Callback URL of the SSO application that handles login.
  • EVIE_SSO_LOGIN_CLIENT: Client ID of the SSO application that handles login.
  • EVIE_SSO_LOGIN_SECRET: Secret Key of the SSO application that handles login.
  • EVIE_SSO_APP_CALLBACK: Callback URL of the SSO application that handles login for the app.
  • EVIE_SSO_APP_SECRET: Client ID of the SSO application that handles login for the app.
  • EVIE_SSO_APP_SECRET: Secret Key of the SSO application that handles auth for the app.

evie's People

Contributors

dependabot[bot] avatar ionaru avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

evie's Issues

Calculate production profit based on item purchases

Is your feature request related to a problem? Please describe.
I want to know how much profit I made with production based on mineral purchases and production tax. This is currently not possible in Google Sheets because it requires keeping track of items in a storage system.

Describe the solution you'd like
A system that correctly takes these things into consideration for calculating profit:

  • Purchase price of minerals/components
  • Production tax
  • Material efficiency
  • Citadel rigs
  • Sell price of the product

Describe alternatives you've considered
None

Additional context

Then, having a manufacturing tool to tell it that you want to make a rifter at me 5 in a citadel in highsec with a t1 me rig, and have it know how much resources that takes, and automatically use those to determine the value of the output rifter, and then to watch transactions to see when this rifter is sold and give me a profit value on it.

Requires #58 to be completed for purchase/sales tracking.

Item tracking through purchases and sales

Is your feature request related to a problem? Please describe.
I want to track my item purchases and sales to calculate how much profit I've made. This is currently not possible in Google Sheets because it requires keeping track of items in a storage system.

Describe the solution you'd like
A system that tracks item purchases and item sales, it needs to store these items in a "warehouse". From these purchases and sales (+tax) a profit % should be calculated.

Describe alternatives you've considered
None.

Additional context

That I'd be able to select items for the system to track, and then have it automatically watch the transactions (maybe requiring a manual pull, but to automatically interpret the new transactions) to keep track of inventory changes, and per unit value of items. So if I buy 10 isogen one day at 25isk and 10 the next day at 35 isk, it would see that I have 20 isogen work 30isk pu.

Handling descrepencies where volume changes with no transactions could just be recognized with a dialogue and ask how the user wants to treat it, like if new minerals show up, ask if they want to add them at the current jita buy price, or a different price

Upgrade to SSOv2

Is your feature request related to a problem? Please describe.
As a developer I don't want to continue using the "old" SSO because it will be deprecated and removed in the future. The SSOv2 flow also provides a better user experience because it uses multiple steps to complete the process instead of dumping all information (character selection + app info + scopes) on one screen. It also looks way better :P

Describe the solution you'd like
Upgrade to SSOv2 and adjust login flow if needed.

Describe alternatives you've considered

  • Wait upgrading until SSOv1 is deprecated.
    • This risks using an outdated oauth system which might have security issues.
  • Use own login system and avoid SSO altogether.
    • Users have expressed the desire to use SSO login instead of regular login. Some will not use the application without an SSO login available.

Additional context
Currently blocked by ccpgames/sso-issues#40 and ccpgames/sso-issues#47.

Character is added multiple times if SSO is cancelled

Short description
Character is added multiple times in the browser if the SSO authentication is cancelled.

How to reproduce

  1. Click on the Add new character button in the dashboard
  2. Close the SSO window
  3. Click again on the Add new character button in the dashboard
  4. Complete SSO process
  5. Character is now added twice to the browser

Notes
The character is added only once on the server-side, reloading the browser will fetch the correct data and get rid of the duplicate.

Add a robots.txt

Is your feature request related to a problem? Please describe.
Robots are invading my website!

Describe the solution you'd like
Add a robots.txt

Websocket handshake returns 400

Short description
The websocket connection returns a code 400

How to reproduce

  1. Open the website.

Notes
The connection falls back on polling through https requests, so no functionality is broken.
See meteor/meteor#3339 for possible solution.

Summertime/wintertime issue skills page

Short description
On the skills page, the calculated time until the skill queue finishes does not take summertime/wintertime transitions in consideration.

To Reproduce
Steps to reproduce the behavior:

  1. Have a skill queue that goes past the next summertime/wintertime transition
  2. Go the the skills page
  3. Check the difference between values in-game and on the website.
  4. Difference should be 1 hour.

Expected behavior
The time until the skill queue finishes is correct.

Screenshots
image

Environment (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Version: 69

Additional information
Can we please hurry with the removal of summertime and wintertime changes?

Corporation Industry\Wallet

Awesome tool, though I think it would be much, much better if it also supported corporation-wide industry jobs and wallet history.

Ideally, I'd want it to have tabs for personal\corp on top of existing sections
Alternatively, a corp icon with tabs for industry\wallet\maybe other stuff (corp killmail display spring to mind as a relatively easy and useful feature) would be amazing to help manage the corp.

Blueprint calculator V1

Is your feature request related to a problem? Please describe.
When engaged in production activities I often wonder which items are profitable to produce when I would buy the materials required off the market.

Describe the solution you'd like
I want a calculator that calculates the production profit for the BPO's that I own.

Additional context
This first version will only do T1 blueprints.

24 hours less skills queue marking, sorting and search box on dashboard

I have a lot of characters alphas and omegas, on main dashboard i am having a hard time to look for some or certain characters and/or check if there are characters that has less than 24 hours in training queues.

To check the training queues (that has less than 24 hours) i have to click on every characters which is very time consuming

Is it possible to add red coloring if the skill queues on the characters is less than 24 hours (similar to skillq.net and Evemon), add search box and or sorting functions.

Update to Angular 7

Is your feature request related to a problem? Please describe.
I don't want to use an outdated Angular version.

Describe the solution you'd like
Upgrade to Angular 7.

Describe alternatives you've considered
Not updating? Nah that's silly!

Additional context
Needs upgrade to Typescript 3 as well.

Update @angular-devkit/build-angular

Is your feature request related to a problem? Please describe.

  • NPM and Github give notices about a security issue with the tar package.
  • The Node-sass version in use does not compile on Node.js 12

Describe the solution you'd like
Upgrade the @angular-devkit/build-angular package to resolve both issues

Describe alternatives you've considered
-

Additional context
Currently blocked by angular/angular-cli#14138 and waiting on a release.
This fix might not release for Angular 7, it is possible this needs to be resolved by an upgrade of Angular to version 8.

View industry jobs

Is your feature request related to a problem? Please describe.
As an EVE player engaged in production activities I want to view my running industry jobs because this information is otherwise not available without the game.

Describe the solution you'd like
I want a page showing my running industry jobs with at least the following data:

  • Job type
  • Item
  • Time until completion

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.