{"ref":"artifact:sap-samples-cap-hana-exercises-codejam","page":"/artifacts/sap-samples-cap-hana-exercises-codejam","json":"/artifacts/sap-samples-cap-hana-exercises-codejam.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-samples-cap-hana-exercises-codejam","name":"SAP-samples/cap-hana-exercises-codejam","artifact_type":"sample","ecosystem":"cap","flavors":[{"key":"node","source":{"url":"https://github.com/SAP-samples/cap-hana-exercises-codejam","title":"SAP-samples/cap-hana-exercises-codejam — README","checked":"2026-09-13","quote":"SAP Cloud Application Programming Model — Node.js"}}],"use_as":"starting-point","domain":"data-and-persistence","origin_ring":"sap-official","description":{"one_line":"An eight-exercise CodeJam that builds a full-stack CAP application on [SAP HANA Cloud](artifact:btp-hana-cloud), from HDI containers to calculation views and stored procedures.","short":"CodeJam building a full-stack CAP app on SAP HANA Cloud","what_it_solves":"Eight exercises take a CAP Node.js project from a fresh [SAP HANA Cloud](artifact:btp-hana-cloud) HDI container through a CDS data model and a generated Fiori Elements list-report UI, add XSUAA-based authentication and role-based access, then expose two HANA-native artifacts through CAP: a calculation view as a read-only entity and a stored procedure as a service function. A bonus exercise packages the result as an MTA and deploys it to SAP BTP Cloud Foundry. Completing all eight at an in-person event earns a Credly badge."},"links":{"repo":"https://github.com/SAP-samples/cap-hana-exercises-codejam","homepage":"https://sap-samples.github.io/cap-hana-exercises-codejam/"},"type_properties":{"form":{"value":"workshop","sources":[{"url":"https://github.com/SAP-samples/cap-hana-exercises-codejam","title":"SAP-samples/cap-hana-exercises-codejam — README","checked":"2026-10-18","quote":"In this CodeJam you will build a full-stack application using SAP Cloud Application Programming Model (CAP) and SAP HANA Cloud"}]}},"identity":{"license":"Apache-2.0"},"source_available":true,"demonstrates":["capability:database-connectors"],"maintainers":["actor:sap-samples"],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"},"contributors":["actor:ajinkyapatil8190","actor:btbernard","actor:dj-adams","actor:jung-thomas","actor:kevinriedelsheimer","actor:nicoschoenteich"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"7 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, 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":"good","evidence":"Deploy Documentation to GitHub Pages green, 2026-06-26"}],"practice":[{"label":"Tests","tier":"good","evidence":"11 test files"},{"label":"Docs","tier":"good","evidence":"docs/ with 31 pages, README 9 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":66,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":66,"forks":23,"open_issues":8,"archived":false,"pushed_at":"2026-09-10","license_spdx":"Apache-2.0","org_owned":true,"default_branch":"main","created_at":"2022-03-28T17:26:02Z","open_prs":8,"tree_truncated":false,"test_files":11,"workflows":1,"other_ci":false,"readme_bytes":8823,"docs_files":31,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2022-03-28","last_commit":"2026-06-26","commits":185,"contributors":7,"ci_status":"success","ci_run_at":"2026-06-26","ci_workflow":"Deploy Documentation to GitHub Pages","ci_event":"push","readme_path":"README.md","readme_sha":"9590bc39bbeda26c1e5ffa2c65f6a4c433afa7a7","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:btbernard","name":"Brian Bernard","json":"/actors/btbernard.json"},{"ref":"actor:dj-adams","name":"DJ Adams","json":"/actors/dj-adams.json"},{"ref":"actor:kevinriedelsheimer","name":"Kevin Riedelsheimer","json":"/actors/kevinriedelsheimer.json"},{"ref":"actor:nicoschoenteich","name":"Nico Schoenteich","json":"/actors/nicoschoenteich.json"},{"ref":"actor:jung-thomas","name":"Thomas Jung","json":"/actors/jung-thomas.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}