From c565eda289080801d48d1f6a740202a6181ef6ad Mon Sep 17 00:00:00 2001 From: Michael Solati Date: Tue, 23 May 2017 18:18:04 -0400 Subject: [PATCH] feat(angular): rewrite from angularjs to angular --- .angular-cli.json | 60 ++++++ .buildignore | 1 - .editorconfig | 17 +- .gitattributes | 1 - .gitignore | 141 ++++---------- .jscsrc | 66 ------- .jshintrc | 73 -------- .travis.yml | 17 -- COMMITS.md | 42 +++++ README.md | 103 +++-------- app/about/about.html | 52 ------ app/about/about.js | 25 --- app/activities/activities.html | 28 --- app/activities/activities.js | 92 ---------- app/boomerang.config.js | 26 --- app/boomerang.module.js | 18 -- app/conduct/conduct.html | 129 ------------- app/conduct/conduct.js | 7 - app/css/gdg.css | 162 ----------------- app/events/events.html | 51 ------ app/events/events.js | 66 ------- app/filters/hashLinkyFilter.js | 39 ---- app/filters/htmlLinkyFilter.js | 36 ---- app/footer/footer.directive.js | 8 - app/footer/footer.html | 7 - app/images/GDG-X-Boomerang-snippet.png | Bin 160072 -> 0 bytes app/images/gdg_loading.gif | Bin 3995 -> 0 bytes app/images/icons/GDG_square_lg.png | Bin 14843 -> 0 bytes app/images/icons/ic_code_48px.svg | 1 - app/images/icons/ic_directions_run_48px.svg | 1 - app/images/icons/ic_event_48px.svg | 1 - app/images/icons/ic_local_hospital_48px.svg | 1 - app/images/icons/ic_local_pizza_48px.svg | 1 - app/images/icons/ic_mic_48px.svg | 1 - app/images/icons/ic_people_48px.svg | 1 - app/images/icons/ic_timer_48px.svg | 1 - app/images/icons/meetup.png | Bin 2391 -> 0 bytes app/images/sponsor1.png | Bin 3467 -> 0 bytes app/images/sponsor2.gif | Bin 4970 -> 0 bytes app/news/components/gplusAlbum.html | 15 -- app/news/components/gplusAlbum.js | 10 - app/news/components/gplusArticle.html | 12 -- app/news/components/gplusArticle.js | 10 - app/news/components/gplusEvent.html | 24 --- app/news/components/gplusEvent.js | 7 - app/news/components/gplusNoAttachments.html | 6 - app/news/components/gplusNoAttachments.js | 7 - app/news/components/gplusPhotoVideo.html | 8 - app/news/components/gplusPhotoVideo.js | 10 - app/news/components/gplusPostContent.html | 32 ---- app/news/components/gplusPostContent.js | 7 - app/news/components/gplusPostImage.html | 3 - app/news/components/gplusPostImage.js | 6 - app/news/components/gplusPostVideo.html | 3 - app/news/components/gplusPostVideo.js | 12 -- app/news/components/newsItemFooter.html | 10 - app/news/components/newsItemFooter.js | 6 - app/news/news.html | 27 --- app/news/news.js | 68 ------- app/organizers/components/gplus.js | 26 --- app/organizers/components/gplus_person.html | 10 - app/organizers/organizers.html | 16 -- app/organizers/organizers.js | 14 -- app/photos/photos.html | 27 --- app/photos/photos.js | 36 ---- app/services/configService.js | 37 ---- app/services/navService.js | 26 --- bower.json | 39 ---- config/CDN.json | 17 -- e2e/app.e2e-spec.ts | 14 ++ e2e/app.po.ts | 11 ++ e2e/tsconfig.e2e.json | 12 ++ gulpfile.js | 172 ------------------ index.html | 131 ------------- karma.conf.js | 44 +++++ package.json | 123 +++++++------ protractor.conf.js | 30 +++ robots.txt | 3 - src/app/about/about.component.html | 63 +++++++ src/app/about/about.component.scss | 20 ++ src/app/about/about.component.spec.ts | 25 +++ src/app/about/about.component.ts | 33 ++++ src/app/app-routing.module.ts | 17 ++ src/app/app.component.html | 1 + src/app/app.component.scss | 0 src/app/app.component.spec.ts | 36 ++++ src/app/app.component.ts | 8 + src/app/app.module.ts | 60 ++++++ .../code-of-conduct.component.html | 145 +++++++++++++++ .../code-of-conduct.component.scss | 0 .../code-of-conduct.component.spec.ts | 25 +++ .../code-of-conduct.component.ts | 17 ++ src/app/events/events.component.html | 69 +++++++ src/app/events/events.component.scss | 0 src/app/events/events.component.spec.ts | 25 +++ src/app/events/events.component.ts | 40 ++++ src/app/footer/footer.component.html | 3 + src/app/footer/footer.component.scss | 0 src/app/footer/footer.component.spec.ts | 25 +++ src/app/footer/footer.component.ts | 15 ++ src/app/home/home.component.html | 25 +++ src/app/home/home.component.scss | 0 src/app/home/home.component.spec.ts | 25 +++ src/app/home/home.component.ts | 35 ++++ src/app/navbar/navbar.component.html | 26 +++ src/app/navbar/navbar.component.scss | 8 + src/app/navbar/navbar.component.spec.ts | 25 +++ src/app/navbar/navbar.component.ts | 27 +++ src/app/news/news.component.html | 30 +++ src/app/news/news.component.scss | 0 src/app/news/news.component.spec.ts | 25 +++ src/app/news/news.component.ts | 30 +++ src/app/organizers/organizers.component.html | 28 +++ src/app/organizers/organizers.component.scss | 0 .../organizers/organizers.component.spec.ts | 25 +++ src/app/organizers/organizers.component.ts | 21 +++ src/app/photos/photos.component.html | 23 +++ src/app/photos/photos.component.scss | 16 ++ src/app/photos/photos.component.spec.ts | 25 +++ src/app/photos/photos.component.ts | 22 +++ src/app/services/gplus.service.spec.ts | 15 ++ src/app/services/gplus.service.ts | 44 +++++ src/app/services/hub.service.spec.ts | 15 ++ src/app/services/hub.service.ts | 49 +++++ src/app/services/meetup.service.spec.ts | 15 ++ src/app/services/meetup.service.ts | 55 ++++++ src/app/what-we-do/what-we-do.component.html | 146 +++++++++++++++ src/app/what-we-do/what-we-do.component.scss | 45 +++++ .../what-we-do/what-we-do.component.spec.ts | 25 +++ src/app/what-we-do/what-we-do.component.ts | 17 ++ src/assets/.gitkeep | 0 .../assets}/Google-Developers.png | Bin src/assets/banner.png | Bin 0 -> 33057 bytes src/environments/environment.prod.ts | 26 +++ src/environments/environment.ts | 31 ++++ favicon.ico => src/favicon.ico | Bin src/index.html | 17 ++ src/main.ts | 11 ++ src/polyfills.ts | 68 +++++++ src/styles.scss | 30 +++ src/styles/bootstrap.scss | 7 + src/styles/components.scss | 36 ++++ src/styles/mixins.scss | 15 ++ src/styles/theme.scss | 43 +++++ src/test.ts | 32 ++++ src/tsconfig.app.json | 13 ++ src/tsconfig.spec.json | 20 ++ src/typings.d.ts | 5 + test/e2e/aboutTests.js | 39 ---- test/e2e/conf.js | 16 -- test/e2e/env.js | 7 - test/e2e/newsTests.js | 24 --- test/unit/controllerTests.js | 55 ------ test/unit/karma.conf.js | 70 ------- tsconfig.json | 20 ++ tslint.json | 116 ++++++++++++ 156 files changed, 2309 insertions(+), 2207 deletions(-) create mode 100644 .angular-cli.json delete mode 100644 .buildignore delete mode 100644 .gitattributes delete mode 100644 .jscsrc delete mode 100644 .jshintrc delete mode 100644 .travis.yml create mode 100644 COMMITS.md delete mode 100644 app/about/about.html delete mode 100644 app/about/about.js delete mode 100644 app/activities/activities.html delete mode 100644 app/activities/activities.js delete mode 100644 app/boomerang.config.js delete mode 100644 app/boomerang.module.js delete mode 100644 app/conduct/conduct.html delete mode 100644 app/conduct/conduct.js delete mode 100644 app/css/gdg.css delete mode 100644 app/events/events.html delete mode 100644 app/events/events.js delete mode 100644 app/filters/hashLinkyFilter.js delete mode 100644 app/filters/htmlLinkyFilter.js delete mode 100644 app/footer/footer.directive.js delete mode 100644 app/footer/footer.html delete mode 100644 app/images/GDG-X-Boomerang-snippet.png delete mode 100644 app/images/gdg_loading.gif delete mode 100644 app/images/icons/GDG_square_lg.png delete mode 100755 app/images/icons/ic_code_48px.svg delete mode 100644 app/images/icons/ic_directions_run_48px.svg delete mode 100644 app/images/icons/ic_event_48px.svg delete mode 100644 app/images/icons/ic_local_hospital_48px.svg delete mode 100644 app/images/icons/ic_local_pizza_48px.svg delete mode 100644 app/images/icons/ic_mic_48px.svg delete mode 100644 app/images/icons/ic_people_48px.svg delete mode 100644 app/images/icons/ic_timer_48px.svg delete mode 100644 app/images/icons/meetup.png delete mode 100644 app/images/sponsor1.png delete mode 100644 app/images/sponsor2.gif delete mode 100644 app/news/components/gplusAlbum.html delete mode 100644 app/news/components/gplusAlbum.js delete mode 100644 app/news/components/gplusArticle.html delete mode 100644 app/news/components/gplusArticle.js delete mode 100644 app/news/components/gplusEvent.html delete mode 100644 app/news/components/gplusEvent.js delete mode 100644 app/news/components/gplusNoAttachments.html delete mode 100644 app/news/components/gplusNoAttachments.js delete mode 100644 app/news/components/gplusPhotoVideo.html delete mode 100644 app/news/components/gplusPhotoVideo.js delete mode 100644 app/news/components/gplusPostContent.html delete mode 100644 app/news/components/gplusPostContent.js delete mode 100644 app/news/components/gplusPostImage.html delete mode 100644 app/news/components/gplusPostImage.js delete mode 100644 app/news/components/gplusPostVideo.html delete mode 100644 app/news/components/gplusPostVideo.js delete mode 100644 app/news/components/newsItemFooter.html delete mode 100644 app/news/components/newsItemFooter.js delete mode 100644 app/news/news.html delete mode 100644 app/news/news.js delete mode 100644 app/organizers/components/gplus.js delete mode 100644 app/organizers/components/gplus_person.html delete mode 100644 app/organizers/organizers.html delete mode 100644 app/organizers/organizers.js delete mode 100644 app/photos/photos.html delete mode 100644 app/photos/photos.js delete mode 100644 app/services/configService.js delete mode 100644 app/services/navService.js delete mode 100644 bower.json delete mode 100644 config/CDN.json create mode 100644 e2e/app.e2e-spec.ts create mode 100644 e2e/app.po.ts create mode 100644 e2e/tsconfig.e2e.json delete mode 100644 gulpfile.js delete mode 100644 index.html create mode 100644 karma.conf.js create mode 100644 protractor.conf.js delete mode 100644 robots.txt create mode 100644 src/app/about/about.component.html create mode 100644 src/app/about/about.component.scss create mode 100644 src/app/about/about.component.spec.ts create mode 100644 src/app/about/about.component.ts create mode 100644 src/app/app-routing.module.ts create mode 100644 src/app/app.component.html create mode 100644 src/app/app.component.scss create mode 100644 src/app/app.component.spec.ts create mode 100644 src/app/app.component.ts create mode 100644 src/app/app.module.ts create mode 100644 src/app/code-of-conduct/code-of-conduct.component.html create mode 100644 src/app/code-of-conduct/code-of-conduct.component.scss create mode 100644 src/app/code-of-conduct/code-of-conduct.component.spec.ts create mode 100644 src/app/code-of-conduct/code-of-conduct.component.ts create mode 100644 src/app/events/events.component.html create mode 100644 src/app/events/events.component.scss create mode 100644 src/app/events/events.component.spec.ts create mode 100644 src/app/events/events.component.ts create mode 100644 src/app/footer/footer.component.html create mode 100644 src/app/footer/footer.component.scss create mode 100644 src/app/footer/footer.component.spec.ts create mode 100644 src/app/footer/footer.component.ts create mode 100644 src/app/home/home.component.html create mode 100644 src/app/home/home.component.scss create mode 100644 src/app/home/home.component.spec.ts create mode 100644 src/app/home/home.component.ts create mode 100644 src/app/navbar/navbar.component.html create mode 100644 src/app/navbar/navbar.component.scss create mode 100644 src/app/navbar/navbar.component.spec.ts create mode 100644 src/app/navbar/navbar.component.ts create mode 100644 src/app/news/news.component.html create mode 100644 src/app/news/news.component.scss create mode 100644 src/app/news/news.component.spec.ts create mode 100644 src/app/news/news.component.ts create mode 100644 src/app/organizers/organizers.component.html create mode 100644 src/app/organizers/organizers.component.scss create mode 100644 src/app/organizers/organizers.component.spec.ts create mode 100644 src/app/organizers/organizers.component.ts create mode 100644 src/app/photos/photos.component.html create mode 100644 src/app/photos/photos.component.scss create mode 100644 src/app/photos/photos.component.spec.ts create mode 100644 src/app/photos/photos.component.ts create mode 100644 src/app/services/gplus.service.spec.ts create mode 100644 src/app/services/gplus.service.ts create mode 100644 src/app/services/hub.service.spec.ts create mode 100644 src/app/services/hub.service.ts create mode 100644 src/app/services/meetup.service.spec.ts create mode 100644 src/app/services/meetup.service.ts create mode 100644 src/app/what-we-do/what-we-do.component.html create mode 100644 src/app/what-we-do/what-we-do.component.scss create mode 100644 src/app/what-we-do/what-we-do.component.spec.ts create mode 100644 src/app/what-we-do/what-we-do.component.ts create mode 100644 src/assets/.gitkeep rename {app/images => src/assets}/Google-Developers.png (100%) create mode 100755 src/assets/banner.png create mode 100644 src/environments/environment.prod.ts create mode 100644 src/environments/environment.ts rename favicon.ico => src/favicon.ico (100%) create mode 100644 src/index.html create mode 100644 src/main.ts create mode 100644 src/polyfills.ts create mode 100644 src/styles.scss create mode 100644 src/styles/bootstrap.scss create mode 100644 src/styles/components.scss create mode 100644 src/styles/mixins.scss create mode 100644 src/styles/theme.scss create mode 100644 src/test.ts create mode 100644 src/tsconfig.app.json create mode 100644 src/tsconfig.spec.json create mode 100644 src/typings.d.ts delete mode 100644 test/e2e/aboutTests.js delete mode 100644 test/e2e/conf.js delete mode 100644 test/e2e/env.js delete mode 100644 test/e2e/newsTests.js delete mode 100644 test/unit/controllerTests.js delete mode 100644 test/unit/karma.conf.js create mode 100644 tsconfig.json create mode 100644 tslint.json diff --git a/.angular-cli.json b/.angular-cli.json new file mode 100644 index 00000000..25f87638 --- /dev/null +++ b/.angular-cli.json @@ -0,0 +1,60 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "project": { + "name": "boomerang2" + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": [ + "assets", + "favicon.ico" + ], + "index": "index.html", + "main": "main.ts", + "polyfills": "polyfills.ts", + "test": "test.ts", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", + "prefix": "gdg", + "styles": [ + "styles/bootstrap.scss", + "styles/theme.scss", + "styles/components.scss", + "styles.scss" + ], + "scripts": [], + "environmentSource": "environments/environment.ts", + "environments": { + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "lint": [ + { + "project": "src/tsconfig.app.json" + }, + { + "project": "src/tsconfig.spec.json" + }, + { + "project": "e2e/tsconfig.e2e.json" + } + ], + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "scss", + "component": {} + } +} \ No newline at end of file diff --git a/.buildignore b/.buildignore deleted file mode 100644 index fc98b8eb..00000000 --- a/.buildignore +++ /dev/null @@ -1 +0,0 @@ -*.coffee \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index 51ceaea8..6e87a003 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,20 +1,13 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - +# Editor configuration, see http://editorconfig.org root = true [*] - -# Change these settings to your own preference -indent_style = space -indent_size = 4 - -# We recommend you to keep these unchanged -end_of_line = lf charset = utf-8 -trim_trailing_whitespace = true +indent_style = space +indent_size = 2 insert_final_newline = true +trim_trailing_whitespace = true [*.md] +max_line_length = off trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 21256661..00000000 --- a/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8d6477d6..54bfd200 100644 --- a/.gitignore +++ b/.gitignore @@ -1,109 +1,42 @@ -# Compiled source # -################### -*.com -*.class -*.dll -*.exe -*.o -*.so +# See http://help.github.com/ignore-files/ for more about ignoring files. -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.dmg -*.iso -*.jar -*.rar -*.tar -*.zip +# compiled output +/dist +/tmp +/out-tsc -# Logs and databases # -###################### -*.log -*.sql -*.sqlite +# dependencies +/node_modules -# OS generated files # -###################### +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +testem.log +/typings + +# e2e +/e2e/*.js +/e2e/*.map + +# System Files .DS_Store -.DS_Store? -._* -.Spotlight-V100 -.Trashes -ehthumbs.db Thumbs.db - -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm - -## Directory-based project format -.idea/ -# if you remove the above rule, at least ignore user-specific stuff: -# .idea/workspace.xml -# .idea/tasks.xml -# and these sensitive or high-churn files: -# .idea/dataSources.ids -# .idea/dataSources.xml -# .idea/sqlDataSources.xml -# .idea/dynamic.xml - -## File-based project format -*.ipr -*.iws -*.iml - -## Additional for IntelliJ -out/ - -# generated by mpeltonen/sbt-idea plugin -.idea_modules/ - -# generated by JIRA plugin -atlassian-ide-plugin.xml - -# generated by Crashlytics plugin (for Android Studio and Intellij) -com_crashlytics_export_strings.xml - -# Covers Eclipse projects - -*.pydevproject -.metadata -.gradle -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -local.properties -.settings/ -.loadpath - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - -# sbteclipse plugin -.target - -# TeXlipse plugin -.texlipse - -# App Engine -war/WEB-INF/classes -war/WEB-INF/lib -war/WEB-INF/appengine-generated - -#JavaScript tooling -node_modules -bower_components -dist/ \ No newline at end of file diff --git a/.jscsrc b/.jscsrc deleted file mode 100644 index bbe4a784..00000000 --- a/.jscsrc +++ /dev/null @@ -1,66 +0,0 @@ -{ - "excludeFiles": ["node_modules/**", "bower_components/**"], - - "requireCurlyBraces": [ - "if", - "else", - "for", - "while", - "do", - "try", - "catch" - ], - "requireOperatorBeforeLineBreak": true, - "requireCamelCaseOrUpperCaseIdentifiers": true, - "maximumLineLength": { - "value": 120, - "allowComments": true, - "allowRegex": true - }, - "validateIndentation": 4, - "validateQuoteMarks": "'", - - "disallowMultipleLineStrings": true, - "disallowMixedSpacesAndTabs": true, - "disallowTrailingWhitespace": true, - "disallowSpaceAfterPrefixUnaryOperators": true, - "disallowMultipleVarDecl": null, - - "requireSpaceAfterKeywords": [ - "if", - "else", - "for", - "while", - "do", - "switch", - "return", - "try", - "catch" - ], - "requireSpaceBeforeBinaryOperators": [ - "=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=", - "&=", "|=", "^=", "+=", - - "+", "-", "*", "/", "%", "<<", ">>", ">>>", "&", - "|", "^", "&&", "||", "===", "==", ">=", - "<=", "<", ">", "!=", "!==" - ], - "requireSpaceAfterBinaryOperators": true, - "requireSpacesInConditionalExpression": true, - "requireSpaceBeforeBlockStatements": true, - "requireLineFeedAtFileEnd": true, - "disallowSpacesInsideObjectBrackets": null, - "disallowSpacesInsideArrayBrackets": null, - "disallowSpacesInsideParentheses": true, - - "disallowMultipleLineBreaks": true, - - "disallowCommaBeforeLineBreak": null, - "disallowDanglingUnderscores": null, - "disallowEmptyBlocks": null, - "disallowTrailingComma": null, - "requireCommaBeforeLineBreak": null, - "requireDotNotation": null, - "requireMultipleVarDecl": null, - "requireParenthesesAroundIIFE": true -} diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index c4e6536f..00000000 --- a/.jshintrc +++ /dev/null @@ -1,73 +0,0 @@ -{ - "bitwise": true, - "camelcase": true, - "curly": true, - "eqeqeq": true, - "es3": false, - "forin": true, - "freeze": true, - "immed": true, - "indent": 4, - "latedef": "nofunc", - "newcap": false, - "noarg": true, - "noempty": true, - "nonbsp": true, - "nonew": true, - "plusplus": false, - "quotmark": "single", - "undef": true, - "unused": false, - "strict": false, - "maxparams": 10, - "maxdepth": 5, - "maxstatements": 40, - "maxcomplexity": 16, - "maxlen": 120, - "asi": false, - "boss": false, - "debug": false, - "eqnull": true, - "esnext": true, - "evil": false, - "expr": false, - "funcscope": false, - "globalstrict": false, - "iterator": false, - "lastsemic": false, - "laxbreak": false, - "laxcomma": false, - "loopfunc": true, - "maxerr": 500, - "moz": false, - "multistr": false, - "notypeof": false, - "proto": false, - "scripturl": false, - "shadow": false, - "sub": true, - "supernew": false, - "validthis": false, - "noyield": false, - "devel": true, - "browser": true, - "node": true, - "globals": { - "angular": false, - "inject": false, - "gapi": false, - "$": false, - "moment": false, - "protractor": false, - "module": false, - "require": false, - "browser": false, - "element": false, - "by": false, - "describe": false, - "expect": false, - "beforeEach": false, - "afterEach": false, - "it": false - } -} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4e7e721a..00000000 --- a/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -language: node_js -node_js: -- '0.12' -- '4.3.1' -cache: - directories: - - node_modules -install: -- npm install -before_script: -# Necessary to run test on Travis CI that require a graphical interface. -# See https://docs.travis-ci.com/user/gui-and-headless-browsers -- export DISPLAY=:99.0 -- sh -e /etc/init.d/xvfb start -- gulp prod -script: -- gulp karma diff --git a/COMMITS.md b/COMMITS.md new file mode 100644 index 00000000..f067d3e0 --- /dev/null +++ b/COMMITS.md @@ -0,0 +1,42 @@ +# Commit Message Guidelines + +We have very precise rules over how our git commit messages can be formatted. This leads to **more +readable messages** that are easy to follow when looking through the **project history**. But also, +we use the git commit messages to **generate the project change log**. + +## Commit Message Format +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject**: + +``` +(): + + + +