{"id":21214622,"url":"https://github.com/cr2007/f28wp-lab3","last_synced_at":"2026-04-04T22:32:37.528Z","repository":{"id":113696662,"uuid":"430831028","full_name":"cr2007/F28WP-Lab3","owner":"cr2007","description":"Marked Lab 3 in Web Programming (F28WP) Course","archived":false,"fork":false,"pushed_at":"2022-05-14T15:21:21.000Z","size":1790,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-15T00:07:31.375Z","etag":null,"topics":["express","f28wp","mysql","nodejs","nodemon","npm","web-programming","web-programming-hw"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cr2007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2021-11-22T19:00:37.000Z","updated_at":"2021-12-06T07:15:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbdcd13d-acfe-4126-ad07-e6ba71e73f03","html_url":"https://github.com/cr2007/F28WP-Lab3","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cr2007/F28WP-Lab3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr2007%2FF28WP-Lab3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr2007%2FF28WP-Lab3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr2007%2FF28WP-Lab3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr2007%2FF28WP-Lab3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cr2007","download_url":"https://codeload.github.com/cr2007/F28WP-Lab3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cr2007%2FF28WP-Lab3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31416770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"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":["express","f28wp","mysql","nodejs","nodemon","npm","web-programming","web-programming-hw"],"created_at":"2024-11-20T21:28:42.430Z","updated_at":"2026-04-04T22:32:37.507Z","avatar_url":"https://github.com/cr2007.png","language":"JavaScript","readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eF28WP Lab 3\u003c/h1\u003e\n\u003c/div\u003e\n\n## Course: Web Programming ([F28WP](https://www.hw.ac.uk/documents/pams/202122/F28WP_202122.pdf))\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://nodejs.org/en/\"\u003e\n        \u003cimg alt=\"Node.js\" title=\"Allows to run JS files locally\" src=\"https://img.shields.io/badge/Node.js-informational?style=flat-sqaure\u0026logo=node.js\u0026logoColor=white\u0026color=339933\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com\"\u003e\n        \u003cimg alt=\"npm\" title=\"Node Package Manager\" src=\"https://img.shields.io/badge/npm-informational?style=flat-sqaure\u0026logo=npm\u0026logoColor=white\u0026color=CB3837\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.mysql.com/\"\u003e\n        \u003cimg alt=\"MySQL\" title=\"Database\" src=\"https://img.shields.io/badge/MySQL-informational?style=flat-sqaure\u0026logo=mysql\u0026logoColor=white\u0026color=4479A1\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/nodemon\"\u003e\n        \u003cimg alt=\"Nodemon\" title=\"Nodemon\" src=\"https://img.shields.io/badge/nodemon-informational?style=flat-sqaure\u0026logo=nodemon\u0026logoColor=white\u0026color=76D04B\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://www.npmjs.com/package/express\"\u003e\n        \u003cimg alt=\"express\" title=\"express\" src=\"https://img.shields.io/badge/express-informational?style=flat-sqaure\u0026logo=express\u0026logoColor=white\u0026color=000000\"\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n### Lab 3: Node.js and MySQL\n\n---\n\n### Index\n\n- [Running the File](#running-the-file)\n- [File Structure](#file-structure)\n\nThis lab uses [Node.js](https://nodejs.org/en/) and  to run server-side programming.\u003cbr\u003e\nWe were tasked with developing basic functions for an online shopping application.\n\n---\n\n### Running the File\nMake sure you have [Node.js](https://nodejs.org/en/) installed and have the packages installed on your device.\n\nTo run the server,\n- Download the [Source Code](https://github.com/cr2007/F28WP-Lab3/archive/refs/heads/master.zip)\n- Open the Terminal\n- Type `npm run dev`\n\nThe server will then run on [http://localhost:3000](http://localhost:3000).\n\n\u003cdetails\u003e\u003csummary\u003ePackages used for this Lab\u003c/summary\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/express\"\u003eexpress\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/nodemon\"\u003enodemon\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/ejs\"\u003eejs\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/bcryptjs\"\u003ebcryptjs\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"https://www.npmjs.com/package/express-session\"\u003eexpress-session\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdiv align=\"right\"\u003e\n    \u003ca href=\"https://github.com/cr2007/F28WP-Lab3#Index\"\u003eBack to Top ↥\u003c/a\u003e\n\u003c/div\u003e\n\n### File Structure\n```\n├── README.md\n├── controllers\n│   ├── clientController.js\n│   └── productController.js\n├── db\n│   ├── clientDAO.js\n│   ├── dbQuery.js\n│   └── productDAO.js\n├── models\n│   └── entities.js\n├── node_modules\n│   └── \u003call node packages\u003e\n├── public\n│   ├── hwu.css\n│   ├── hwu.png\n│   └── index.html\n├── routes\n│   └── apis.js\n├── services\n│   ├── clientServices.js\n│   └── productServices.js\n├── views\n│   ├── article.ejs\n│   ├── catalogue.ejs\n│   ├── contacts.ejs\n│   ├── footer.ejs\n│   ├── header.ejs\n│   ├── index.ejs\n│   ├── login.ejs\n│   ├── loginFailed.ejs\n│   ├── postLogin.ejs\n│   ├── postRegister.ejs\n│   └── register.ejs\n├── app.js\n├── package-lock.json\n├── package.json\n└── sales.sql\n```\n\u003cdiv align=\"right\"\u003e\n    \u003ca href=\"https://github.com/cr2007/F28WP-Lab3#Index\"\u003eBack to Top ↥\u003c/a\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr2007%2Ff28wp-lab3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcr2007%2Ff28wp-lab3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcr2007%2Ff28wp-lab3/lists"}