Giter VIP home page Giter VIP logo

ensono / stacks-webapp-template Goto Github PK

View Code? Open in Web Editor NEW
3.0 19.0 9.0 22.22 MB

Templating monorepo focusing on boilerplate web apps

Home Page: https://amido.github.io/stacks/

License: MIT License

Dockerfile 3.86% JavaScript 3.94% TypeScript 74.89% HCL 3.58% Shell 0.23% C# 4.56% Java 7.39% Gherkin 1.55%
reactjs nodejs ssr azure monorepo template frontend webapp boilerplate front-end

stacks-webapp-template's Introduction

Maintained by Amido Build Status NPM

stacks-webapp-template

Packages for templating SSR Node.js with React apps with little build configuration.

Documentation

For more information check out the documentation on Amido Stacks.

Why?

Every new project exists to solve a unique challenge but requires common building blocks to get up and running.

Traditional approaches require clients to use a single, specific templating model that is quick to set up but too rigid to allow development of the ideal solution.

Amido Stacks brings 10 years of client expertise to every project, providing fast, flexible, bespoke value in an accelerated environment.

Requirements

We are supporting and running node@12.

Please ensure that your local environment has the correct version installed.

We are leveraging npm for dependency management - follow the installation instructions for your OS here.

Contribution guidelines

Changes to this base repo flow through the Azure DevOps pipeline as defined in build/azDevOps/azure.

We enforce the use of Conventional Commits with CommitLint at commit time. We also lint and test all code before committing.

To link to an Azure Boards ticket, please include AB#{id} in your commit message. eg. AB#1230

Please see Stacks/CONTRIBUTING to find out more.

To start

npm install to install the dev dependencies from the root. This should invoke npm run postinstall automatically to bootstrap the packages in the current Lerna repo. Lerna installs all package dependencies and links any cross-dependencies.

Tests

Static

npm run lint: runs global linting from root level, ensuring all packages are following conventions specified in .eslintrc.

npm run prettier: runs formatting from root level, ensuring all packages are following conventions specified in .prettierrc.

npm run validate: ensures that the project adheres to Typescript checks, formatting and linting rules.

Unit

npm run test: runs the unit tests for all packages.

To create the sample app locally

For package management, we are using Lerna which can be installed using npm.

See scaffolding-cli for information.

Versioning and Publishing packages

We are also using Lerna to publish our packages, version control, and for changelogs. For more informatiion checkout the publishing docs on publishing.

Third-party dependencies

We are using a number of dependencies, not all of which we have developed ourselves. To ensure that we are able to grant the users of these packages the ability to use them for commerical purposes, we audit the dependencies and their license types. See the scripts license:check:allowed for the determined types.

In general, the following license types are OK: 'MIT;MIT*;ISC;BSD-3-Clause;BSD-2-Clause;Apache-2.0;Apache*;CC-BY-4.0;WTFPL'

Please note that the checks for the licenses are run on pre-commit, therefore, on your local machine. See Husky for more information, and refer to the configuration file at .huskyrc.

stacks-webapp-template's People

Contributors

elvenspellmaker avatar estherthetesteramido avatar naren-bellala avatar dependabot-preview[bot] avatar dnitsch avatar vitalinavzdrobau avatar aidanfitzpatrickamido avatar corradot12 avatar akrish17 avatar iamandyw avatar leobarnesamido avatar andreyroth avatar amidostacks avatar alzamido avatar jack-newbury avatar dependabot[bot] avatar snyk-bot avatar elephantei avatar johnmckenna avatar marnas avatar richardslater avatar paulholiday avatar simonjbrown avatar

Stargazers

Ilir Kosumi avatar  avatar Rahul Verma avatar

Watchers

Simon Evans avatar  avatar Radoslaw Orlowski avatar Andy Hale avatar James Cloos avatar Rob Selway avatar  avatar  avatar Christopher Butler avatar  avatar  avatar Steve Clewer avatar Lee Saxby avatar Rahul Verma avatar  avatar Sharon Russell avatar  avatar  avatar  avatar

stacks-webapp-template's Issues

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/test/cypress/package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

Getting Started

Hello.

I am currently following your documentation here: https://stacks.amido.com/docs/workloads/azure/frontend/SSR/getting_started_ssr

I have ran:

npx @amidostacks/scaffolding-cli run -i

Changed the environment variables (I'm on Windows 10)

npm install

npm run build

When I run the build I get the following error:

PS C:\Temp\amido-stacks\demo\src\ssr> npm run build

[email protected] build C:\Temp\amido-stacks\demo\src\ssr
tsc --project tsconfig.server.json && node_modules/.bin/next build

'node_modules' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: tsc --project tsconfig.server.json && node_modules/.bin/next build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

I was expecting it just to build. What am I doing wrong?

For information, I'm using Node12 as per the prerequisites.

Thanks.

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/test/cypress-typescript-axe-applitools-lighthouse /package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

Dependabot can't parse your main.tf

Dependabot couldn't parse the main.tf found at /libs/orchestration/terraform-azurerm-amido-cosmosdb/main.tf.

The error Dependabot encountered was:

unable to parse HCL: At 6:25: Unknown token: 6:25 IDENT var.create_cosmosdb

View the update logs.

Some Cypress CoreUI tests fail

Describe the bug
Some of the UI tests fail and because they're not run at PR time we don't now which ones fail or not.

To Reproduce
Run the Cypress Tests pointing to dev: https://dev-app.nonprod.amidostacks.com/web/stacks

Expected behaviour
All tests should pass

Screenshots
Examples:
image
image

Also a 404 for metadata.json.

Platform (please complete the following information):
N/A

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/src/ssr/package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

Break repo up into smaller more-manageable repos

Is your feature request related to a problem? Please describe.
Currently this repo is housing a lot of different pieces of code, but it's probably best to split application code away from Scaffolding CLI code.

Builds are taking a long time as small changes to the Scaffolding are running lots of application level testing.

Describe the solution you'd like
It'd be good to break away CSR and SSR into a repo or two repos.
It'd also be good to break away the images into their own repo.

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/src/csr/package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

TestCafe should upload screenshots as an artefact

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
The Testcafe builds should upload the screnshots taken as a Build Artefact, or better yet attach the screenshots to the tests in the Test output in Azure DevOps
image

Describe alternatives you've considered
Either:
1.) Upload the screenshots as a plain artefact.
2.) Upload them as attachments to the tests.

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/src/ssr/package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

`eslint` (and other git hooks) should run in the pipeline

Is your feature request related to a problem? Please describe.
eslint is only ran during a git commit as a hook, but if someone types --no-verify they don't get the linting checks.

Describe the solution you'd like
All checks made in hooks should run in the pipeline to ensure the quality of the code.

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/src/ssr/package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

`stage` isn't defined in templates

Describe the bug
TF_VAR_stage isn't defined, leading to the resources always ending up as dev even in non-dev envs.

To Reproduce
Try declaring a non-dev` app pipeline.

Expected behaviour
stage should be passed to Terraform separately from environment.

Screenshots
image

Dependabot couldn't find a package.json for this project

Dependabot couldn't find a package.json for this project.

Dependabot requires a package.json to evaluate your project's current JavaScript dependencies. It had expected to find one at the path: /packages/scaffolding-cli/templates/test/cypress-typescript-axe-applitools-lighthouse /package.json.

If this isn't a JavaScript project, or if it is a library, you may wish to disable updates for it from within Dependabot.

View the update logs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.