EveHQ NG UI/UX

EveHQ NG UI/UX
This document doesn’t represent the final requirements but only a draft of them.

High-level requirements, constraints and principles

Main window

  1. For big screens not for phones. The application targets desktop computers not mobile devices so there is no need to keep in mind phones. The main target resolution is 1920×1080 and form-factor is 16×9. The minimum supported resolution is 1600×900. The minimal supported physical screen size is 15”.
  2. Full-screen application. The application will not have system title and menu bars. There should be actions to close, to send to tray, to collapse the main window provided be the application.

User input

  1. For mouse and touch screen. Mouse for desktop computers is classic but monitors with touch screen become more common. The first version will not target tablets but in the future versions they could be supported. Hence when we develop UX we need to keep in mind not only mouse but touch screen as well.
  2. Keyboard shortcuts. Keyboard is a huge time-saver. Well thought-out keyboard control is a must in a time-saving application.
  3. Voice commands. Voice input could be a good feature for such a support application as EveHQ NG is. Commands like: “Angy bring me map!” or “Angy lets go to Jita!” could be easily recognized already. Voice commands will free hands of a pilot. But of course it’s not for the first version.

Fonts, colors, images

  1. Dark theme. White background good for documents but not for dashboards and control panels. Colors better speak to the user on a dark background. The Universe of EVE Online is dark and it’s easer for our eyes to not switch between bright and dark pictures a few times per minute.
  2. Flat interface. All those shadows, reflexes and natural material textures were good till people have accustomed for computers. Now they are just boring noise. Gradients are allowed for subtle shadows and highlights but applied very selectively.
  3. San Serif fonts. Sans Serif is just better for screens, serif for printing. All fonts should be with multi-language support, preferable with many supported weights. Could be used science fiction styled typefaces like Orbitron, Sarpanch, Jura for things like headers and graph’s legend and labels.
  4. Vector monocolor icons. In EVE Online many conceptions have own icons. They are pretty good but for a flat UI design they will be outside of the main flow. As well they are very small. It would be nice to redraw them as monocolor vector images with keeping of the main conception of the sign. But on the other hand people already accustomed for in game icons. Redraw all icons will be time consuming as well. So I should decide what a combination of both to use.
  5. Colors only for very important things.

Navigation, user notification

  1. Less dialogs more full screen pages. I don’t like dialogs. Dialog for editing a complex entity that opens another one for changing a list property that opens one more dialog to ask the user for confirmation… What could be more annoying? As well dialogs are bad for keeping navigation history. So dialogs are allowed only for confirmations. Notifications should be kept in a list accessible for the user anytime. For complex cases prefer wizards. For changing names, titles and similar staff prefer in-place edit by single mouse click or tap.
  2. Saving or rejecting changes on navigating away of the page. User will change feature screens pretty often. There should be less questions and confirmations. By default all changes save automatically. If it became a problem there could be added history of changes with ability to restore at any state but not in the first version.
  3. Forward/backward navigation. The UI should be more like a web-site than a typical accounting-related application. That means the application needs some kind of Forward/Backward buttons with a dropdown menu to see the navigation history.

Content types

  1. Text. Primary for UI documentation and things like an NPC mission description.
  2. Tables. EVE Online called sometimes Spread Sheets in Space. Many conceptions like orders and manufacturing tasks better visualized with tables.
  3. Image. Sometimes an image better than a thousand of words.
  4. Map. EVE Universe or a region map is a crucial tool.
  5. Graph. Some data just created for graphs but only a selection of their types should be used (line, bar and sometimes pie).

Screen types

  1. Dashboard. Most of role tools could be expressed as a some kind of dashboard. Role dashboard, Fitter, Region map and so on.
  2. Settings page. Some things should be configured and require the user input. Application settings of different kinds, role tools list and so on.
  3. Wizard. Sometimes there are too many things to configure for a single page or things to configure lay in line one after another. In such situation it’s better to use so called wizards.

Unsorted

  1. Adaptive for customization by the user. There is no currently specific requirements and the first version will not allow to customize page layouts and like this. But anyway such a feature should be kept in mind.
  2. No clutter more air. The EVE Online UI is cluttered and dense. The game has only one screen but our application UI can be split into many pages. Hence more space should be added wherever possible.
  3. Data import and export. Many things could be exported from EVE-client only through the clipboard like pilot list of the current system. Some things could be found in the game log. Some things should be possible to export for exchange with other users or applications like ship fittings.

EveHQ NG. Vision

Namaste, comrades!

Today I try to explain my vision of the future version of EveHQ. What we have in ‘legacy’ conceptually? A lot of unconnected tools under umbrella of a single application. Yes they are useful but many times a caught myself on repetitive actions and copy-pasting values from one place to another. Many tools I don’t understand how to use. Some of them just could be made better.

The concept

