{"id":22502542,"url":"https://github.com/rberenguel/cal","last_synced_at":"2025-03-27T22:46:01.841Z","repository":{"id":250951536,"uuid":"835954899","full_name":"rberenguel/cal","owner":"rberenguel","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-31T19:49:20.000Z","size":570,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"gh-pages","last_synced_at":"2025-02-02T01:11:19.093Z","etag":null,"topics":["nfc","waveshare-eink"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rberenguel.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-07-30T21:31:57.000Z","updated_at":"2024-07-31T19:49:22.000Z","dependencies_parsed_at":"2025-02-02T01:10:23.176Z","dependency_job_id":"364109f8-8d14-45f9-9475-910cb477f958","html_url":"https://github.com/rberenguel/cal","commit_stats":null,"previous_names":["rberenguel/cal"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rberenguel%2Fcal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rberenguel%2Fcal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rberenguel%2Fcal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rberenguel%2Fcal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rberenguel","download_url":"https://codeload.github.com/rberenguel/cal/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245937973,"owners_count":20696989,"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":["nfc","waveshare-eink"],"created_at":"2024-12-06T23:19:15.207Z","updated_at":"2025-03-27T22:46:01.820Z","avatar_url":"https://github.com/rberenguel.png","language":"JavaScript","readme":"# cal\n\n\u003cimg src=\"./images/device.jpg\" width=\"400\"\u003e\u003c/img\u003e\n\nQuick PWA to create an image of a calendar to send to a WaveShare passive\nNFC ePaper screen (4.2 inches, 400x300 pixels). To send it to the screen you need to use one of WaveShare's apps (for iOS or Android).\n\nThis is browser only, requires no backend. You can add it as an \"app\" to your phone by adding it to your home screen.\n\nUses [p5js](https://p5js.org) for rendering and [idb-keyval](https://github.com/jakearchibald/idb-keyval) to store locally the current one (and be able to add and remove things easily).\n\n## How it looks\n\n### The UI of the web app\n\n\u003cimg src=\"./images/screenshot.png\" width=\"400\"\u003e\u003c/img\u003e\n\nThe UI is minimal and certainly could use some more polish, but should be functional.\n\n- The first selector (`28` to `31`) is for the month length.\n- The second selector (`1` to `7`) is for to choose the first weekday of the month (Monday to Sunday).\n- Then, a list of month days. 0 is for the last day of the previous month, -1 for the second to last, etc. Numbers higher than the month length are valid, and will show in the available space (within reason, i.e. for a month with up to 5 weeks).\n- To have more than one event per day, just add a second one in a different line. Up to 4 should fit with the current font size.\n- When typing some text in the last row, a new row will be added.\n- Rows can be deleted by pressing the cross. \n- TODO a _delete all_ button could come handy\n- Pressing the calendar image will prompt a download, it will look like the one below.\n- Changing the length of the month, first weekday of the month or an event text will save the current calendar to IndexedDB in your browser's LocalStorage, so you can keep adding/removing/editing events.\n\n### The resulting calendar\n\n\u003cimg src=\"./images/calendar.jpg\" width=\"400\"\u003e\u003c/img\u003e\n\nThere are some hardcoded things you may want to tweak:\n- Font size for weekdays\n- Font size for events\n- The font itself (Monoid)\n\nI don't plan on adding customisation for these, if I wanted to change the font I'll just modify it directly. But if you want your own just fork this and tweak whatever you want.\n\n### How it looks on the device\n\n\u003cimg src=\"./images/device.jpg\" width=\"400\"\u003e\u003c/img\u003e\n\nThis is the 4.2 B/W WaveShare passive ePaper, writable via NFC. Even though the generated image is exactly the pixel size of the device, you will need to tweak a bit the brightness/contrast in the WaveShare app.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frberenguel%2Fcal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frberenguel%2Fcal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frberenguel%2Fcal/lists"}