Eve Industry Planner - Industry Job Management Application - v0.8.0 - Resource Reprocessing

this is just impressive, amazing tool… ty very much for developing it.

1 Like

V0.5.3
New Features:
Asset Library - similar to the blueprint library but displaying character assets.
Default Asset Location - A default display location for assets can be set on the settings page.
Shopping List - The shopping list can now include character assets in the calculations for required materials.
Upcoming Changes Page - Not currently visible, added in preparation for further Siege Green changes from CCP.
Watchlist Groups - Groups can be added and named for easier watchlist management.

Changes:
Brokers fees are now manually calculated rather than using the imported ESI value. A default citadel brokers fee percentage has been added to the settings page.
Merge Jobs - The merge jobs function has been rewritten to merge all possible jobs from the selected jobs.
Add Ingredient Jobs - Updated to only create a child job if the material does not already have one.
Updated ESI Scopes - See Below

Bug Fixes:
Character portraits missing from blueprints in the library - fixed
Create All Jobs button on the resource panel does not add child jobs to parent-fixed
Hide blueprint library option from the side menu for logged out users - fixed
Prevent import of duplicate accounts - fixed

An additional ESI scope was needed to import the standings for the Brokers Fee calculation. Once this was added it was found that the linked accounts would fail to refresh with the updated scope. The application automatically removes these accounts when this happens causing the user to have to add these again. Because of this, I decided to add all of the possible scopes that may be needed in the future for the planned development work rather than users needing to re add the accounts again further down the line. At the point of writing this the only additional scope that is read is the esi-characters.read_standings.v1

Eve Uprising Expansion Updates Added

V0.5.5

New Features:

Add Item Costs dialogue now has the option to import costs copied from the Multibuy page in game.

ESI Job Cards are now created for Invention Jobs

Corporation Industry Jobs belonging to characters included within the app are now imported from the ESI.

App Version Checking – More Below

Changes:

Shopping List Dialogue now displays the estimated value of the items included.

Material Build Cost pop out now displays the total material cost as well as the material cost per item.

Merge Jobs option will no longer merge jobs that do not have any parent jobs.

Required Skills Panel now has a tooltip displaying the required level if the skill level has already been met.

Bug Fixes:

Dashboard:

New Job Transactions panel not displaying transactions – Fixed

New watchlist item group select not resetting correctly – Fixed

Job Planner:

Merge Jobs function rebuilt – Already released

Deleting jobs not consistently removing the link in the parent job – Fixed

Add Ingredient Jobs would not create new child jobs consistently – Fixed

Time remaining styles on ESI job cards not constant across job types – Fixed

Edit Job Page:

Total Items Per Job Slot calculation was displaying incorrectly on initial creation - Fixed

Material Build Cost pop out causing app crash if linked child jobs were not previously removed correctly – Fixed

Clicking Parent Job chips would cause an app crash if the parent job had not been opened previously – Fixed

I was initially hoping to be able to include all these changes with the next big version update but there was preparation needed before those changes could be added so you are getting these early as they are already complete!

App Version Checking – This is not really a feature that most of you will come across or ever see but was a necessary edition. Previously when I have pushed updates and feature changes that have modified how the data is saved into the database, some users who had not refreshed their page to use the updated build were still able to request data from and submit data to the database causing a long list of issues resulting in data loss and hours of headaches for me as I attempt to rebuild all of their jobs.

Going forward the version mismatch will be highlighted to the user prompting them to refresh the page before any data can be requested or sent to the database.

On initial release any users still using the older version will find that their API requests are being rejected and will not be able to request any new job data, prices etc. Refreshing the page and using V0.5.5 will solve this problem. If it doesn’t, well we have a problem.

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

Topic reopened by request of the Op.

V0.6.0
New Features:
• Job Groups – More Information Below.
• Corporation Blueprints, Market Orders, Transactions & Journal data are now included.
• Job Cards can be moved between statuses using drag & drop.
• Added option to create a job on the planner for items in the Watchlist.
• Characters’ active slots and total slots are now calculated and displayed on the dashboard.
• Application Bugs.

Changes:
• Child job creation dialogue changed to show more information about existing child jobs.
• Users logging in are now directed to /dashboard via an updated UI.
• An alert dialogue will now appear when users attempt to close the tab/browser when the edit job or edit group pages are open, reminding them to close these pages to prevent data loss.

