{"ref":"artifact:sap-samples-fiori-elements-fpm-exercises-codejam","page":"/artifacts/sap-samples-fiori-elements-fpm-exercises-codejam","json":"/artifacts/sap-samples-fiori-elements-fpm-exercises-codejam.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-fiori-elements-fpm-exercises-codejam","name":"SAP-samples/fiori-elements-fpm-exercises-codejam","artifact_type":"sample","ecosystem":"cap","flavors":[{"key":"node","source":{"url":"https://github.com/SAP-samples/fiori-elements-fpm-exercises-codejam","title":"SAP-samples/fiori-elements-fpm-exercises-codejam — README","checked":"2026-09-13","quote":"The OData backend service for this application was built using the Node.js flavour of SAP Cloud Application Programming Model (SAP CAP)."}}],"use_as":"starting-point","domain":"ui-and-frontend-bridge","origin_ring":"sap-official","description":{"one_line":"A CodeJam walkthrough that builds a bookshop app on the SAP Fiori elements flexible programming model, chapter by chapter, over a CAP Node.js OData backend.","short":"CodeJam building a bookshop app on the flexible programming model","what_it_solves":"The flexible programming model sits between a plain floorplan and freestyle SAPUI5, and this material teaches it through ten chapters that build one bookshop application: running the CAP service, generating the Fiori elements app, then adding a custom section through an extension point, a JavaScript handler, a controller extension, a building block, and formatting, value help and a header section through CDS annotations. The backend is a modified version of the well-known bookshop example. Chapters build on each other and are meant to be worked through in order during a CodeJam session, though the written explanations let anyone follow along afterwards."},"links":{"repo":"https://github.com/SAP-samples/fiori-elements-fpm-exercises-codejam"},"type_properties":{"form":{"value":"workshop","sources":[{"url":"https://github.com/SAP-samples/fiori-elements-fpm-exercises-codejam","title":"SAP-samples/fiori-elements-fpm-exercises-codejam — README","checked":"2026-10-18","quote":"This repository contains material for SAP CodeJam events on the SAP Fiori elements flexible programming model."}]}},"identity":{"license":"Apache-2.0"},"demonstrates":["capability:fiori-annotations"],"maintainers":["actor:sap-samples"],"source_available":true,"provenance":{"discovered_via":[{"source":"source:github-orgs"}],"first_seen":"2026-09-13"},"drafted_with_ai":true,"contributors":["actor:ajinkyapatil8190","actor:amarubhe","actor:dj-adams","actor:dusansacha","actor:nicoschoenteich","actor:profreak","actor:the-docta"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"9 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-06, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"no release dates"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"8 test files"},{"label":"Docs","tier":"good","evidence":"README 5 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":37,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":37,"forks":14,"open_issues":1,"archived":false,"pushed_at":"2026-06-03","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2024-04-15T12:36:09Z","open_prs":0,"tree_truncated":false,"test_files":8,"workflows":0,"other_ci":false,"readme_bytes":5411,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2024-04-15","last_commit":"2026-06-03","commits":63,"contributors":9,"readme_path":"README.md","readme_sha":"ff94fe2905adf3bf100a8e64c149605369c93aa3","repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap-samples","name":"SAP Samples","json":"/actors/sap-samples.json"}],"contributors":[{"ref":"actor:ajinkyapatil8190","name":"Ajinkya Patil","json":"/actors/ajinkyapatil8190.json"},{"ref":"actor:amarubhe","name":"amarubhe","json":"/actors/amarubhe.json"},{"ref":"actor:dj-adams","name":"DJ Adams","json":"/actors/dj-adams.json"},{"ref":"actor:dusansacha","name":"Dusan Sacha","json":"/actors/dusansacha.json"},{"ref":"actor:nicoschoenteich","name":"Nico Schoenteich","json":"/actors/nicoschoenteich.json"},{"ref":"actor:profreak","name":"ProFreak","json":"/actors/profreak.json"},{"ref":"actor:the-docta","name":"Sergei Haller","json":"/actors/the-docta.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}