Shiro Tales adalah aplikasi web progresif (PWA) yang dirancang untuk memberikan pengalaman membaca yang fleksibel bagi pengguna. Situs web ini mendukung desain responsif, terutama untuk perangkat layar kecil seperti smartphone, karena pengguna utamanya adalah pengguna smartphone dan tablet. Fitur-fiturnya meliputi pendaftaran pengguna, login, dan akses sebagai tamu untuk memudahkan pengguna dalam mengakses novel favorit mereka. Selain itu, terdapat fitur riwayat baca (segera hadir) dan fitur favorit (penanda buku).
Laravel dapat diakses, kuat, dan menyediakan alat yang dibutuhkan untuk aplikasi besar dan tangguh.
git clone https://github.com/Yoganataa/shiroAPIcd shiroapicomposer installnpm install && npm run buildcp .env.example .envphp artisan key:generateEdit file .env dengan kredensial database Anda:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shirodb
DB_USERNAME=root
DB_PASSWORD=php artisan migratephp artisan serveAPI ini menyediakan endpoint untuk mengelola webtoon, episode, halaman, autentikasi pengguna, profil pengguna, favorit, dan riwayat baca. API ini menggunakan Laravel Sanctum untuk autentikasi.
-
Register
- URL:
POST /register - Controller:
UserController@register - Deskripsi: Mendaftarkan pengguna baru.
- URL:
-
Login
- URL:
POST /login - Controller:
UserController@login - Deskripsi: Login pengguna dan mengembalikan token autentikasi.
- URL:
-
Lihat Profil Pengguna
- URL:
GET /users/profile - Controller:
UserController@show - Deskripsi: Mengambil profil pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Update Profil Pengguna
- URL:
PUT /users/update - Controller:
UserController@update - Deskripsi: Memperbarui profil pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Logout
- URL:
POST /users/logout - Controller:
UserController@logout - Deskripsi: Logout pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Lihat Semua Webtoon
- URL:
GET /webtoons - Controller:
WebtoonController@index - Deskripsi: Mengambil daftar semua webtoon.
- URL:
-
Lihat Webtoon Berdasarkan ID
- URL:
GET /webtoons/{webtoon_id} - Controller:
WebtoonController@show - Deskripsi: Mengambil webtoon spesifik berdasarkan ID.
- URL:
-
Lihat Semua Episode untuk Webtoon
- URL:
GET /webtoons/{webtoon_id}/episodes - Controller:
EpisodeController@index - Deskripsi: Mengambil semua episode untuk webtoon spesifik.
- URL:
-
Lihat Episode Berdasarkan ID
- URL:
GET /episodes/{episode_id} - Controller:
EpisodeController@show - Deskripsi: Mengambil episode spesifik berdasarkan ID.
- URL:
- Lihat Semua Halaman untuk Episode
- URL:
GET /episodes/{episode_id}/pages - Controller:
PageController@index - Deskripsi: Mengambil semua halaman untuk episode spesifik.
- URL:
-
Favoritkan Webtoon
- URL:
POST /users/favorites/{webtoon_id} - Controller:
UserController@favoriteWebtoon - Deskripsi: Menambahkan webtoon ke daftar favorit pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Hapus Favorit Webtoon
- URL:
DELETE /users/favorites/{webtoon_id} - Controller:
UserController@unfavoriteWebtoon - Deskripsi: Menghapus webtoon dari daftar favorit pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Lihat Riwayat Baca
- URL:
GET /users/reading-history - Controller:
ReadingHistoryController@index - Deskripsi: Mengambil riwayat baca pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
-
Tandai Episode sebagai Dibaca
- URL:
POST /episodes/{episode_id}/mark-read - Controller:
ReadingHistoryController@markRead - Deskripsi: Menandai episode spesifik sebagai dibaca untuk pengguna yang diautentikasi.
- Middleware:
auth:sanctum
- URL:
Rute-rute berikut memerlukan autentikasi melalui Laravel Sanctum:
GET /users/profilePUT /users/updatePOST /users/logoutPOST /users/favorites/{webtoon_id}DELETE /users/favorites/{webtoon_id}GET /users/reading-historyPOST /episodes/{episode_id}/mark-read
Untuk menggunakan rute-rute ini, sertakan header Authorization: Bearer {token} dalam permintaan Anda.
