{"id":42796833,"url":"https://github.com/mike-works/modern-javascript","last_synced_at":"2026-01-30T01:20:54.792Z","repository":{"id":20846654,"uuid":"91082876","full_name":"mike-works/modern-javascript","owner":"mike-works","description":"👨‍🏫 Mike's Modern JavaScript course","archived":false,"fork":false,"pushed_at":"2026-01-26T20:34:55.000Z","size":3589,"stargazers_count":14,"open_issues_count":50,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-27T07:42:58.855Z","etag":null,"topics":["async-await","course","functional-programming","javascript","object-oriented-programming"],"latest_commit_sha":null,"homepage":"https://mike.works/course/modern-javascript-437a5c3","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mike-works.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-05-12T11:02:53.000Z","updated_at":"2025-11-19T20:44:53.000Z","dependencies_parsed_at":"2023-10-11T01:09:45.334Z","dependency_job_id":"b05429a8-25a5-4c94-8d34-cf783359063f","html_url":"https://github.com/mike-works/modern-javascript","commit_stats":null,"previous_names":[],"tags_count":352,"template":false,"template_full_name":null,"purl":"pkg:github/mike-works/modern-javascript","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-works%2Fmodern-javascript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-works%2Fmodern-javascript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-works%2Fmodern-javascript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-works%2Fmodern-javascript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mike-works","download_url":"https://codeload.github.com/mike-works/modern-javascript/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike-works%2Fmodern-javascript/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28892892,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T21:06:44.224Z","status":"ssl_error","status_checked_at":"2026-01-29T21:06:42.160Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async-await","course","functional-programming","javascript","object-oriented-programming"],"created_at":"2026-01-30T01:20:54.057Z","updated_at":"2026-01-30T01:20:54.787Z","avatar_url":"https://github.com/mike-works.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align='center'\u003e\n  \u003ca href=\"https://mike.works\" target='_blank'\u003e\n    \u003cimg height=40 src='https://assets.mike.works/img/login_logo-33a9e523d451fb0d902f73d5452d4a0b.png' /\u003e\n  \u003c/a\u003e \n\u003c/p\u003e\n\u003cp align='center'\u003e\n  \u003ca href=\"https://mike.works/course/modern-javascript-437a5c3\" target='_blank'\u003e\n    \u003cimg height=150 src='https://cloud.githubusercontent.com/assets/558005/25995673/c8d86ce6-3713-11e7-8a18-9c85bcf73fc9.png' /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align='center'\u003e\n  \u003ca href=\"https://travis-ci.org/mike-works/modern-javascript\" title=\"Build Status\"\u003e\n    \u003cimg title=\"Build Status\" src=\"https://travis-ci.org/mike-works/modern-javascript.svg?branch=solutions\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/mike-works/modern-javascript/releases\" title=\"Version\"\u003e\n    \u003cimg title=\"Version\" src=\"https://img.shields.io/github/tag/mike-works/modern-javascript.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align='center'\u003e\nThis is the example project used for the \u003ca title=\"Mike.Works\" href=\"https://mike.works\"\u003eMike.Works\u003c/a\u003e \u003ca title=\"Modern JavaScript\" href=\"https://mike.works/course/modern-javascript-437a5c3\"\u003eModern JavaScript\u003c/a\u003e course.\n\u003c/p\u003e\n\n# Course outline and slides\n * [View course outline here](https://mike.works/course/modern-javascript-437a5c3)\n * [View slides here](https://docs.mike.works/modern-js)\n \n# What are the pieces?\n\n* [Webpack 3](https://webpack.js.org)\n* [React v16](https://facebook.github.io/react/)\n* [Babel](http://babeljs.io/) 7.x, setup with the [stage-2](https://github.com/babel/babel/tree/7.0/packages/babel-preset-stage-2) plugins, compiling to ES5 JavaScript\n* [ESLint](https://github.com/eslint/eslint) for linting, setup with a strict set of rules derived from [Airbnb's ESLint Config](https://www.npmjs.com/package/eslint-config-airbnb)\n* [sass-loader](https://github.com/webpack-contrib/sass-loader) for traditional management of styles\n* [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) so compiled styles are external stylesheets instead of inline style blocks\n* [Jest](http://facebook.github.io/jest/) as a testing platform\n\n# How to use it\n\n##### Start the Development Server\n`npm start \u003cexercise-name\u003e`\n\n##### Build Development Assets in the `/dist` folder\nThis will be an un-minified version of an exercise, and will include some webpack-specific tooling, intended only for development use\n\n`npm run build:dev \u003cexercise-name\u003e`\n\n##### Build Production Assets in the `/dist` folder\nThis will be an optimized version of the exercise\n\n`npm run build:dist \u003cexercise-name\u003e`\n\n## The Exercise Folder\nExercises are standalone mini-projects with the following folder structure.\n```sh\nindex.html   # HTML served for exercise\n./src        # Scripts (js and jsx)\n   ⌙ index.js -     # Entry point for the mini-project\n./styles     # Styles\n   ⌙ app.scss       #  (optional) Entry point for styles\n./tests      # Tests\n   ⌙ myfile.test.js # Tests must have *.test.js\n```\n\n## Global stuff\nGlobal styles can be placed in `public/styles/app.scss`. These are available across all examples\n\n# License\nWhile the general license for this project is the BSD 3-clause, the exercises\nthemselves are proprietary and are licensed on a per-individual basis, usually\nas a result of purchasing a ticket to a public workshop, or being a participant\nin a private training.\n\nHere are some guidelines for things that are **OK** and **NOT OK**, based on our\nunderstanding of how these licenses work:\n\n### OK\n* Using everything in this project other than the exercises (or accompanying tests) \nto build a project used for your own free or commercial training material\n* Copying code from build scripts, configuration files, tests and development \nharnesses that are not part of the exercises specifically, for your own projects\n* As an owner of an individual license, using code from tests, exercises, or\nexercise solutions for your own non-training-related project.\n\n### NOT OK (without express written consent)\n* Using this project, or any subset of \nexercises contained within this project to run your own workshops\n* Writing a book that uses the code for these exercises\n* Recording a screencast that contains one or more of this project's exercises \n\n\n# Copyright\n\n\u0026copy; 2018 [Mike.Works](https://mike.works), All Rights Reserved\n\n###### This material may not be used for workshops, training, or any other form of instructing or teaching developers, without express written consent\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-works%2Fmodern-javascript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmike-works%2Fmodern-javascript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike-works%2Fmodern-javascript/lists"}