MCPcopy Index your code
hub / github.com/satisfactory-factories/application

github.com/satisfactory-factories/application @0.3.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.3.0 ↗ · + Follow
283 symbols 702 edges 84 files 0 documented · 0% 20 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Satisfactory Factories

This web tool is designed to help players of the video game Satisfactory™ to plan a comprehensive production chain.

The tool highlights bottlenecks in the production chain, and visually tells the player that they have a problem within their designs.

The player can scale up end product factories as they see fit, and check if their production chain can handle the increased load.

Contributing

Since this is an open source project, all PR requests will be welcomed, as long as proper intent and communication with the project maintainers is maintained.


Local Development

This project has the following requirements: - Node.js version >20.17.0 - pnpm version >9.14.4 - Docker (for the backend)

Frontend

  1. cd web
  2. pnpm install Recommend brew for this brew install pnpm@9.14.4
  3. pnpm dev

Visit http://localhost:3000 to view the project.

Testing

There are tests for the frontend project, run them with pnpm test. Tests must pass for PRs to be accepted. Note as of writing the coverage isn't 100%.

Parsing

The parser is responsible for processing the Docs.json from the game and reconstructing a more readable version for our use, since the game's docs file is overwhelmingly large and not very human-readable. The file is located under X\steamapps\common\Satisfactory\CommunityResources on Windows. Replace X with where you have installed your steam library.

Running the parser and updating the gameData

To run the parser:

cd parsing
pnpm install
pnpm dev

When the parser is run, it outputs to file /parser/gameData.json. This file needs copying to /web/public/gameData_v1.x-xx.json. The version must directly correlate with the minor version of the game (unless a patch messes with a recipe, unlikely). e.g. v1.0-11.json would increment to v1.0-12.json. The old version needs deleting when you commit.

Once the new file has been placed, you must also edit /web/src/config/config.ts and update the version there too.

This instructs web clients to re-download the game data file with the new version upon refresh and replace their locally stored version.

Backend

Required for the login and syncing of data features, not required for local development. 1. Start Docker service on your local machine. 2. cd backend 3. ./start.sh

API will be available on http://localhost:3001.

There are no tests currently available for the backend project.

Deployment

New versions are trunked to main branch, once main has been pushed, GitHub Actions will create a release then deploy the frontend to Vercel, and create a docker image of the backend to deploy to my personal server.


License

This project is licensed under the GNU License - see the LICENSE file for details.

Please kindly consider opening PRs to improve the project, and make it better for everyone rather than making a clone.

Acknowledgements

Extension points exported contracts — how you extend this code

TypedRequestBody (Interface)
(no doc)
backend/backend.ts
RecipeItem (Interface)
(no doc)
backend/interfaces/Recipes.ts
ShareDataSchema (Interface)
(no doc)
backend/models/ShareSchema.ts
ParserPowerItem (Interface)
(no doc)
parsing/src/interfaces/ParserPowerRecipe.ts
GlobalComponents (Interface)
(no doc)
web/src/components.d.ts
TypedResponse (Interface)
(no doc)
backend/backend.ts
Recipe (Interface)
(no doc)
backend/interfaces/Recipes.ts
ParserPowerRecipe (Interface)
(no doc)
parsing/src/interfaces/ParserPowerRecipe.ts

Core symbols most depended-on inside this repo

addProductToFactory
called by 79
web/src/utils/factory-management/products.ts
calculateFactories
called by 50
web/src/utils/factory-management/factory.ts
newFactory
called by 45
web/src/utils/factory-management/factory.ts
addInputToFactory
called by 32
web/src/utils/factory-management/inputs.ts
calculateSyncState
called by 12
web/src/utils/factory-management/syncState.ts
createNewPart
called by 11
web/src/utils/factory-management/common.ts
findFacByName
called by 10
web/src/utils/factory-management/factory.ts
countActiveTasks
called by 8
web/src/utils/factory-management/factory.ts

Shape

Function 200
Interface 70
Method 7
Class 6

Languages

TypeScript100%

Modules by API surface

web/public/js/fa/fontawesome.min.js69 symbols
web/src/interfaces/planner/FactoryInterface.ts18 symbols
backend/interfaces/FactoryInterface.ts18 symbols
web/src/stores/app-store.ts15 symbols
web/src/stores/sync-store.ts10 symbols
web/src/stores/auth-store.ts9 symbols
web/src/stores/game-data-store.ts8 symbols
web/src/utils/factory-management/products.ts7 symbols
web/src/utils/factory-management/inputs.ts7 symbols
web/src/stores/sync/sync-actions.ts7 symbols
backend/backend.ts7 symbols
web/src/utils/factory-management/parts.ts6 symbols

Datastores touched

FactoryDataCollection · 1 repos
ShareCollection · 1 repos
UserCollection · 1 repos
(mongodb)Database · 1 repos
factory_plannerDatabase · 1 repos

For agents

$ claude mcp add application \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page