- Node.js: v20.17.0
- npm: v10.8.1
Proyek ini terdiri dari beberapa komponen yang dapat dikelola dalam repositori terpisah. Setiap komponen memiliki fungsi dan teknologi masing-masing.
-
Repositori: ChatTasker-Backend
-
Fungsi Utama:
- Mengelola tugas dan interaksi pengguna.
- Menyimpan data di Firebase.
- Menyediakan API untuk fitur pengingat.
-
Teknologi:
- Node.js
- Express.js
- Firebase (untuk penyimpanan tugas)
-
Fitur Utama:
- API CRUD untuk tugas (Create, Read, Update, Delete).
- Pengaturan pengingat berdasarkan
dueDate
(bisa menggunakan Firebase Cloud Functions). - Integrasi keamanan seperti autentikasi JWT, jika aplikasi memerlukan login pengguna.
-
Repositori: ChatTasker-Chatbot
-
Fungsi Utama:
- Mengelola logika interaksi chatbot dengan pengguna.
- Memberikan respons sesuai dengan status tugas.
- Menandai tugas sebagai selesai dan lainnya.
-
Teknologi:
- Dialogflow atau API chatbot lain
- Node.js (untuk interaksi dengan Firebase)
-
Fitur Utama:
- Penanganan percakapan menggunakan webhook atau API yang mengarah ke server.
- Mengirim perintah API untuk menandai tugas sebagai selesai atau mengatur pengingat.
- Sinkronisasi dengan database Firebase untuk memeriksa status tugas pengguna.
-
Repositori: ChatTasker-Reminder
-
Fungsi Utama:
- Mengirim pengingat kepada pengguna untuk tugas yang sudah mendekati tenggat waktu.
-
Teknologi:
- Firebase Cloud Functions atau cron jobs (misalnya dengan Node-cron)
-
Fitur Utama:
- Menjalankan penjadwalan untuk mengirim notifikasi ke pengguna (misalnya, melalui email atau notifikasi push).
- Penjadwalan otomatis saat tugas baru dibuat atau tanggalnya diubah.
- Koneksi ke database untuk mendapatkan tugas dengan
dueDate
yang mendekati.
-
Repositori: ChatTasker-Frontend
-
Fungsi Utama:
- Memberikan antarmuka bagi pengguna untuk berinteraksi dengan tugas dan chatbot.
-
Teknologi:
- Vue.js atau React
- Firebase untuk autentikasi dan backend.
-
Fitur Utama:
- Tampilan daftar tugas dengan status penyelesaian.
- Form untuk membuat dan mengedit tugas.
- Fitur untuk chatting dengan chatbot melalui antarmuka pesan.
- Integrasi autentikasi pengguna (opsional) menggunakan Firebase Auth.
-
Repositori: ChatTasker-Mobile
-
Fungsi Utama:
- Memberikan akses melalui perangkat mobile dengan fitur manajemen tugas dan chatting dengan chatbot.
-
Teknologi:
- React Native atau Expo
-
Fitur Utama:
- Tampilan tugas dan status penyelesaian.
- Integrasi chat dengan chatbot.
- Sinkronisasi tugas dengan Firebase.
-
Repositori: ChatTasker-Deployment
-
Fungsi Utama:
- Menggabungkan semua komponen dan melakukan deployment ke server.
-
Teknologi:
- Docker (untuk containerization)
- GitHub Actions (untuk otomatisasi CI/CD)
-
Fitur Utama:
- Skrip dan konfigurasi Docker untuk semua komponen.
- Pengaturan CI/CD dengan GitHub Actions untuk otomatisasi build dan deployment ke server.
- Dokumentasi integrasi dan panduan deployment.
-
Repositori: ChatTasker-Docs
-
Fungsi Utama:
- Menyediakan dokumentasi proyek dan panduan penggunaan untuk developer dan pengguna.
-
Teknologi:
- Markdown untuk dokumentasi
- Figma atau Canva untuk desain antarmuka.
-
Fitur Utama:
- Dokumentasi API untuk backend.
- Panduan penggunaan dan setup untuk setiap komponen.
- Desain wireframe dan prototype untuk antarmuka pengguna.
- Backend API akan menangani semua permintaan dari frontend dan mobile, mengelola data di Firebase, serta memberikan API untuk fitur pengingat.
- Chatbot berfungsi untuk berinteraksi dengan pengguna, memberikan respons yang relevan berdasarkan status tugas, dan memperbarui status tugas.
- Pengelola Pengingat secara otomatis akan mengirimkan notifikasi kepada pengguna untuk tugas-tugas yang mendekati tenggat waktu, menggunakan Firebase Cloud Functions atau cron jobs.
- Antarmuka Pengguna (Frontend) memungkinkan pengguna untuk berinteraksi dengan sistem melalui tampilan grafis, membuat dan mengedit tugas, serta berkomunikasi dengan chatbot.
- Komponen Mobile menyediakan akses mudah bagi pengguna untuk mengelola tugas melalui perangkat mobile.
- Integrasi dan Deployment memastikan bahwa semua komponen terintegrasi dengan baik dan dapat di-deploy ke server dengan mudah menggunakan Docker dan GitHub Actions.
- Dokumentasi dan Desain memberikan panduan yang diperlukan untuk developer dan pengguna agar lebih memahami cara menggunakan dan mengembangkan sistem.
Pengembang yang ingin berkontribusi pada proyek ini dapat mengikuti langkah-langkah berikut:
- Fork repositori yang relevan.
- Buat branch baru untuk fitur atau perbaikan yang akan dikerjakan.
- Lakukan perubahan dan buat commit.
- Push ke branch Anda dan buat Pull Request.
Proyek ini menggunakan lisensi MIT.