{"id":21826815,"url":"https://github.com/raffaelepiazzolla/kettlebellwiki","last_synced_at":"2026-04-11T05:05:00.135Z","repository":{"id":264689093,"uuid":"894018716","full_name":"RaffaelePiazzolla/kettlebellwiki","owner":"RaffaelePiazzolla","description":"A web platform for fitness workout tutorials focused on kettlebells.","archived":false,"fork":false,"pushed_at":"2024-11-25T18:56:40.000Z","size":151,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-26T08:26:26.895Z","etag":null,"topics":["css","ejs","ejs-express","express","fitness-website","heroku","html","javascript","mysql","nodejs","vimeo","web"],"latest_commit_sha":null,"homepage":"","language":"EJS","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/RaffaelePiazzolla.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2024-11-25T15:55:32.000Z","updated_at":"2024-11-25T19:37:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"7e38afa2-48bd-4fda-8929-5444afc3c435","html_url":"https://github.com/RaffaelePiazzolla/kettlebellwiki","commit_stats":null,"previous_names":["raffaelepiazzolla/kettlebellwiki"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaffaelePiazzolla%2Fkettlebellwiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaffaelePiazzolla%2Fkettlebellwiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaffaelePiazzolla%2Fkettlebellwiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RaffaelePiazzolla%2Fkettlebellwiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RaffaelePiazzolla","download_url":"https://codeload.github.com/RaffaelePiazzolla/kettlebellwiki/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244795519,"owners_count":20511521,"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":["css","ejs","ejs-express","express","fitness-website","heroku","html","javascript","mysql","nodejs","vimeo","web"],"created_at":"2024-11-27T18:10:57.630Z","updated_at":"2025-12-30T19:29:41.727Z","avatar_url":"https://github.com/RaffaelePiazzolla.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kettlebell Wiki\n\n![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white) ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white) ![Express.js](https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white) ![MySQL](https://img.shields.io/badge/MySQL-4479A1?style=for-the-badge\u0026logo=mysql\u0026logoColor=white) ![Vimeo](https://img.shields.io/badge/Vimeo-1AB7EA?style=for-the-badge\u0026logo=vimeo\u0026logoColor=white) ![Heroku](https://img.shields.io/badge/Heroku-430098?style=for-the-badge\u0026logo=heroku\u0026logoColor=white) ![Namecheap](https://img.shields.io/badge/Namecheap-DE3723?style=for-the-badge\u0026logo=namecheap\u0026logoColor=white) ![EJS](https://img.shields.io/badge/EJS-8BC0D0?style=for-the-badge\u0026logo=ejs\u0026logoColor=white) ![HTML](https://img.shields.io/badge/HTML-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white) ![CSS](https://img.shields.io/badge/CSS-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n\n\u003e [!NOTE]\n\u003e Kettlebell Wiki is a project initiated in 2019 and no longer available due to discontinuation in 2022. The current commit is the first public upload of the codebase after confidentiality requirements expired.\n\nKettlebell Wiki was a specialized subscription-based fitness platform exclusively dedicated to kettlebell workouts. The platform was commissioned to me in 2019 by a personal trainer. Over the months, I wrote the entire codebase from scratch, designing every end of the project: server code architecture, database modeling, UI/UX design, and hosting.\n\n## Features\nKettlebell Wiki served as a comprehensive video library, offering high-quality tutorials and instructional videos for fitness enthusiasts, with a special focus on kettlebells. The main features included:\n\n* __Comprehensive Video Library__: a curated collection of exclusive kettlebell workout tutorials and exercises created by a professional trainer for every degree of expertise.\n* __Personalized Workouts__: user-specific workout plans were automatically generated for each user based on their activity.\n* __Exclusive Content__: additional to workout tutorials, the platform offered other exclusive fitness-related content, such as ebooks.\n* __Detailed User Control__: user activity was available to each consumer, ensuring a detailed insight of the workouts over time.\n\n## Architectural overview\n\n* __Node.js__ application written in __TypeScript__.\n* __Express.js__ library for handling web routes and REST API endpoints.\n* __EJS__ templating engine for web pages rendering.\n* __MariaDB__ (MySQL) relational database.\n* __Heroku__ hosting with SSL certificate.\n* Independent DNS configuration with __Namecheap__.\n* IP tracking with __Google Sheets__ integration.\n* __Vimeo API__ integration for _private_ video hosting and visualization. \n* Automatic __emailing service__ for user-specific communications.\n\n## License\n\nThis project is proprietary and was developed exclusively for the commissioning client; I publish it here under the [CC BY-NC-ND 4.0 License](https://creativecommons.org/licenses/by-nc-nd/4.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraffaelepiazzolla%2Fkettlebellwiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraffaelepiazzolla%2Fkettlebellwiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraffaelepiazzolla%2Fkettlebellwiki/lists"}