Fixes:
• Shopping list not including child job materials if the item already appeared on the shopping list.
• Missing material prices causing app crashes.
• Job costs could be imported into parent jobs multiple times.
• App crash caused by reverse engineering jobs appearing in the ESI data.
• Logged-out users unable to create new jobs on the planner.
• App crashes caused by jobs that do not have any skill requirements.
• New transactions panel not showing new job transactions, it just had one job to do…
• Archived job data panel not always appearing.

Yep, I did it again. The Trello notes are a little sparse.

Job Groups were asked for by users early in the project and are something that was needed. As the name suggests, they allow you to group any number of jobs together into their own project folders, keeping your job planner organized and hiding issues somewhere else.

The groups are designed to be their own self-contained working environment, allowing the application to know exactly what materials are and aren’t included at any time. The usual parent-child relationship that exists between jobs isn’t designed to extend outside of these groups.

One advantage of these groups, which several users have been asking for, is that you are now able to build any item’s full tree from top to bottom in one click. Say you want to build one of each racial jump freighter; one click and poof, you have 106 jobs created for each material used in the build process.

Then you select them all and click the shopping list!

Yep, all the raw materials needed to build four jump freighters. Fun! Obviously, these groups come with several other advantages, but I will let you explore those for yourselves.

Corporation data is now almost completely included; we are just missing the assets. This data has been included in the same way that your personal character data was originally. Now, when you look at your blueprint library, market orders, and transactions, you will see both sets of data.

Anyway, enough with my waffling about this app. As always, I appreciate all of the feedback that is given, be it good or bad. If any of you are stuck or have any input, you can reach me here, on Discord, or in-game.

Database Update Following Viridian Release

V0.6.1

New Features:
• Market history data added.
• Compact UI mode added.
• Ability to import fittings to groups added.
Changes:
• App theme now defaults to dark mode.
• Default structure objects updated to include system name data.
• Structure rigs are now included when working out the length of a job.
• Additional rig combinations can now be used.
Fixes:
• All jobs disappear from groups when attempting to delete a single job.
• Completed jobs within a group are no longer hidden following refresh.
• Api jobs still appear on the planner after being linked to a group job following refresh.
• Groups selected via the multi select not being included in the shopping list or item cost input dialog.

Previously added default structures have been removed, this is due to them missing the system information that will be used in the next update to calculate build costs.
Market history information can now be found by hovering over an item cost on the planning stage of the edit job page.
The compact UI can be enabled from the settings menu, this is the first iteration and will continue to be worked on, some sections will not have an updated ui due to upcoming changes.

Applied Havoc expansion

V0.7.0

New Features:

  • Corporation assets added.
  • Job installation costs are now calculated.
  • Job setups added.
  • Zarazkh & The Vulcrum added.

Changes:

  • Updated asset library UI.
  • Modified UI theme
  • Watchlist entries can now be modified.
  • Child for watchlist items can now be modified on creation.
  • Group jobs can now pull estimated prices from child jobs.

Bug Fixes:

  • Missing personal assets now appear correctly.
  • App crashes when opening a job where an attached market order was complete.
  • Child jobs are not linked correctly to parent jobs within a group when created.

Hello all, once again we are here with another Eve Industry Planner update.

On the 24th Jan, the app will have been live for 2 years. A big thank you to everyone who has provided feedback and contributed to improving this along the way.

Let’s dive into what we have new this time around!

Corporation assets are finally here along with a much-needed UI update for the asset library.

As you can see the library is now split into different pages. For your character assets, you have your general assets, deliveries, and asset safety pages, and for the corporation assets you have offices, deliveries, and asset safety.

All of these are fully expandable allowing you to view the contents of all of those corvettes you have strewn across the galaxy.

Corporation assets also appear throughout the application in the other places where you would find the personal assets, except for the shopping list.

Job setups, since the start of the application you were always restricted to only being able to create jobs where all of the job slots had a matching number of runs or if you wanted to use blueprints with different ME/TE values you would need to create multiple jobs to calculate this.

This is no longer the case, each job now comes with “setups” where each setup is unique and can have completely different build parameters. These are all calculated individually and the materials are then totaled.

