{"id":22747251,"url":"https://github.com/one-com/poco-model","last_synced_at":"2025-10-08T05:13:11.312Z","repository":{"id":66144402,"uuid":"1771441","full_name":"One-com/poco-model","owner":"One-com","description":"Ext JS 4 Portable Contacts data model","archived":false,"fork":false,"pushed_at":"2011-12-16T09:49:02.000Z","size":121,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-03-28T00:44:59.653Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/One-com.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2011-05-19T13:43:28.000Z","updated_at":"2013-12-13T22:45:04.000Z","dependencies_parsed_at":"2023-02-19T23:10:15.824Z","dependency_job_id":null,"html_url":"https://github.com/One-com/poco-model","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/One-com%2Fpoco-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/One-com%2Fpoco-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/One-com%2Fpoco-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/One-com%2Fpoco-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/One-com","download_url":"https://codeload.github.com/One-com/poco-model/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248872201,"owners_count":21175368,"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":[],"created_at":"2024-12-11T03:13:55.637Z","updated_at":"2025-10-08T05:13:06.249Z","avatar_url":"https://github.com/One-com.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ext JS 4 Portable Contacts (PoCo) model\n=======================================\nThis project is an example implementation of a PoCo model in Ext JS 4's\ndata model. It uses Ext JS's Data package to set up associations for \nPoCo's singular and multiple fields.\n\nSome extra validation types are mixed into the ``Ext.data.validations``\nobject, to be able to validate PoCo fields like email, url etc.\n\nPortable Contacts: `http://portablecontacts.net/draft-spec.html \u003chttp://portablecontacts.net/draft-spec.html\u003e`_\n\nPatched Ext JS 4\n================\nThis code example runs with a patched version on Ext JS 4 found here:\n`Ext JS 4 with denormalized data package patch \u003chttps://github.com/One-com/Ext-JS-4\u003e`_\n\n\nWhy patch the data package?\n---------------------------\nThe complete thread about the reasoning can be found here:\n`Sencha Platform denormalized Data patch \u003chttp://www.sencha.com/forum/showthread.php?127547-Sencha-Platform-denormalized-Data-patch\u003e`_ \n\n\nPremise:\n~~~~~~~~\nDenormalized databases, or document databases, have gained a lot of momentum\nin the last years. There are a lot of use cases where denormalized data has\nbeen shown to be a more effective way of storing and scaling large datasets.\nThus it is an interesting use case for the Sencha Platform's Data package to\nimplement some way of working with denormalized datasets.\n\nThe current Data package currently handles eager loading of related data\nthrough a nested data structure quite well. The model still assumes complete\nnormalization on the backend though. Here are some of the things that would\nbe nice to have when working with denormalized data:\n\n* A way to define when an association should be treated as denormalized\n  I will refer to these relations as 'inner'.\n* Optional properties\n  Most document databases allow for schemaless datasets, which don't require all\n  properties to be set. For example the PoCo specification includes a lot of\n  optional properties. The Sencha Model should be able to represent this by not\n  serializing empty properties when saving data.\n* Optional validation\n  If a property can be optional, then the model itself should be able to validate\n  even when the optional property is not set.\n* Deep validation\n  A Model that has inner relations should do a deep validation of all its inner\n  relations, since upon serialization these are conceptually a part of the Model\n  itself.\n* Deep serialization\n  When a Model is serialized, all its inner relations should be serialized as\n  well for remote storage.\n\nAnd specific for ExtJS and Sencha Touch:\n\n* A Record that is marked as dirty should mark its parent relation as dirty\n  as well if it is an inner relation.\n* Saving a modified record should delegate to the records parent record if it\n  is an inner relation.\n\n\nUsage\n=====\nRun ``./server/static.js`` or point your webserver at your git checkout\nand visit the index.html file to see a few very basic tests of the model\nin action.\nThe tests primary goal are for patch development, and are not in any way \nexhausitve.\n\n\nLicense\n=======\nThis work is licensed under a standard 3-clause BSD license -- see the\n``LICENSE``-file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-com%2Fpoco-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fone-com%2Fpoco-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-com%2Fpoco-model/lists"}