In EVE we play some roles. I can start my game session as a manufacturer: deliver some completed research and manufacturing task, put some other task on. After that I need to bring goods to a trade hub and this time I play a hauler on the same character or another. When I came to the trade hub with my goods I play a role of a trader, again on the same character or another. Trading isn’t so much time consuming. I just need to update order prices from time to time. So I switch to another character. Lets say it is an explorer/hacker in High-Sec. I plan a route and undock it in an Astero. I go system by system and look for Sleepers data-sites and Ghost-sites, hacking them and bring the loot back to home station. Other day I can go to C1-C3 wormholes to do mostly the same. This day I can’t plan my path through the systems but I need some kind of WH mapping tool. I need a tool to judge about price of items I find in data and relic sites because I don’t have so much cargo space in my little Astero and there is no friendly and easy to reach stations in WHs. So I need to know what is valuable and what is not in regards to it’s weight. And I want to keep some kind of statistics about systems I’ve visited, what kind of sites I’ve found there and loot I took from the containers.

I can prolong but I think you grasp the idea: we play some roles in EVE, which we switch from time to time as needed. Not every character can play each role because of skills. Boundaries of roles are not so much outlined. Each role needs some tools but it doesn’t need every tool. Some tools can be useful for a few different roles.

  • Known space explorer/hacker: know space map, route planning, fitter, statistics tool.
  • Known space combat-sites explorer: know space map, route planning, fitter, knowledge-base about anomalies and combat signatures, statistics tool.
  • Manufacturer: production planner, research planner, hauling planner, reminders about task completion.
  • Every role: skills planner, customizable role dashboard.

So I want to develop EveHQ NG around the idea of role playing. Character -> roles -> tools. You will be able to add as many characters as you have. You will be able to add roles to each character it can and will play. You will be able to add to each character’s role tools you will need. Of course with some presets for each kind of role.

EveHQ NG should be your ultimate assistant in EVE playing. It should help to plan your activities, track them and your progress, inform you about possibilities and surroundings, help to find co-players and communicate to them, share your data with other players. It should help new players and veterans, single players, fleets and big corporations. It should integrate with the game and other network-based tools as much as possible.

It’s a huge task, a lot of work, but it always better to clearly understand the big picture than to coin and change it in the way. So I don’t plan to release it as a full blowing release, sometime in the future, but feature by feature, role by role in an agile way.

The architecture

‘Legacy’ EveHQ is a Windows application. You can’t run it on Mac OS or Linux. At least without some additional efforts like using virtual machines. There are many tools on the Net represented as WEB-sites. EveHQ in contrast is a standalone application. And it will remain a standalone application. It has some advantages over WEB-application:

  • You don’t need to be connected to the Net to use it.
  • Hosting of a WEB-application costs money. This price rising with rising of popularity of the application. It is the reason why useful WEB-applications disappear from time to time. Just remember EVE-Central.
  • Your data always with you in a safe (until you make backups) and secured (until you care about your security) place. Just remember about fittings lost on Osmium (they backed up data on the same physical drive).

EveHQ NG will support all 3 main operation systems: Windows, Linux and Mac OS. The GUI part will be developed as an Electron application using Angular 5+. The main business-logic will be developed using .NET Core. Those two parts will communicate to each other using REST WEB-service on ASP.NET Core (from GUI to business-logic) and SignalR (from business-logic to GUI).

I want to make it localizable. But I will not localize it by myself. May be only into Russian because I’m a Russian native-speaker. Other translations should be done by community if they needed.

I want to make EveHQ NG modular as much as possible to let people to develop and add modules as needed. For instance I have no glue what a corporation CEO needs. May be some of them will develop a module. There will be a shell that will be used by all modules.

EveHQ NG will use SSO, ESI, SDE and game logs. It will receive some data from clipboard in text and image formats.

The current state of development

I develop an architecture prototype for some time already. The were many new technologies for me: Electron, Angular, TypeScript, .NET Core. I did most of the task I planed for this prototype. After I finish integration with SDE, add localization possibilities and solve some minor problems like icons, I will transfer the development from my private repository to EveHQ team’s repository.

The next task will be development of the shell (remember character -> role -> tools) and some easy feature like the skill planner (a module). I can’t spend more than 2 or 3 hours a day for this project, I have two time consuming projects more (my family and my job). So no any time-lines. Hope you understand.

This is all for the moment, comrades. Good luck!

Reborn of EveHQ

Namaste, comrades!
My name is Mike Eshva and I am the current maintainer of EveHQ, one of the best tools for EVE Online. It has a long story and helped enormous amount of players in many different ways through this years. I even don’t know when was released the very first version. And today I have two news for you. One bad and one good.

I start with the bad one. I will not update the current ‘legacy’ version you know and, I hope, love.

The good one: I will develop the new version which I call EveHQ Next Generation or for brevity EveHQ NG.

In this post I will explain the reasons behind discontinuing of development the ‘legacy’ version and in the following posts I will explain my vision and the current state of development.

