{"id":13611452,"url":"https://github.com/scavazzini/clevent","last_synced_at":"2025-04-13T04:34:33.108Z","repository":{"id":48273334,"uuid":"298602216","full_name":"scavazzini/clevent","owner":"scavazzini","description":"Clevent is an Android application developed for a Research that uses NFC technology to create a prepaid system using NDEF tags","archived":false,"fork":false,"pushed_at":"2024-08-10T03:18:50.000Z","size":1902,"stargazers_count":12,"open_issues_count":1,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-08-10T04:27:32.602Z","etag":null,"topics":["android","android-application","jetpack-compose","ndef","nfc","payment","prepaid-card","research-projects"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/scavazzini.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":"2020-09-25T14:52:17.000Z","updated_at":"2024-08-10T04:27:38.477Z","dependencies_parsed_at":"2024-01-25T16:31:17.843Z","dependency_job_id":"a846249e-584a-4399-8eb1-1d22d26b27e2","html_url":"https://github.com/scavazzini/clevent","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/scavazzini%2Fclevent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scavazzini%2Fclevent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scavazzini%2Fclevent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scavazzini%2Fclevent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scavazzini","download_url":"https://codeload.github.com/scavazzini/clevent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223568224,"owners_count":17166622,"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":["android","android-application","jetpack-compose","ndef","nfc","payment","prepaid-card","research-projects"],"created_at":"2024-08-01T19:01:55.513Z","updated_at":"2024-11-07T18:30:30.814Z","avatar_url":"https://github.com/scavazzini.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cimg src=\"/app/src/main/ic_launcher-playstore.png\" align=\"right\" height=\"60\"\u003e\n\n# Clevent\n\nClevent is an Android application developed for a Undergraduate Research that uses NFC technology to create a prepaid system that stores credits in NFC tags in NDEF format.\nThis project was presented at the 28th edition of SIICUSP (University of São Paulo's International Symposium of Undergraduate Research) in November 2020.\n\nThis application encrypts and stores the balance and a history of consumed items using the NDEF format allowing operations such as balance recharging, issuing receipts, and purchasing products entirely offline, without needing a constant connection to a remote server.\n\n\n## Screenshots\n\n\u003cimg src=\"docs/images/screenshots.png\"\u003e\n\n## Application technical stack\n\nThe application was developed using modern Android development techniques, including:\n\n- Jetpack Compose;\n- Multi-module architecture;\n- Dagger Hilt;\n- Retrofit;\n- Room;\n- WorkManager;\n\n## Data serialization\n\nNFC tags have a very limited space to store data, so it's important to serialize the data efficiently to optimize space usage.\n\nThe serialization generates a byte array that can be divided into three segments:\n\n- **Segment 1 (4 bytes):** Balance as an integer value.\n- **Segment 2 (3 bytes per item):** List of items. Each item uses 3 bytes, 2 for ID and 1 for quantity.\n- **Segment 3 (4 bytes):** CRC as an integer value.\n\nThe byte array resulting from serialization is then encrypted and stored on the NFC tag in NDEF format.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"docs/images/serialized_data.png\"\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscavazzini%2Fclevent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscavazzini%2Fclevent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscavazzini%2Fclevent/lists"}