Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vigenesia Backend — REST API

Catatan Akademik: Proyek ini merupakan implementasi tugas besar perkuliahan mata kuliah Teknologi Web Service (TWS). Dikembangkan sebagai demonstrasi integrasi RESTful API PHP Native dengan aplikasi mobile Flutter. Tidak ada klaim atas konsep asli studi kasus ini.


Repositori Frontend (Mobile): Lihat aplikasi Flutter di vigenesia-mobile


Deskripsi

Backend REST API berbasis PHP Native untuk aplikasi Vigenesia (Visi Generasi Indonesia) — platform berbagi motivasi & inspirasi. API ini melayani seluruh permintaan dari aplikasi mobile Flutter.

Teknologi

Komponen Detail
Bahasa PHP 8.x
Database MySQL 8.x
Web Server Apache (Laragon / XAMPP)
Arsitektur PHP File-Based Routing (Native, tanpa framework)
Response JSON

Cara Setup & Menjalankan

Prasyarat

  • Laragon atau XAMPP sudah terinstal.
  • MySQL aktif dan berjalan.

Langkah-langkah

1. Clone & Letakkan di Web Root

# Jika menggunakan Laragon:
git clone <url-repo> C:/laragon/www/vigenesia

# Jika menggunakan XAMPP:
git clone <url-repo> C:/xampp/htdocs/vigenesia

2. Import Database

  1. Buka http://localhost/phpmyadmin.
  2. Buat database baru bernama vigenesia.
  3. Pilih database vigenesia → klik tab Import.
  4. Pilih file database/init_db.sql → klik Go.

3. Konfigurasi Koneksi Database

# Salin file template
cp api/koneksi.php.example api/koneksi.php

# Buka api/koneksi.php dan sesuaikan jika perlu:
# $host = "localhost";
# $user = "root";
# $pass = "";        <-- Isi password jika ada
# $db   = "vigenesia";

4. Jalankan

  • Aktifkan Apache & MySQL di Laragon/XAMPP.
  • Backend siap diakses di: http://localhost/vigenesia/api/

Struktur Direktori

vigenesia-backend/
├── api/
│   ├── koneksi.php.example    # Template konfigurasi DB (commit aman)
│   ├── koneksi.php            # Konfigurasi DB asli (DIABAIKAN git)
│   ├── Login.php
│   ├── registrasi.php
│   ├── get_motivasi_public.php
│   ├── get_motivasi_user.php
│   ├── get_motivasi_deleted.php
│   ├── post_motivasi.php
│   ├── PUTmotivasi.php
│   ├── delete_motivasi.php
│   ├── delete_permanen.php
│   ├── restore_motivasi.php
│   ├── like_motivasi.php
│   ├── toggle_favorit.php
│   └── update_profile.php
├── database/
│   └── init_db.sql            # Skema database lengkap
├── images/                    # Folder upload foto profil
│   ├── .gitkeep               # Penjaga agar folder tetap ada di repo
│   ├── index.php              # Proteksi directory listing
│   └── .htaccess              # Proteksi directory listing
├── index.php                  # Proteksi root
├── index.html                 # Proteksi root
├── .gitignore
└── README.md

Daftar Endpoint API (14 Endpoints)

Base URL: http://<server-ip>/vigenesia/api

Method Endpoint Deskripsi Parameter
POST /Login.php Login pengguna email, password
POST /registrasi.php Daftar akun baru nama, profesi, email, password
GET /get_motivasi_public.php Ambil semua motivasi publik -
GET /get_motivasi_user.php Ambil motivasi milik user iduser, filter (milik_saya/pribadi/public)
GET /get_motivasi_deleted.php Ambil motivasi di trash bin iduser
GET /get_motivasi.php Ambil semua motivasi (admin) -
POST /post_motivasi.php Tambah motivasi baru judul, isi_motivasi, iduser, is_public
POST /PUTmotivasi.php Edit motivasi id, judul, isi_motivasi, is_public
POST /delete_motivasi.php Soft delete (pindah ke trash) id
POST /delete_permanen.php Hapus permanen dari trash id
POST /restore_motivasi.php Pulihkan dari trash id
POST /like_motivasi.php Toggle like pada motivasi id_motivasi, iduser
POST /toggle_favorit.php Toggle favorit motivasi id, is_favorit
POST /update_profile.php Update profil & upload foto iduser, nama, profesi, foto (multipart)

Format Response

// Sukses
{ "status": "success", "message": "...", "data": { ... } }

// Gagal
{ "status": "error", "message": "Deskripsi error" }

Skema Database

Tabel Deskripsi
user Data akun pengguna (nama, profesi, foto, email, password MD5, role)
role Peran pengguna: 1=Member, 2=Admin
motivasi Konten motivasi (judul, isi, is_public, is_deleted, is_favorit)
likes Relasi like antara user dan motivasi
kategori Kategori konten motivasi
report_apk Laporan bug / masukan dari pengguna

Catatan Keamanan

Proyek ini adalah implementasi akademik (v1.0). Beberapa hal yang perlu diperhatikan sebelum digunakan di lingkungan produksi:

  • Password menggunakan hash MD5 (disarankan upgrade ke bcrypt/Argon2).
  • Belum ada mekanisme JWT / Bearer Token.
  • Validasi input masih menggunakan if-else manual.

Dikembangkan oleh @drizaldi — Tugas Mata Kuliah Teknologi Web Service (TWS)

About

REST API PHP Native untuk backend aplikasi Vigenesia. Implementasi tugas mata kuliah Teknologi Web Service (TWS).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages