repository ini dibentuk untuk penyelesaian tugas Komunikasi Data dan Jaringan Komputer
Nama | NIM |
---|---|
Yasmin Salamah | G64170108 |
Wanda Azizah Yasin | G64170027 |
Dwi Fristanti Sagala | G64170047 |
Sebuah aplikasi dashboard yang dapat membantu pengurus bayi untuk mencatat waktu tidur, waktu makan, penggantian popok dan dapat memprediksi kebutuhan bayi kedepannya.
Untuk demo aplikasi dapat diakses di demo of Baby Buddy.
Untuk kredensial login adalah :
- Username:
admin
- Password:
admin
-
Mengunduh VDI ubuntu 18.04 headless dari http://repo.apps.cs.ipb.ac.id/lab/ubuntu-server.vdi.gz.
-
Membuat instance ubuntu baru kemudian melakukan konfigurasi network.
Buka network -> advanced lalu lakukan port forwarding
- Karena komputer host saya menggunakan windows maka saya menggunakan sebuah aplikasi bernama putty untuk mengakses vm linux yang saya buat sebelumnya.
Untuk mengunduh puTTy dapat dilakukan di sini
- Saya kemudian mengakses vm dengan mengisi kredensial session
- Install system packages, untuk sesi instalasi ini kita alias kan python3 menjadi python (opsional).
sudo apt-get install python3 python3-pip nginx uwsgi uwsgi-plugin-python3 git libopenjp2-7-dev
alias python=python3
- Install pipenv
sudo -H pip3 install pipenv
- Buat direktori dan clone repository.
sudo mkdir /var/www/babybuddy
mkdir -p /var/www/babybuddy/data/media
git clone https://github.com/babybuddy/babybuddy.git /var/www/babybuddy/public
ubah owner direktori setelah membuat direktori
sudo chown user:user /var/www/babybuddy
- change direktori ke babybuddy/public kemudian set pipenv secara lokal
cd /var/www/babybuddy/public
export PIPENV_VENV_IN_PROJECT=1
pipenv install --three
pipenv shell
- Edit production setting file dan ubah nilai
SECRET_KEY
andALLOWED_HOSTS
cp babybuddy/settings/production.example.py babybuddy/settings/production.py
editor babybuddy/settings/production.py
Catatan :
Baca dokumentasi Django's documentation untuk setting production terutama mengenai ALLOWED_HOSTS](https://docs.djangoproject.com/en/3.0/ref/settings/#allowed-hosts)
- ALLOWED_HOSTS
Apabila ALLOWED_HOSTS[] :
ketika DEBUG is True and ALLOWED_HOSTS is empty, maka host akan menjadi ['localhost', '127.0.0.1', '[::1]'].
- SECRET_KEY
SECRET_KEY tidak boleh kosong isi dengan value apapun, anggap seperti password.
- Inisiasi Aplikasi
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
python manage.py migrate
python manage.py createcachetable
- Mengubah permission untuk ownership direktori
sudo chown -R www-data:www-data /var/www/babybuddy/data
sudo chmod 640 /var/www/babybuddy/data/db.sqlite3
sudo chmod 750 /var/www/babybuddy/data
- Membuat dan mengkonfigurasi uWSGI
sudo editor /etc/uwsgi/apps-available/babybuddy.ini
Contoh Konfigurasi, jangan lupa untuk mengisi direktori:
[uwsgi]
plugins = python3
project = babybuddy
base_dir = /var/www/babybuddy
chdir = %(base_dir)/public
virtualenv = %(chdir)/.venv
module = %(project).wsgi:application
env = DJANGO_SETTINGS_MODULE=%(project).settings.production
master = True
vacuum = True
- Konfigurasi Symlink dan restart uWSGI
sudo ln -s /etc/uwsgi/apps-available/babybuddy.ini /etc/uwsgi/apps-enabled/babybuddy.ini
sudo service uwsgi restart
- Membuat dan mengkonfigurasi NGINX
sudo editor /etc/nginx/sites-available/babybuddy
Contoh konfigurasi:
upstream babybuddy {
server unix:///var/run/uwsgi/app/babybuddy/socket;
}
server {
listen 80;
server_name localhost;
location / {
uwsgi_pass babybuddy;
include uwsgi_params;
}
location /media {
alias /var/www/babybuddy/data/media;
}
}
- Konfigurasi Symlink dan Restart NGINX
sudo ln -s /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy
sudo service nginx restart
- Buka localhost.
Spesifikasi instance VPS :
- Minimal Ubuntu 18.04
- Minimal Storage 512MB
Spesifikasi Technology :
- Python 3.6+
- nginx
- uwsgi
- sqlite
BabyBuddy menggunakan DJANGO REST FRAMEWORK untuk REST API Dokumentasi lebih lanjut dapat diakses di sini
Untuk menggunakan key untuk API Request, dev hanya perlu meng set request Authorization
header menjadi Token <user-key>
. Seperti contoh :
Authorization: Token 2h23807gd72h7hop382p98hd823dw3g665g56
Apabila Authorization
tidak valid, maka API akan mengembalikkan 403 Forbidden
pada response body.
/api/children/
/api/changes/
(Diaper Changes)/api/feedings/
/api/notes/
/api/sleep/
/api/temperature/
/api/timers/
/api/tummy-times/
/api/weight/
- Tampilan aplikasi web
- Fungsi-fungsi utama
Fungsi utama aplikasi dibagi menjadi 3 :
- Mengisi entry tentang perkembangan anak
- Mengisi entry aktivitas
- Timer
- Entry Perkembangan Anak
Berikut fungsi-fungsi yang ada pada entry anak :
Berikut penjabaran fungsi :
- Entry aktivitas
Berikut fungsi-fungsi yang ada pada entry anak :
Berikut penjabaran fungsi :
- Timer
Fungsi | Deksripsi | Gambar |
---|---|---|
Timer | Timer | ![]() |
- Hasil dashboard
setelah sekian entry data yang kita masukkan maka hasilnya akan ditampilkan pada dashboard sebagai berikut ini :
Kelebihan | Kekurangan |
---|---|
Free Open Source | Fungsi tidak selengkap pada umumnya di implementasi nyata |
dokumentasi deployment lengkap,memudahkan untuk deployment di platform manapun. | |
docker-compose tersedia memudahkan pengguna yang ingin melakukan deployment di docker. Hanya tinggal set value di production setting file lalu initialisasi app. |
|
REST API lengkap |
Hampir semua personal dashboard application sejenis hampir mirip secara struktur.
Namun aplikasi serupa yang mirip dengan babybuddy :
- BI for Baby bi for baby