A quickstart repo that quickly straps a testable/deployable/runnable unauthenticated Angular micro-frontend(a.k.a. miffy) that encourages rapid iteration and supports micro-cms content in the form of GraphQL datasources. Since our goals align nicely and share common purpose, we are particularly proud of our quick response to your hackathon team... your success IS our success!
Caution: Be aware this project is heavily-opinionated with a bias towards action and to the Nodejs(Typescript)/GoLang/Angular(CLI)/Google(GCP)/Kubernetes ecosystems and will be quick to contribute early/often any opinions, preferably in code, to any relevant dependencies that share our penchant.
Your feedback and perspective is ALWAYS valued. Chances are, if this broad ecosystem(s) is not to your liking or important to your world, then this project is probably not quite right for you, feel free to quietly move along.
We do avidly pursue a better way to quickly develop/deploy miffys and their supporting architectures, however, we do not necessarily consider ourselves experts in any facet of this endeavor, nor do we strive to promote our own brilliance beyond the wisdom of our own crowd that share a common curiousity and enthusiasm to expose ourselves to the broadest spectrun of technology without the PITA associated with things that do not matter, so we can see concepts in an always-on mode. None of us is smarter than all of you. IOWs, we are interested in the conversation not in your pursuit of reputation, so, as always, a little humility, enthusiasm, and respect for the weakest among us is a big deal, d-bags need not apply. Maybe help each other out, especially us newbs, we want to be productive, participate, and contribute across the broadest possible spectrum of development.
This project will ALWAYS invite your "dumb" questions and other sorts of valuable contributions that you might wish to offer! Thanks!!
A few commitments for which this project strives are to:
- Opt first for include and embrace anyone who wishes to participate, without judgement.
- Run the latest lts node implementation
- Run the latest of angular cli
- Use
ng new <PROJECT NAME>
to create a new miffy - Use @angular/schematics wherever available to install libraries
- Use @angular/cli best practice and default libraries where conflicts with miffy best practices are not present
- Use the latest library version of the most active project that serves the need
- All changes must pass 100% of available tests with 90% coverage before they can be accepted
- Deployable and testable exclusively on GCP infrastructure using tools that optimize as such, and opting for support of other cloud-based infrastructures where practical.
This project was initially generated with Angular CLI version 11.2.3 and can be fully reproduced from scratch by issuing the following commands in succession:
ng new micro-<SERVICE_NICKNAME>
ng add @angular-eslint/schematics
ng add angular-server-side-configuration
npm install eslint-config-google
<... stuff here>
vi .fd.<ROOT_DOMAIN>
-- Update the first few variables to meet your needs
typically modify:
FD_TARGET_LOCAL_PORT -- the localhost port used for Docker mapping (s/b unique to miffy realm and match npm start port))
FD_NICKNAME -- the base route for all requests(peferably relevant to service function)
FD_TARGET_REALM -- the subdomain that will serve the realm(must end with a dot)(appended to the root domain to form the auth realm)
Search/Replace all instances 'micro-client-public-starter' with your repo name/project root directory name
npm install
pu.sh --local
-- You should be up and running locally at the link provided upon completion of deployment with a working Docker demo!
-- OR --
npm run start
-- You should be up and running locally in development mode with watchers and hot reload awaiting your development!
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI Overview and Command Reference page.