All Projects โ†’ sardapv โ†’ angular-material-starter-template

sardapv / angular-material-starter-template

Licence: MIT license
๐Ÿ„ Angular 14 boilerplate that comes with Material-UI, Tailwind3, Purgecss, Jest & Cypress Support, Optimal project structure & Interceptor inspired from popular blogs, source map analyzer tools, husky, all pre-configured and much more...

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to angular-material-starter-template

frontenso-11ty-starter
Production-ready 11ty+Gulp+Webpack Starter that features Nunjucks, SASS, TailwindCSS (with JIT complier), and ESNext.
Stars: โœญ 24 (-76.92%)
Mutual labels:  boilerplate-template, boilerplate-front-end, tailwind
shopify-slater-tailwindcss
Shopify Starter Theme + TailwindCSS with PurgeCSS
Stars: โœญ 40 (-61.54%)
Mutual labels:  tailwind, purgecss
create-nuxt-tailwind-app
[DEPRECATED] Use create-nuxt-app, they added full tailwindcss & purgecss support
Stars: โœญ 32 (-69.23%)
Mutual labels:  tailwind, purgecss
vite-vue3-tailwind
Boilerplate at vue 3 whit firebase, vue notus, typesctip, vite, tailwind
Stars: โœญ 21 (-79.81%)
Mutual labels:  boilerplate-front-end, tailwind
svelte-pwa-now
A PWA ready Svelte v3.0 starter template with Tailwind, Now integration and optional Typescript suppot
Stars: โœญ 138 (+32.69%)
Mutual labels:  cypress, tailwind
create-material-ui-app
create-react-app + storybook + storybook-addon-material-ui
Stars: โœญ 55 (-47.12%)
Mutual labels:  material-ui, boilerplate-template
create-react-app-tailwindcss
Create React apps with no build configuration, extended with TailwindCSS and PurgeCSS
Stars: โœญ 30 (-71.15%)
Mutual labels:  tailwind, purgecss
uno-game
๐ŸŽด An UNO Game made in Javascript
Stars: โœญ 93 (-10.58%)
Mutual labels:  material-ui, husky
React Redux Flask
Boilerplate application for a Python/Flask JWT Backend and a Javascript/React/Redux Front-End with Material UI.
Stars: โœญ 1,431 (+1275.96%)
Mutual labels:  material-ui, boilerplate-application
adminlte-3-angular
Angular 15.0.1 start-up project with AdminLTE 3.2.0 template
Stars: โœญ 167 (+60.58%)
Mutual labels:  boilerplate-front-end, angular14
electron-typescript-react-mui
Lightweight, modern boilerplate built with electron, typescript, react, and material-ui.
Stars: โœญ 56 (-46.15%)
Mutual labels:  boilerplate-template, boilerplate-application
vurtify
Laravel 8 boilerplate project with Fortify + Vue 3 + Bootstrap 5
Stars: โœญ 61 (-41.35%)
Mutual labels:  tailwind
photoeditor
๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ ReactJS Photo Editor
Stars: โœญ 26 (-75%)
Mutual labels:  material-ui
wongames
๐ŸŽฎ Ecommerce de jogos no estilo Steam. Desenvolvido com Next.js, TypeScript, GraphQL, etc.
Stars: โœญ 18 (-82.69%)
Mutual labels:  cypress
best-of-react
๐Ÿ† A ranked list of awesome React open-source libraries and tools. Updated weekly.
Stars: โœญ 364 (+250%)
Mutual labels:  material-ui
mui-form-fields
Material UI + Final Form Forms and Components
Stars: โœญ 15 (-85.58%)
Mutual labels:  material-ui
firebase-spring-boot-rest-api-authentication
Firebase Spring Boot Rest API Authentication
Stars: โœญ 172 (+65.38%)
Mutual labels:  cypress
tailwind-dashboard-windster
Free and open-source admin dashboard interface built on top of Tailwind CSS and Flowbite
Stars: โœญ 681 (+554.81%)
Mutual labels:  tailwind
plugins
Collection of plugins for Windi CSS.
Stars: โœญ 64 (-38.46%)
Mutual labels:  tailwind
cypress-example-todomvc-redux
Example TodoMVC application with full code coverage
Stars: โœญ 43 (-58.65%)
Mutual labels:  cypress

angular-material-starter-template (ng-new-app ๐Ÿ„)

Package has been updated with everything latest, if you find any issues, please report. PRs welcome

Note: Cypress RUN and Code Coverage is disabled from pipeline until officially fixed by Cypress Team

Lint-Prettier-Prettier:verify-Tests-CypressTests-Build-Purgecss-Deploy GitHub GitHub release (latest by date)

logo

This boilerplate comes with bunch of preconfigured stuffs and best practises to help you kickstart your project easier & quicker...

If you like this project, do leave a ๐ŸŒŸ ! ๐Ÿ˜Š

Sample Demo ๐Ÿš€ (only shows that Tailwind, Material components are integrated)

How to get started?

Make sure you have node.js latest stable & @angular-cli installed on your system before running below commands

  • Run
npx ng-new-app your-app-name

if you don't have npx, Run -

sudo npm i ng-new-app -g

and

ng-new-app your-app-name
  • Read instructions carefully after its successful, refer readme if any doubt.
  • change package.json for project, version & author details
  • Runnpm start and start coding ๐Ÿ˜‰