This also leads nicely into the addition of installation costs, before I tell you about the fun things adding this has allowed I must flag one thing regarding these. Since the changes to the installation costs last year I have been unable to find any reference to the updated formula that is used to calculate these in game.
What I have done instead is use the original one that was used and make some tweaks to it to give a value that is close to what is shown in the game, it is not perfect but is certainly close enough to use as an estimate. If anyone can actually find this formula referenced please send me a link and I will get this updated straight away. The example below shows the estimated value compared to the actual install cost from the ESI.

Anyway, now that we can estimate these costs we can now start combining them with the material cost to generate a more accurate cost for the item. But that’s too easy, let’s take it one step further. Do you want to maybe build some of the components instead, no problem. Jobs that are part of a group can now calculate the estimated cost of each component that sits beneath them in the production chain that you has a job. This can then be passed back up to the parent job all the way back to the chain. This allows you to have a more accurate understanding of the cost of the item before you start, and see how changing a single input to any one of these jobs affects the overall price of what you are looking to build.

Let’s use these Jackdaws again as an example, i have created child jobs for each of the components and I am now looking at the overall cost to build this. On the left, we have the estimated costs and on the right the costs assuming we went on the market and purchased the components at the shown prices

I apologise to anyone who builds Jackdaws and finds that the market is affected following this post.

Anyway, to wrap this up and let you get back to spinning your ships, I would like to thank everyone once again for their time and patience in helping me get this app to where it is currently. To answer a frequent question that gets asked, yes, there will be a standalone version of the application coming that groups can set up for themselves, but the timeframe for that release is very much “Soon.”

1 Like

V0.8.00

www.eveindustryplanner.com

Discord

New Features:

  • Mineral/Ore reprocessing calculator

  • Custom reprocessing structures

  • Automatic child job recalculation

  • Child jobs can now be built based on blueprint availability

  • Hek has been added as a market option.

Changes:

  • Revamped login flow to significantly reduce login time.

  • ESI data now updates automatically.

  • Assets dialogue has a new icon.

Bug Fixes:

  • Numerous bug fixes have been implemented; I’ve lost track of these, but I’m sure there will be new ones to discover.

  • Error boundaries have been added to reduce the likelihood of full app crashes for any undiscovered bugs

Yep, it’s me, I am back with a fresh update for Eve Industry Planner… Horrayyy!!

On the surface, this doesn’t appear to be a huge update packed with shiny new features and tools that will make everyone’s life easier, but under the hood, there are numerous changes to the codebase, which I will discuss later. Let’s first look at the new features and what has changed.

A reprocessing calculator, because nobody has ever made one of those before. For some time now, I have been asked by users for a way to calculate the cheapest way to get minerals. Do they buy the ore and reprocess it, or just buy the raw minerals?
When planning this feature, I established that first I would need to be able to calculate the reprocessing rate from Ore into Minerals based on a character’s skills and available structure. The next logical step was to continue with this and build it out into a complete reprocessing calculation tool. This has all of the usual features you would expect. The results can be displayed as a simple breakdown or as a more in-depth look into the yield for each type of ore and how this reflects in the quantity of minerals provided, while being able to modify individual skills and structure information to change the results. Happy days.

Now that I can convert from Ore into Minerals, I have the character skills and a structure to base these calculations on. I can run this calculation on the smallest reprocessable quantity of each type of Ore, 410 thereabouts, to give me a base mineral quantity for each type of Ore.
Now I had to create a way of finding the cheapest ores to reach the total required minerals. To do this, each type of Ore has a score assigned to it based on the market cost, the number of needed minerals it contains, and the excess mineral types it contains. From there, it selects the highest-scoring Ore type for each Mineral to give you potentially the cheapest combination to buy the required minerals based on your inputs. And just like that, we have a rough idea of the cheapest way to get the required Minerals. It’s not perfect, and there is still more work to do with this formula. I have deliberately built in ways to manually modify the scoring to allow users to customise this calculation based on their requirements, but for now, give it a go and see how you find it, and I will work with the feedback to try and make this more accurate.

So here we have it. www.eveindustryplanner.com/reprocessing. This is available for the public to use. You can use it without logging in with your EVE character; you will just need to manually populate the fields. If you do log in, then your skills will automatically appear, and you can add a custom structure that will automatically be applied each time.

