{"id":17605032,"url":"https://github.com/hrvolapeter/zetten","last_synced_at":"2025-07-05T09:05:50.968Z","repository":{"id":114846740,"uuid":"248954736","full_name":"hrvolapeter/zetten","owner":"hrvolapeter","description":"Note taking app - Firebase + SwiftUI","archived":false,"fork":false,"pushed_at":"2020-03-31T07:40:38.000Z","size":811,"stargazers_count":36,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-30T10:32:05.009Z","etag":null,"topics":["firebase","swiftui","tutorials"],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/hrvolapeter.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-03-21T10:39:55.000Z","updated_at":"2025-02-05T02:24:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"1608ce5f-2ed7-42ca-b4b4-bd126e6095e4","html_url":"https://github.com/hrvolapeter/zetten","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hrvolapeter/zetten","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvolapeter%2Fzetten","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvolapeter%2Fzetten/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvolapeter%2Fzetten/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvolapeter%2Fzetten/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hrvolapeter","download_url":"https://codeload.github.com/hrvolapeter/zetten/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hrvolapeter%2Fzetten/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263715327,"owners_count":23500242,"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":["firebase","swiftui","tutorials"],"created_at":"2024-10-22T14:43:29.154Z","updated_at":"2025-07-05T09:05:50.952Z","avatar_url":"https://github.com/hrvolapeter.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zetten\n\nZetten is a note taking app based on Zettelkasten Method where notes form tree structure where ideas can\nbe indefinetly explored to more detailed notes.\n\nZetten is build on top of Google Firebase engine and SwitfUI introduced in 2019. Firebase is used for securely storing and\nsynchronizing notes acros multiple devices with soft real-time guarantess.\n\nSwiftUI is a novel approach to writing composable native application using Swift and targeting Apple's Catalyst platform where\nyou get support for both Mac OS and iOS devices out of the box. SwiftUI choses similar approach to view composition as React making developing natively looking views significantly simpler\n\n\u003cimg src=\"https://github.com/hrvolapeter/zetten/blob/master/images/mac_tree.png\" \nalt=\"Mac OS tree\" width=\"500\"/\u003e\n\u003cimg src=\"https://github.com/hrvolapeter/zetten/blob/master/images/simulator_list.png\" \nalt=\"iOS list\" width=\"160\"/\u003e\n\n## Compilation\n1. Create [Firebase account](https://firebase.google.com), create new project and download `GoogleService-Info.plist` file into the root of Zetten\n2. In your Firebase account create a new Cloud Firestore database with the following rules:\n    ```\n    rules_version = '2';\n    service cloud.firestore {\n      match /databases/{database}/documents {\n        match /notes/{noteId} {\n          function isSignedIn() {\n            return request.auth.uid != null;\n          }\n          allow read, update: if isSignedIn() \u0026\u0026 request.auth.uid == resource.data.userId;\n          allow create: if isSignedIn();    }\n      }\n    }\n    ```\n3. Create Note collection in Firestore with id `notes`. When creating colleciton you need to provide one document to infer the format.\n   The current format of notes is:\n   ```\n    content: \"\"\n    createdTime: March 19, 2020 at 11:22:50 PM UTC+1\n    id: \"6D12EB88-3884-4944-B1F9-DF2B6A2544D1\"\n    parentId: \"71ED0AAD-7937-4311-B4A7-52D7E4E37474\"\n    tags: [\"tag\"]\n    title: \"Bug 2\"\n    userId: \"nv7IZa2YMha1vdtaubBXFa4s54v2\"\n   ```\n4. Compile Zetten in Xcode\n5. After the first run you will see errors from Firestore in the application console with links. Copy the link to your browser\n   and follow the steps to creater required incides for the database\n6. Now you are good to run 🏃‍♂️\n\n### What does Zetten mean?\nEveryone referring to Zettelkasten method seems to be using the German name, which in translation simply means Note box. When I was looking for a name for the app at first I wanted to simply call it Zettelkasten, however, Zettelkasten is a fairly long name and doesn't look good on visual materials. After playing with a word for a while I've come up with a shorter version - Zetten from simply omitting the middle part of the word; Zett(elkast)en. Some research showed Zetten means typesetting in Dutch and is also a Dutch city.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrvolapeter%2Fzetten","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhrvolapeter%2Fzetten","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhrvolapeter%2Fzetten/lists"}