Aplikasi Task Management berbasis web yang dibangun menggunakan arsitektur Clean Code. Aplikasi ini memiliki fitur autentikasi JWT, manajemen tugas (CRUD) lengkap dengan tanggal, serta antarmuka modern yang responsif dan mendukung Dark Mode.
Frontend:
- Vue.js 3 (Composition API)
- Tailwind CSS (Modern styling & Dark Mode)
- Axios (HTTP Client)
- Vite (Build tool)
Backend:
- Python 3
- Flask (REST API)
- Flask-SQLAlchemy (ORM)
- Flask-JWT-Extended (Authentication)
- PostgreSQL (Database)
Sebelum menjalankan aplikasi, pastikan komputer Anda memiliki:
- Python 3.x
- Node.js & npm
- PostgreSQL
Ikuti langkah-langkah berikut untuk menjalankan aplikasi di lingkungan lokal (local environment).
Pastikan PostgreSQL service sudah berjalan, lalu buat database baru bernama task_db:
CREATE DATABASE task_db;Buka terminal dan masuk ke direktori backend:
cd backend(Opsional) Buat dan aktifkan virtual environment:
python -m venv venv
# Windows:
venv\Scripts\activate
# Mac/Linux:
source venv/bin/activateInstall dependensi yang dibutuhkan:
pip install -r requirements.txtKonfigurasi Database:
Buka file config.py dan sesuaikan SQLALCHEMY_DATABASE_URI dengan kredensial PostgreSQL Anda (username & password).
# Format: postgresql://username:password@localhost/nama_database
SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:admin123@localhost/task_db'Jalankan server Flask:
python app.pyServer Backend akan berjalan di: http://127.0.0.1:5000
Buka terminal baru, lalu masuk ke direktori frontend:
cd frontendInstall module yang diperlukan:
npm installJalankan server development:
npm run devFrontend biasanya akan berjalan di: http://localhost:5173
Sistem login menggunakan kredensial statis (dummy login) untuk keperluan demonstrasi:
- Username:
admin - Password:
admin123
Aplikasi ini memiliki fitur lengkap sebagai berikut:
- CRUD Lengkap: Create, Read, Update, dan Delete tugas.
- Manajemen Waktu: Mendukung input Start Date dan Due Date (Deadline) untuk setiap tugas.
- Status Tracking: Mengubah status tugas (To Do, In Progress, Done) dengan indikator visual.
- Pencarian Instan: Mencari tugas berdasarkan judul tanpa reload halaman (Computed Properties).
- Filter Status: Menyaring tugas berdasarkan status pekerjaan.
- Dark Mode Support: Mendukung tema gelap dan terang (Sun/Moon toggle) yang tersimpan di LocalStorage.
- Responsive Design: Tampilan grid yang rapi di desktop maupun mobile.
- Interactive Login: Fitur Show/Hide password pada form login.
- JWT Authentication: Mengamankan endpoint API menggunakan Token Bearer.
task-management-app/
├── backend/ # Server-side Logic
│ ├── app.py # Entry point & App Initialization
│ ├── config.py # Database & JWT Config
│ ├── models.py # Database Models (Task with Dates)
│ ├── routes.py # API Routes / Endpoints
│ └── requirements.txt # Python dependencies list
│
├── frontend/ # Client-side Interface
│ ├── src/
│ │ ├── assets/ # CSS & Static files
│ │ ├── components/ # Vue Components
│ │ │ ├── Login.vue # Halaman Login (Show/Hide Pass)
│ │ │ └── TaskManager.vue # Dashboard (Search, Filter, Date)
│ │ ├── App.vue # Root Component (Dark Mode Logic)
│ │ └── main.js # Vue Entry point
│ ├── index.html
│ ├── tailwind.config.js # Konfigurasi Tailwind & Dark Mode
│ └── package.json
│
└── README.md # Dokumentasi Project
Dibuat oleh: Sergio Winnero