And back onto the other changes..

For those of you who have been using the app for some time, you will know that when building out larger industry chains and then making slight changes to one of the materials, it causes a nightmare in needing to manually modify each job lower down the chain to reflect these changes. But now the application can manually recalculate all of these for you. For existing users, this can be enabled in the settings page, but for new users, this is enabled automatically.

Another new setting that has been added is the ability to modify the application to only create jobs based on your available blueprints. As part of previous updates, I added ways to automatically set up full industry chains quickly. However, for many users, this would create numerous unnecessary jobs that would need to be removed. With this new setting enabled, as the industrial chain is built out, it checks the blueprint availability as it goes and stops once it reaches an item for which there is no blueprint. These then become the bottom of your industrial chain, and anything below this is assumed to be purchased from the market.

E.g. if you wanted to build a Falcon and you only had a Blackbird blueprint, it would only create the job for the Blackbird and not the other components.

So what’s been happening under the hood? It’s tech talk from here on out.

For those of you who aren’t aware or have looked at the GitHub repository and cried, I started building this application as a way to teach myself coding and application development during the pandemic. As time has gone on, the decisions and ideas that my unknowing self made and continues to make leave me with issues further down the road. Because of this, a large portion of the time I get to work on the application is spent correcting these previous issues or just accepting that I am going to have to live with some of them, untangling spaghetti that links many of the components together, and removing line upon line of duplicated code, each giving slightly different results for no obvious reasons spread across the application.

This is a React application, it has been written in raw JavaScript, no TypeScript, frontend, backend and local dev tooling. This will make a fair number of you nerds upset, but it’s how it is, and I don’t plan to do a full rewrite anytime soon.

The application originally only used the React Context to store all of the data, ESI, market prices, system indexes, user settings, etc, etc, etc. It seemed reasonable at the time and was fairly straightforward for my lesser knowing self to understand. As the project has grown and components have become complicated, the Context has become unwieldy, so I looked for an alternative solution that suited my needs and would let me continue to work on this in a way that worked for me. I decided to move to the state management library called Zustand. So I began the slow and painful process of moving and restructuring data into this library. So far, this has been going well, and I have managed to do away with or move the majority of the Context over to this instead. But before I push this further, I wanted to take a breath and see how the app works and resolve any issues that I may have.

As part of moving the Context Provider, I needed a way to store the ESI data for the characters. Did I want to stick with the original method of querying the endpoints and manually storing, updating, and removing each character’s data, or could I find an alternative way to handle this? React Query (Tanstack Query) came to the rescue, as with the correct setup, it will handle all of this for me. This has allowed me to overhaul the ESI data handling and simplify it. Now, when users log in, they no longer need to wait for each character’s ESI data to finish querying one after the other before they can get to the application. Once you started to go above 3 or 4 characters, it became really noticeable, and it was easier to just switch to a new tab and come back in a few minutes.

As part of making these changes, I got carried away and failed to commit the changes in smaller amounts, putting myself in a position where I had weeks of work but with nothing to really show for it as it was all broken with no way to roll it back without wasting all that time. I have learnt my lesson from this.

While all of the above changes were being made, I also decided to redesign the dialogues (The pop-out windows that display information, shopping list, market prices, etc). Originally, these were built into the pages where they could appear, and there was little to no flexibility with them. I decided that using an Event System to handle these and the notifications would give me the flexibility needed to be able to trigger these from anywhere in the application easily. This allowed me to create a set of icons and components that can be added, which will trigger these just by passing the material type IDs. The eventual aim here is to allow users to be able to grab the market data, history, and assets from anywhere in the application quickly and easily. While also making my development life easier.

And to top it off, I have also begun writing a wiki for this to provide more information on how to use the application for users, as the in-app tutorials are too limited when explaining how parts work. I am using a third-party site for this, as I really do not need the development hassle of maintaining this. But it will integrate links to this directly into the application to make the transition as smooth as possible.

Sooooo thanks for getting this far with my ramble, and as always, please reach out if you have any issues or questions with the application. You can drop me an EVE mail, join the in-game channel (eve industry planner) or join the Discord page.

1 Like