Why I don’t want to develop further this version? For many cumulating reasons.

Firstly the upcoming discontinuing of maintains for XML and CREST APIs by CCP as well as API keys we used to use. It should happen in May of 2018. Just in 3 month. And the ‘legacy’ version heavily relies on both of them. Some change already happened when CCP added types of clones, Alpha and Omega. Account-based APIs are broken. You can notice it in the skill planner when your account in the alpha state. There is no legitimate way to judge about your account status, only some workarounds. ESI API uses SSO-authentication with character-based authentication and authorization you starting to see more and more in other EVE-related tools. It isn’t just a minor change. It is a completely different approach. So you can ask: “What’s the problem Mike? Just change the code, use the new ESI API and SSO.” And here we come to the second reason.

The code base is pure in many different ways. I want you understand, the developers of ‘legacy’ EveHQ can be proud about their results. They released a useful product, the working soft. But the code base is almost unmaintainable.

  • It’s written mostly in VB.NET. Some developers tried to port it into C# but no one had enough time and power to finish it. I can program in VB.NET with the help of Google but I prefer C# like most of .NET developers. With many good reasons.
  • It written using Windows Forms as the main UI-framework. WinForms is a very old framework. You can find a very good job in terms of salary if you are ready to maintain such a project. But this way you will bury your future as a developer.
  • The ‘legacy’ EveHQ uses a commercial UI-components library. Uses it in every screen, tab and window. And I couldn’t come to an agreement with the developers of this library. They want money and only money. They don’t care that EveHQ is an open-source and free application. And it’s impossible to change UI in Visual Studio without an installed extensions of this library. As a Russian and an experienced Windows-developer I’ve found a way how to trick this soft but you should understand that anytime the owners of this library can complain to GitHub and the GitHub staff can close access to the project.
  • ‘Spaghetti’ code developed in RAD-approach (RAD = rapid application development). This approach is very good for studding software engineering but horrible for big applications and long terms maintaining. Almost everything put into UI-forms files in event-handlers: UI-logic, business-logic, calls to remote APIs and so on and so forth. The authors of this code had not heard about GoF patterns, SOLID, maintainability and things like that. Every time I start to change the code I want to refactor it. And it costs me enormous amount of struggling to concentrate on the actual task and don’t squander the time on refactoring. It can eat a few month of my time to refactor the code in a good way.
  • The ‘legacy’ EveHQ is a Windows-only application. I don’t have the statistics how many players use Linux and MacOS as the primary OS but my fillings tell me: at least 20-30%. It’s a lot. In theory it’s possible to port a WinForms application to Mono but I don’t want to do it. There are better ways to develop multi-platform applications and again, I don’t want to spend my time on a legacy framework nobody needs anymore – WinForms.
  • The conception of the application. What is EveHQ currently? It is a swiss knife, a toolbox of unconnected utilities. Some tools I don’t understand how to use. Especially in Prism. Some of them not needed to anybody, some requires to be re-envisioned. I have a vision of a better solution and will explain it in the following posts.

I will not close the access to the repository or delete the source code of the ‘legacy’ EveHQ. You can always look into the code, fork it and even post a pull request if you are sure you want and can improve the application. I can share the knowledge about the commercial UI-components, how to deal to them in your local environment. But before that try to make you familiar with the code.

I hope I have reasoned the discontinuing of maintaining the ‘legacy’ EveHQ well enough. I’ve started already an architecture prototype of EveHQ NG. It still work in progress and not finished. From time to time I break something but most of the time it’s workable at least in Windows. You can find it in my personal space on GitHub if you wish. But I prefer you wait until the next post where I will explain my vision of EveHQ NG.

Me and Slivo will keep everything up like forum, website and the public on Facebook. Possibly the ‘legacy’ version will receive some minor bug fixes and updates for the fitter… but it’s not for sure.

As always you can write us your ideas and questions. Probably I want to start a discussion with you about what you want to see in the new version. Our efforts for you comrades!

EveHQ 2.31.11 | CCP Market prices and orders provider

EveHQ 2.31.9 | Fuzzwork market provider

Greetings capsuleers !

As you may know Eve Central is down. It should already have been back online and nobody now when it will be back.
As Nooban suggested on our forums, Mike worked on a new market price provider.

The next release will allow you to select the fuzzwork market price provider as an alternative to Eve Central.
As Mike is kinda busy (But still find some time to implement this provider, thanks !), expect it to be released before the end of October.

Thanks for your bug reports, suggestions and contributions.
Thanks to Steve for the fuzzwork tools.

EveHQ 2.31.8 | Fixes for Prism and new SDE

EVE Central is down… for some time I hope. We use it in EveHQ and this downtime disclosed some problems in our code base. I’ve fixed them but as always with this spaghetti code I can’t be sure it works well in every place. Anyway meet the 2.31.8 release.