EVIE - [0.6.0] - A new API interface ๐Ÿš€ (web-based)

Hello capsuleers of New Eden!

I am proud to finally announce the successful public deployment of my part-time project of the past years:
A brand new EVE Online API viewer: EVIE.

What is it?

EVIE is a web-based API viewer 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 viewer 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!

Where can I find it?

EVIE is hosted on https://spaceships.app :rocket:

Screenshots

The dashboard

Skills page
skills

Wallet page
wallet

Ore prices table
ores

Technical trivia for the nerds

  • EVIE is built in TypeScript.
  • This project originally started as a PHP website that used the XML API.
  • The whole project has gone through several iterations until it reached the state you see now. At one point I used a combination of the XML API and ESI, this code still exists in the client_legacy folder at the time of writing.
  • The frontend uses the Angular framework.
  • Because Angular is a one-page application framework, the page should never reload. Using websockets I managed to get SSO login to work without navigating away from the app.
  • In the backend I use Express for request handling.
  • The backend is based on a boilerplate I built for an Express-Typescript application.
  • Even though the ESI is cached on CCPโ€™s side, I built my own caching systems for both the frontend and backend of the application to minimize response times and data usage.
  • I hate Docker (but use it for deployment).

The repository is open-source and hosted on GitHub: https://github.com/Ionaru/EVIE

I'd love to hear your feedback!

Please report any issues you find on GitHub: https://github.com/Ionaru/EVIE/issues/new/choose
If you have a feature suggestion then letโ€™s talk about it! You can find me on discord: Ionaru#3801 or on Tweetfleet: @ionaru

1 Like

Looks awesome!

1 Like

Hey, cool initiative. I noticed the tech you use is surprisingly similar to what I use for my own project.

It looks like you managed to load in a bit of data. But as it is now it feels very much like just that; a list of data. So I think the main thing is to create some kind of purpose beyond that. Try to ask yourself what people would want to use your project for and create solutions for those things.

Since you mentioned wanting the website to work on mobile too, I wanted to mention that the ore tables do not fit on small screens.

Some more technical things about your code, that bothered me ( mainly out of personal preference ).

  • I saw you use something like *ngFor='let t of things', where I would favour *ngFor='let thing of things'. Those confusing variables are seen throughout the code.
  • Did you consider using rxjs-functionality instead of Promises?
1 Like

Thanks for the feedback, I will definitely improve the pages and show more information on them.

For your technical things:

  • Sometimes I use one-letter variables to test things quickly (the unfinished industry page is full of them), usually I change them to be more clear before I commit it but some do slip through.
  • For normal async code I prefer async/await because it makes the code more readable in my opinion. Events on the other hand work great with rxjs.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.