{"id":13554119,"url":"https://github.com/cmda-bt/be-course-19-20","last_synced_at":"2025-04-03T06:31:09.704Z","repository":{"id":114181396,"uuid":"227117116","full_name":"cmda-bt/be-course-19-20","owner":"cmda-bt","description":"🎓 Backend · 2019-2020 · Curriculum and Syllabus ","archived":true,"fork":false,"pushed_at":"2020-06-25T14:52:41.000Z","size":4131,"stargazers_count":18,"open_issues_count":0,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-04T02:32:47.362Z","etag":null,"topics":["express","http","javascript","mongodb","node","npm","templating"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmda-bt.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":".github/contributing.md","funding":null,"license":"license","code_of_conduct":"code-of-conduct.md","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}},"created_at":"2019-12-10T12:37:24.000Z","updated_at":"2023-01-28T13:37:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a182b1b-da03-491f-afc1-16c0126ca444","html_url":"https://github.com/cmda-bt/be-course-19-20","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmda-bt%2Fbe-course-19-20","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmda-bt%2Fbe-course-19-20/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmda-bt%2Fbe-course-19-20/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmda-bt%2Fbe-course-19-20/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmda-bt","download_url":"https://codeload.github.com/cmda-bt/be-course-19-20/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246947903,"owners_count":20859338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["express","http","javascript","mongodb","node","npm","templating"],"created_at":"2024-08-01T12:02:39.957Z","updated_at":"2025-04-03T06:31:06.678Z","avatar_url":"https://github.com/cmda-bt.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":" # ![Backend - Course 2019-2020][banner]\n \n \n\u003e **Note**: Back-end has concluded for 2019/2020. Next year will be a new, changed, curriculum. Back-end scores an `7.6` in the student survey! Have a look at the [`/examples`](/examples) folder to see some results from this year.\n\n\n## Table of Contents\n\n*   [Synopsis](#synopsis)\n*   [Description](#description)\n*   [Communication](#communication)\n*   [Goals](#goals)\n*   [Grade](#grade)\n*   [Conduct](#conduct)\n*   [License](#license)\n\n## Synopsis\n\nThe course **Backend** is given at [**@CMDA**][cmda] in 2020 between February 3 and June 26.\n\n*   **Course**: [Backend Development][course] (`2000BAD_16 `)\n*   **Coordinator**: [Danny de Vries][dangit] - d.de.vries4@hva.nl\n*   **Lecturers**:\n    [Danny de Vries][dangit] ([**@dandevri**][danweb]),\n    [Laurens Aarnoudse][razgit] ([**@razpudding**][razweb]) and [Randy Huls][rangit] ([**@randyhuls**][ranweb])\n*   **Credit**: 3 ECTS\n*   **Academic year**: 2019-2020\n*   **Period**: Quarter 3 (spring)\n*   **University**: [Amsterdam University of Applied Sciences][university]\n*   **Programme**: [Communication and Multimedia Design][cmd] (full time bachelor CROHO: `34092`)\n*   **Faculty**: [Digital Media and Creative Industries][faculty]\n*   **Language**: Dutch instructions and English resources\n*   **Entry requirements**: N/A\n\n## Description\nIn Backend we peek behind the curtains and inspect what’s behind the web. You build web apps with [Node.js][node], communicate with [HTTP][http], and store data in a database with [MongoDB][mongodb]. In this course you’ll advance your web dev skills. You’ll learn to use computers to actually make what you design work: people can actually fill in forms, like things, and upload files.\n\nBackend is an elective course given in Quarter 3 (spring) after the core curriculum of our programme, building further on knowledge acquired in *Internetstandaarden*, *Inleiding Programmeren*, and *Blok Web*. \n\nThis course is chosen alongside **Frontend 2** and **Project Tech**, together making up Block Tech. If you’d like to continue with web development after this course, do a tech internship, choose the [Tech Track][track] for the fall semester next year, and pick [Minor Everything Web][minor] in the spring semester after that.\n\n_Back-end is part of the  CMD Amsterdam **design \u0026 build space** (technical course) that focusses on   Conceptualizing (2), Imagining and creating (3), Multidisciplinary collaboration (5) \u0026 Research (9) competences._\n\n## Communication\n\n*   [GitHub][gh] — Main source of information, slides, assignments and more\n*   [Slack][slack] — General chatter and Q\u0026A\n*   [Brightspace][brightspace] — Schedulers, rubrics and grading\n  \n\u003e Read more about privacy, personal health, teamwork or inclusivity in the [`/docs`](/docs) folder.\n\nIf you have questions:\n\n*   Read the manual for the technology in question\n    ([Git](https://git-scm.com/docs),\n    [GitHub](https://guides.github.com),\n    [Node](https://nodejs.org/api/),\n    [npm](https://docs.npmjs.com),\n    [express](http://expressjs.com/en/4x/api.html),\n    [MongoDB](https://docs.mongodb.com))\n*   [Browse examples][examples]\n*   [Search StackOverflow][stackoverflow]\n*   [Use a search engine like DuckDuckGo][duckduckgo]\n*   [Ask questions on Slack][slack]\n*   [Ask a student-assistant on Slack][slack]\n\n\u003e Frequently asked questions can be found in Brightspace under [`Administration \u003e FAQ`][faq].\n\n\u003e This course doesn't have office hours. Teachers have limited time to help you outside of class. Attendance to class is not compulsory. 80% of success in this course is showing up, so show up and come prepared with your questions. Don't hesitate to ask questions or feedback during class.\n\n## Goals\n\n#### Main goals\n\nThe main goals in this course:\n\n*   You can build web apps with Node\n*   You can use packages from npm\n*   You can communicate over http\n*   You can render data server-side with templating\n*   You can store data in a database\n\n#### Sub goals\n\nIn practice you’ll learn to:\n\n* \u003ca name=\"subgoal-1\"\u003e\u003c/a\u003e\n    Understand Node principles ([**week 1**][w1])\n*  \u003ca name=\"subgoal-2\"\u003e\u003c/a\u003e\n    Use packages from npm ([**week 1**][w1])\n* \u003ca name=\"subgoal-3\"\u003e\u003c/a\u003e\n    Use web frameworks like express ([**week 1**][w1])\n* \u003ca name=\"subgoal-4\"\u003e\u003c/a\u003e\n    Communicate over HTTP ([**week 2**][w2])\n* \u003ca name=\"subgoal-5\"\u003e\u003c/a\u003e\n    Render data server-side with templating ([**week 2**][w2])\n* \u003ca name=\"subgoal-6\"\u003e\u003c/a\u003e\n    Upload data and files to servers ([**week 3**][w3])\n* \u003ca name=\"subgoal-7\"\u003e\u003c/a\u003e\n    Request data from clients ([**week 3**][w4])\n* \u003ca name=\"subgoal-8\"\u003e\u003c/a\u003e\n    Store data in a MongoDB database ([**week 4**][w4])\n* \u003ca name=\"subgoal-9\"\u003e\u003c/a\u003e\n    Use localStorage to store data client-side ([**week 4**][w4])\n* \u003ca name=\"subgoal-10\"\u003e\u003c/a\u003e\n    Deploy your application for production ([**week 6**][w6])\n* \u003ca name=\"subgoal-11\"\u003e\u003c/a\u003e\n    Error handling and security enhancements ([**week 7**][w7])\n\nThe below table breaks down the general time needed per week.\n\n| Week | Effort | Topic            | Activities                                             |\n| ---- | -----: | ---------------- | ------------------------------------------------------ |\n| 0    |  NaN   | getting started  | [getting started][gs]                                  |\n| 1    |  9:20h | node \u0026 express   | [lab][w1lab], [lecture][w1lec], [assignments][w1a]     |\n| 2    |  9:20h | query \u0026 template | [lab][w2lab], [lecture][w2lec], [assignments][w2a]     |\n| 3    |  9:20h | http             | [lab][w3lab], [lecture][w3lec], [assignments][w3a]     |\n| 4    |  9:20h | database         | [lab][w4lab], [lecture][w4lec], [assignments][w4a]     |\n| 5    |  NaN   | assessment 1     | [a1 (oral test)][grading]                              |\n| 6    | 13:20h | deploy           | [lab][w6lab],  work on prototype                       |\n| 7    | 13:20h | prototype        | [lab][w6lab],  work on prototype                       |\n| 8    |  NaN   | assessment 2     | [a2 (oral test)][grading]                              |\n\n\u003e Check [`rooster.hva.nl`][class] for exact class dates\n\n\n\u003cdetails\u003e\n    \u003csummary\u003eSchedule Gantt chart\u003c/summary\u003e\n    \u003cimg src=\"assets/schedule.jpg\" alt=\"Block tech schedule overview\"\u003e\n\u003c/details\u003e\n\n## Grade\n\n| Task                                |   Weight |\n| ----------------------------------  | -------: |\n| [Assessment 1][grading] (individual)|      60% |\n| [Assessment 2][grading] (team)      |      40% |\n| **Total**                           | **100%** |\n\n\n```js\nif (!a1 \u0026\u0026 !a2) {\n  grade = 'GR'\n} else if (a1 \u003c 5.5 || a2 \u003c 5.5) {\n  grade = 1\n} else {\n  grade = (a1 * 0.6) + (a2 * 0.4)\n}\n```\n\n## Programme\n\nThis course is given at [Communication and Multimedia Design][bachelor], a\ndesign bachelor focused on interactive digital products and services.  CMD is\npart of the [Faculty of Digital Media and Creative Industries][faculty] at the\n[Amsterdam University of Applied Sciences][university].\n\n## Conduct\n\nThis course has a [Code of Conduct][coc].  Anyone interacting with this repository, organisation, or community is bound by it.\n\nStaff and students of the Amsterdam University of Applied Sciences (Hogeschool\nvan Amsterdam) are additionally bound by the [Regulation Undesirable\nConduct][ruc] ([Regeling Ongewenst Gedrag][rog]).\n\n## License\n\n[MIT][] © [Danny de Vries][dangit], docs and images are [CC-BY-4.0][].\n\n[banner]: https://cmda-bt.github.io/be-course-19-20/assets/banner.svg\n[cmd]: https://www.cmd-amsterdam.nl/english/\n[cmda]: https://github.com/cmda\n[dangit]: https://github.com/dandevri\n[danweb]: https://github.com/dandevri\n[razgit]: https://github.com/razpudding\n[razweb]: https://github.com/razpudding\n[rangit]: https://www.linkedin.com/in/randyhuls/\n[ranweb]: https://www.linkedin.com/in/randyhuls/\n[node]: https://nodejs.org/en/\n[mongodb]: https://www.mongodb.com/\n[http]: https://tools.ietf.org/html/rfc2068\n[minor]: https://cmda.github.io/minor-everything-web/\n[track]: https://github.com/cmda-tt\n[gh]: https://github.com/cmda-be/course-18-19\n[examples]: /examples\n[slack]: https://cmda-tech.slack.com/\n[brightspace]: https://dlo.mijnhva.nl/d2l/home/32096\n[examples]: examples\n[stackoverflow]: https://stackoverflow.com\n[duckduckgo]: https://duckduckgo.com\n[synopsis]: #synopsis\n[grading]: grading.md\n[bachelor]: https://www.cmd-amsterdam.nl/english/\n[faculty]: https://www.amsterdamuas.com/faculty/fdmci/faculty-of-digital-media-and-creative-industries.html\n[university]: https://www.amsterdamuas.com\n[coc]: code-of-conduct.md\n[ruc]: https://www.amsterdamuas.com/practical-matters/algemeen/hva-breed/juridische-zaken/legal-affairs/regulation-undesirable-conduct/regulation-undesirable-conduct.html#anker-3-complaints-authority\n[rog]: https://www.hva.nl/praktisch/algemeen/hva-breed/juridische-zaken/loket-beroep-bezwaar-en-klacht/regeling-ongewenst-gedrag/regeling-ongewenst-gedrag.html?origin=gbS4rg%2FDTZuxQ6lGVF%2BN1A\n[author]: https://dandevri.es\n[mit]: license.md#code\n[cc-by-4.0]: license.md#documentation-and-images\n[faq]: https://dlo.mijnhva.nl/d2l/lms/faq/view_faq.d2l?ou=32096\n[class]: https://rooster.hva.nl/\n[course]: https://studiegids.hva.nl/#/cmd-vt/1/010624\n\n[gs]: getting-started.md\n\n[w1]: week-1.md\n[w2]: week-2.md\n[w3]: week-3.md\n[w4]: week-4.md\n[w5]: week-5.md\n[w6]: week-6.md\n[w7]: week-7.md\n\n[w1lec]: week-1.md#lecture\n[w2lec]: week-2.md#lecture\n[w3lec]: week-3.md#lecture\n[w4lec]: week-4.md#lecture\n[w5lec]: week-5.md#lecture\n[w6lec]: week-6.md#lecture\n\n[w1lab]: week-1.md#lab\n[w2lab]: week-2.md#lab\n[w3lab]: week-3.md#lab\n[w4lab]: week-4.md#lab\n[w5lab]: week-5.md#lab\n[w6lab]: week-6.md#lab\n\n[w1a]: week-1.md#assignments\n[w2a]: week-2.md#assignments\n[w3a]: week-3.md#assignments\n[w4a]: week-4.md#assignments\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmda-bt%2Fbe-course-19-20","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmda-bt%2Fbe-course-19-20","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmda-bt%2Fbe-course-19-20/lists"}