Skip to content

For the game Final Fantasy XIV, this app calculates the most profitable items to craft based on market prices, vendor prices and crafting component costs. It also provides a front-end to display the results

License

NickReinlein/GilGoblin

Repository files navigation

GilGoblin

Summary

GilGoblin is a back-end REST API, to calculate in-game crafting profitability in Final Fantasy XIV (FFXIV). It calculates the most profitable items to craft based on current market prices, vendor prices and crafting component costs. It stores recent prices in a local PostgreSQL database. The prices are refreshed by a background service.

The long-term goal is to have a website using this API's endpoints to display the top crafts for each crafting profession (specific to the user-selected world)

Complete

  • ✔️ Getting the vendor cost, if available via vendor
  • ✔️ Getting the recipe to craft if the item can be crafted
  • ✔️ Calculating the cost to craft from the components, based on the recipe in the previous step
  • ✔️ The minimum price of the vendor or the crafting cost or the market board is used to calculate a minimum cost
  • ✔️ The profitability per item is calculated based on the difference of current market prices and the estimated minimum cost
  • ✔️ A crafting calculator that breaks down recipes to ingredients
  • ✔️ Calculate most profitable recipes to craft for a given FFXIV server/world
  • ✔️ A new service to pre-calculate costs and profits
  • ✔️ A website to search items, recipes, prices, and the craft summary 💰
  • ✔️ Add to website a table to display the most profitable recipes to craft for each world 📈
  • ✔️ Enhance most profitable recipes table to be sortable 💲
  • ✔️ Add arrows to profit table column headers to indicate sorting status (ascending, descending, none) ⬇️
  • ✔️ Create a Docker image of the front-end 🐋
  • ✔️ Fix existing high-priority bugs 🐛
  • ✔️ Add support for multiple worlds 🌐
  • ✔️ Add about project page ℹ️
  • ✔️ Add Gilgoblin favicon and title to header 📖
  • ✔️ Add performance tests for high-traffic bottlenecks (top-crafts) 🚥
  • ✔️ Improve performance for top-crafts endpoint ⏩

Work-in-progress

  • 🐣 Launch and test website 🚀

Upcoming

  • 🥚 Live release bug fixes 🐛

Nice-to-have

  • ❓ Top things to gather 🌳🪓 🪨⛏️
  • ❓ A link to each profit result's item, recipe, price, and craft in the profit table row 🕵️
  • ❓ A hover or clickable option to see the profit's ingredients & cost info ☁️
  • ❓ Advanced filtering: Enter class levels to filter available recipes 🧰
  • ❓ A website displaying the top crafts for each profession 🛠️

Not currently on the product roadmap

  • ✖️ Filter for HQ/NQ
  • ✖️ Any interactions with the market board or in-game

Technologies

  • The back-end REST API is written in C# (dotnet 7, EF6)
  • The back-end tests use NUnit3
  • The front-end code uses the React library, written in Typescript (React 18)
  • The front-end tests use Jest
  • There are 5 Docker images (listed below) specific to GilGoblin
  • K6 benchmarks feed Prometheus. Test results are displayed in a Grafana dashboard

Startup

From the root folder of the project, run docker-compose up -d to build the images. The database will load, and if necessary run the scripts to populate the tables. The front end is available by default over port 3000. The other services will run in the background periodically to refresh data.

The docker containers need to be running and healthy for the component tests to pass.

Docker Images

Special Thanks & References

Support:

Other Projects:

About

For the game Final Fantasy XIV, this app calculates the most profitable items to craft based on market prices, vendor prices and crafting component costs. It also provides a front-end to display the results

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published