{"id":50597490,"url":"https://github.com/franzxml/daily-quest","last_synced_at":"2026-06-05T15:30:45.900Z","repository":{"id":321980834,"uuid":"1068836014","full_name":"franzxml/daily-quest","owner":"franzxml","description":"Repositori Daily Quest, aplikasi yang dapat membantu Anda dalam tracking kegiatan harian.","archived":false,"fork":false,"pushed_at":"2026-05-09T15:10:18.000Z","size":355,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-09T17:28:02.025Z","etag":null,"topics":["daily","mantap","tracking"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/franzxml.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T01:35:42.000Z","updated_at":"2026-05-09T15:10:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/franzxml/daily-quest","commit_stats":null,"previous_names":["franzxml/pemrograman_berorientasi_objek","franzxml/daily-quest"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/franzxml/daily-quest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franzxml%2Fdaily-quest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franzxml%2Fdaily-quest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franzxml%2Fdaily-quest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franzxml%2Fdaily-quest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/franzxml","download_url":"https://codeload.github.com/franzxml/daily-quest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/franzxml%2Fdaily-quest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33949038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["daily","mantap","tracking"],"created_at":"2026-06-05T15:30:44.816Z","updated_at":"2026-06-05T15:30:45.887Z","avatar_url":"https://github.com/franzxml.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Daily Quest\n\n## Deskripsi\nDaily Quest adalah aplikasi web untuk mengelola aktivitas harian dengan konsep *daily quest*. Pengguna dapat login, menambahkan task, menandai task sebagai selesai, dan melihat histori penyelesaian berdasarkan tanggal.\n\nAplikasi mendukung backend Supabase untuk autentikasi dan penyimpanan data. Jika Supabase belum dikonfigurasi, aplikasi tetap bisa dicoba secara lokal menggunakan `localStorage`.\n\n## Teknologi\n- Next.js untuk aplikasi web dan Route Handlers\n- React untuk antarmuka pengguna\n- TypeScript untuk penulisan kode yang lebih aman\n- Tailwind CSS untuk styling\n- Supabase untuk autentikasi dan database\n- Zod untuk validasi input client dan server\n- `localStorage` untuk mode lokal tanpa backend\n\n## Struktur Folder\n```text\nroot/\n|-- app/\n|   |-- api/\n|   |   |-- auth/\n|   |   |-- history/\n|   |   |-- me/\n|   |   `-- tasks/\n|   |-- globals.css\n|   |-- layout.tsx\n|   `-- page.tsx\n|-- components/\n|   |-- daily-quest/\n|   |   |-- dashboard-view.tsx\n|   |   |-- history-view.tsx\n|   |   |-- login-screen.tsx\n|   |   |-- task-form.tsx\n|   |   |-- task-row.tsx\n|   |   |-- ui.tsx\n|   |   `-- view-switch.tsx\n|   `-- daily-quest-app.tsx\n|-- docs/\n|   `-- product-requirements-document.pdf\n|-- lib/\n|   |-- server/\n|   |-- daily-quest-api.ts\n|   |-- daily-quest-schemas.ts\n|   |-- daily-quest-state.ts\n|   |-- daily-quest-store.ts\n|   |-- dates.ts\n|   |-- error-message.ts\n|   |-- supabase.ts\n|   |-- user-profile.ts\n|   `-- utils.ts\n|-- supabase/\n|   `-- schema.sql\n|-- types/\n|   `-- daily-quest.ts\n|-- .env.example\n|-- .gitignore\n|-- package.json\n|-- package-lock.json\n`-- README.md\n```\n\n## Cara Menjalankan\n1. Unduh atau *clone* proyek\n2. Buka folder proyek\n3. Instal dependensi:\n   ```bash\n   npm install\n   ```\n4. Jalankan server pengembangan:\n   ```bash\n   npm run dev\n   ```\n5. Buka aplikasi di browser melalui `http://localhost:3000`\n\nLogin lokal menerima email valid dan password minimal 6 karakter. Data task, status harian, sesi, dan histori disimpan di `localStorage` saat Supabase belum dikonfigurasi.\n\n## Script\n```bash\nnpm run dev        # menjalankan development server\nnpm run build      # membuat production build\nnpm run start      # menjalankan production server\nnpm run lint       # menjalankan ESLint\nnpm run typecheck  # menjalankan TypeScript type check\n```\n\n## Supabase\nVariabel environment tersedia di `.env.example`:\n\n```bash\nNEXT_PUBLIC_SUPABASE_URL=\nNEXT_PUBLIC_SUPABASE_ANON_KEY=\n```\n\nBuat file `.env.local` untuk nilai environment lokal. Skema database tersedia di `supabase/schema.sql` dan perlu diterapkan di SQL Editor Supabase sebelum backend online digunakan. Supabase Auth juga perlu memiliki akun email/password untuk login.\n\n## Keamanan\nFile `.gitignore` sudah mengabaikan file sensitif dan artefak lokal seperti:\n- `.env*` kecuali `.env.example`\n- `.vercel/`\n- `.supabase/`\n- file credential seperti `*.pem`, `*.key`, `*.p12`, dan `*.pfx`\n- `node_modules/`, `.next/`, `dist/`, dan `tsconfig.tsbuildinfo`\n\n---\nDikembangkan oleh: @franzxml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranzxml%2Fdaily-quest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffranzxml%2Fdaily-quest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffranzxml%2Fdaily-quest/lists"}