diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8c70fce --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +.yalc linguist-vendored \ No newline at end of file diff --git a/README.md b/README.md index eb9eec1..e74ab04 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,56 @@ # FactorioSites -This project was generated using [Nx](https://nx.dev). +Mono-repo for [Factorio Blueprints](https://factorioblueprints.tech)s. -🔎 **Nx is a set of Extensible Dev Tools for Monorepos.** +Factorio Blueprints delivers a platform to easily share blueprints and with minimal effort get the most value from them, with advanced search and real-time rendering of blueprints. -## Development server +# Links -Run `nx serve my-app` for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files. +- [Issues & Suggestions](https://github.com/barthuijgen/factorio-sites/issues) +- [Roadmap](https://github.com/barthuijgen/factorio-sites/projects/1) -## Build +# Credits -Run `nx build my-app` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build. +Factorio Blueprints uses a part of the [Factorio blueprint editor](https://github.com/teoxoy/factorio-blueprint-editor) by [Teoxoy](https://github.com/Teoxoy). Lisenced MIT. -### blueprints app +This amazing project allows us to render real time high quality images directly when opening any blueprint. -## Running unit tests +# Want to contribute? -Run `nx test my-app` to execute the unit tests via [Jest](https://jestjs.io). +## Prerequisites -Run `nx affected:test` to execute the unit tests affected by a change. +- A postgres database (docker-compose.yml provided) +- A Google Cloud Platform project -## Running end-to-end tests +## Setting up the project -Run `ng e2e my-app` to execute the end-to-end tests via [Cypress](https://www.cypress.io). +- Add a `.env.local` file to apps/blueprints/ with the following values -Run `nx affected:e2e` to execute the end-to-end tests affected by a change. +``` +POSTGRES_DB=factorio-blueprints +POSTGRES_USER=factorio-blueprints +#POSTGRES_HOST=127.0.0.1 +#POSTGRES_PASSWORD=local +STEAM_WEB_API_KEY=(optional, for steam login) +GOOGLE_APPLICATION_CREDENTIALS="full/path/to/json-key-file.json" +GCP_BLUEPRINT_STRINGS_BUCKET=blueprint-strings +GCP_BLUEPRINT_IMAGES_BUCKET=blueprint-images +``` -## Understand your workspace +- Add a `.env` file to apps/blueprints/prisma with a database connection url like -Run `nx dep-graph` to see a diagram of the dependencies of your projects. +``` +DATABASE_URL="postgresql://factorio-blueprints:local@127.0.0.1:5432/factorio-blueprints" +``` -## Further help +- Run DB migration -Visit the [Nx Documentation](https://nx.dev) to learn more. +``` +cd apps/blueprints && npx prisma migrate deploy --preview-feature +``` + +- Run local app + +``` +nx serve +``` diff --git a/blueprints.Dockerfile b/blueprints.Dockerfile index d66d865..d8a2572 100644 --- a/blueprints.Dockerfile +++ b/blueprints.Dockerfile @@ -14,7 +14,7 @@ RUN yarn COPY . . RUN yarn run db-gen -RUN yarn nx build blueprints +RUN yarn nx build blueprints --prod FROM node:14-slim diff --git a/package.json b/package.json index 810cac1..558ded3 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "cookie": "0.4.1", "document-register-element": "1.14.10", "formik": "2.2.6", - "framer-motion": "3.10.2", + "framer-motion": "3.6.7", "next": "10.0.7", "nprogress": "0.2.0", "openid": "2.0.7", diff --git a/yarn.lock b/yarn.lock index 475d248..671fb2b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8467,20 +8467,25 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -framer-motion@3.10.2: - version "3.10.2" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-3.10.2.tgz#757bfc2633aa2c1453a8bb857d4753cd0d7cb737" - integrity sha512-qJX8y8OfsU9ZMZJyRLGOfo3IT4fiR7JNcshMyIno6A2z5NYP/ELPVPvD7D70neJJEYFzsjNXp1/nHjvOaM95ww== +framer-motion@3.6.7: + version "3.6.7" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-3.6.7.tgz#b9b40db52ecb2390757f7c556846e3b4bf949330" + integrity sha512-3DqvW+Ab69dL54gn0YvrWz4+Gg8PCgvXH9Rknx4OXJ226vYzpSjc3imHBM4h974ndVvb8C4/Z3/PyZigEh8m2A== dependencies: - framesync "5.2.0" + framesync "^5.1.0" hey-listen "^1.0.8" - popmotion "9.3.1" - style-value-types "4.1.1" + popmotion "9.2.1" + style-value-types "4.0.3" tslib "^1.10.0" optionalDependencies: "@emotion/is-prop-valid" "^0.8.2" -framesync@5.2.0: +framesync@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.1.0.tgz#b22639be6e83cf170e5cb3d0497e3e50100a01ef" + integrity sha512-31sDH8LxSFoLKDYENzKdI+YJD4vV8sMBpwcAW0/6Es2jZBQBdlqbFnqrYczpsnzpqG+y6EqYPvgFMI2ZDdlnyQ== + +framesync@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/framesync/-/framesync-5.2.0.tgz#f14480654cd05a6af4c72c9890cad93556841643" integrity sha512-dcl92w5SHc0o6pRK3//VBVNvu6WkYkiXmHG6ZIXrVzmgh0aDYMDAaoA3p3LH71JIdN5qmhDcfONFA4Lmq22tNA== @@ -12648,14 +12653,14 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" -popmotion@9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.3.1.tgz#134319ed4b9b8e3ec506c99064f7b2f14bc05781" - integrity sha512-Qozvg8rz2OGeZwWuIjqlSXqqgWto/+QL24ll8sAAc0n71KY/wvN1W4sAASxTuHv8YWdDnk9u9IdadyPo2DGvDA== +popmotion@9.2.1: + version "9.2.1" + resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-9.2.1.tgz#8bc19214a4f0ba7925a901455d0996131cbec6dc" + integrity sha512-kplHK5z2LwYkUXNMCC4+tSYuuAXcG3oatKdsEzJzc1r0I2wM5UnYKITO1ZUnmmFy84VJqIZuoBXwJrWuZuAKkg== dependencies: - framesync "5.2.0" + framesync "5.1.0" hey-listen "^1.0.8" - style-value-types "4.1.1" + style-value-types "4.0.3" tslib "^1.10.0" portfinder@^1.0.25, portfinder@^1.0.26: @@ -15093,10 +15098,10 @@ style-loader@1.0.0: loader-utils "^1.2.3" schema-utils "^2.0.1" -style-value-types@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.1.1.tgz#15d08bd9bb17ac3f5d4a863bf9d5e4eb8e4f0686" - integrity sha512-cNLrl6jk+I1T18ZI2KIp/fcqKVuykcNELDrOz7y+TYZR97xmNdN0ewupURvVFnQxVrRJv98TMBq92VMsggq3kw== +style-value-types@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-4.0.3.tgz#3e2e46c50e876757cba02f442c8a0b0dd970c118" + integrity sha512-Yk2kpwC88W2HRlJXegWlT0pfLzjKWMjj8DI4s6m2VsZsL1Ht2oUyHl1EgTYIRlFiAnC4rBSQO+EEn0YiYAxQDw== dependencies: hey-listen "^1.0.8" tslib "^1.10.0"