What's inside the boilerplate?

Keep reading for detailed summary ๐Ÿท

  • Project Structure inspired form Rik De Vos's blog - tl:dr 3 main modules

    • CoreModule - only to be imported in Appmodule

      • Auth Guard with basic check

      • Basic Auth service (Refer model in model folder & change accordingly)

        • login
        • refreshtoken
        • storetoken
        • getTokens
        • logout
      • A broadcaster service included which listens to your key:value pair of events anywhere in app. Here is how to use to share data across modules,components

        • constructor(private _broadcatser: BroadcasterService) {}
        • to broadcast and listen anywhere

          this._broadcatser.broadcast('mykey', 'myvalue');
          
          // to listen inside any component inject service there and do simply below
          
          /* use this service with takeUntil from rxJS and local Subject &
           * destroy in OnDestroy to prevent memory leaks
           */
          
          this._broadcatser.listen('mykey').subscribe({
              next:(data) => console.log(data) // your broadcasted value
            })
          }
    • FeatureModule - all lazyloaded pages/modules goes here

      • before-login modules
      • after-login modules
    • SharedModule - folder with bunch of SCAM (Single Component Angular Module) modules only to be shared globally and imported in feature modules

      • Can have customcomponents, pipes, directives as SCAM pattern (sample scam component as independent module included: recommended rather than creating big shared module)
      • CustomPipes, Directives, Components, Models, Validators folders to organise
      • index.ts provided for shared.module.ts (to organise imports only for items to include inshared.module.ts)
    • annotations @shared, @feature, @core added in tsconfig.json for easy import

  • HTTP Request Interceptor ๐Ÿ‘€๏ธ

    • in service.ts use endpoints without baseurl as e.g '/action/endpoint'
    • request cloner
    • header modifier
    • success and error handler
    • refresh token handler (inspired from Rich Franzmeier's blog)
  • Tailwind and post-build PurgeCSS Configuration

    • Tailwind configuration with font, theme and other properties (refertailwind.config.js)
    • Note: Tailwind's own purgecss only takes care of tailwind classes, for overall application, post-build purgecss is best (I will write an article explaining why)
  • Angular Material Component & CDK integrated

    • Material theme starter pack included, just change colors,font inside_mat_*.scss files
  • Superpowerd with Jest for unit testing and Cypress for e2e testing (instead of karma and protractor). Special Thanks to contribution by @sjetha for this and eslint integration.

  • ESLint integrated as recommended by Angular

  • Prettier configured (with resolved conflicts between ESLint) - no VS extension being used by team? run command to check if follows rules/ run prettier on all in one go! Thanks to @deekshithrajbasa for this.

  • Global route-loader progressbar on top like github, using ngx-loading-bar package

  • Self-XSS warning for use of console on prod build. Inspect & Check console here

  • Icons and Typography (CDN links - index.html)

    • Angular Material Icons added
    • Default Poppins, OpenSans font integrated
  • pollyfills (for safari) 'web-animations-js' added for animations support inside @Component decorator

  • Local source analyzing tools webpack-bundle-analyzer and source-map-explorer, Local prod-build deploy and test with purgecss

  • [newโœจ] Pre-commit husky hook, run whatever command you want before git commit. By default prettifying changed/staged files and running lint is enabled, you can comment out run tests too. Refer .husky/pre-commit file for this operations. This helps you maintian same quality across team workspaces.

  • [newโœจ] Test-coverage report and its workflow (github action). Check index.html in generated coverage folder. Thanks to @sapatgit for adding this and @sjetha for improvising it with best solution.

There is a command for everything you need! ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

command What it does? Thanks to Plugin
npm start Starts the server in dev mode ๐Ÿคท๐Ÿปโ€โ™‚๏ธ
npm run lint Runs ESLint on project
npm run prettier Runs prettier on entire src folder
npm run prettier:verify Runs prettier-check and throws error if fails
npm run prettier:staged Runs prettier on only staged (changed) files
npm run final-build Takes prod build and runs PurgeCSS script
npm run prod-test Takes a final-build deployes on local server and give you url to run serve
npm run purgecss Run PurgeCSS job to reduced style.css size into few kbs purgecss
npm run source Takes a final-build and opens up source-map-explorer view source-map-explorer
npm run webpack-analyze Takes a final-build and opens up webpack-bundle-analyzer view webpack-bundle-analyzer
npm run test Runs all the jests test cases @briebug/jest-schematic
npm run test:coverage Runs all the jests test cases and generate coverage report @briebug/jest-schematic
npm run e2e Opens up Cypress View to run your e2e tests in browser @cypress/schematic
npm run e2e:ci Runs cypress tests in console (used for CI/CD) @cypress/schematic

Plan

Under auth-login-page branch, there is a sample login page designed. Looking for contributors to build signup, forgot password pages and integration with Firebase with a minimal configuration to change for any new project. PRs welcomeโœŒ๐Ÿป. Look for project/issues tab.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Pranav Sarda

๐Ÿ’ป ๐Ÿ“ ๐Ÿ“– ๐Ÿ’ก ๐ŸŽจ

Shafiq Jetha

โš ๏ธ ๐Ÿ’ป ๐Ÿšง

Deekshith Raj Basa

๐Ÿ’ป ๐Ÿ’ก

Saptarshi Majumdar

๐Ÿ“– ๐Ÿ’ป

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].