Template ini dibuat menggunakan create-elysiajs.
- Framework Backend : ElysiaJS
- Database & ORM : Prisma + PostgreSQL
- Linter : ESLint
- Plugins Elysia :
- CORS - Mengelola kebijakan akses lintas domain
- Swagger - Dokumentasi API interaktif
- JWT - Autentikasi berbasis JSON Web Token
- Logger - Logging request dan response
-
Clone repositorigit clone https://github.com/TestAkun01/Cloud-Storage-Backend
-
Instal dependensi
bun install
-
Konfigurasi Database
-
Pastikan PostgreSQL sudah berjalan
-
Atur
.envdengan koneksi database -
Jalankan migrasi
bun migrate
-
-
Menjalankan Server
bun dev
Server akan berjalan di http://localhost:3000 secara default.
Swagger dapat diakses di http://localhost:3000/swagger setelah server berjalan.
-
POST /auth/register→ Register user baru -
POST /auth/login→ Login dan mendapatkan access token + refresh token -
POST /auth/refresh→ Mendapatkan access token baru dari refresh token -
POST /auth/logout→ Logout dan revoke refresh token
-
GET /users/me→ Mendapatkan detail user yang sedang login -
GET /users/storage→ Melihat kuota penyimpanan yang terpakai
-
POST /files/upload→ Upload file baru -
GET /files→ List semua file user -
GET /files/:id→ Mendapatkan detail file -
GET /files/:id/download→ Download file (to do: menambahkan link download asli) -
PUT /files/:id→ Update metadata file (misal rename) (to do: menambahkan ekstensi di nama yang baru) -
DELETE /files/:id→ Hapus file (ke trash) -
GET /files/:id/versions→ Melihat versi file sebelumnya -
POST /files/:id/restore→ Mengembalikan file dari trash
-
GET /file-versions/:id→ Melihat semua versi file -
POST /files-versions/:id→ Menambahkan versi baru -
GET /file-versions/:id/:versionId/restore→ Mengembalikan file ke versi tertentu
-
POST /folders→ Membuat folder baru -
GET /folders→ List folder user -
GET /folders/:id→ Melihat isi folder -
PUT /folders/:id→ Rename folder -
DELETE /folders/:id→ Hapus folder (ke trash) -
POST /files/:id/restore→ Mengembalikan folder dari trash
-
POST /share→ Membagikan file/folder ke user lain -
GET /share→ List file/folder yang dibagikan -
DELETE /share/:id→ Menghapus akses berbagi
-
GET /trash→ Melihat file/folder yang dihapus -
POST /trash/restore/:id→ Mengembalikan file/folder dari trash -
DELETE /trash/:id→ Hapus permanen file/folder
-
POST /tags→ Menambahkan tag ke file -
GET /tags→ List semua tag -
DELETE /tags/:id→ Menghapus tag
-
POST /webhooks→ Menambahkan webhook baru -
GET /webhooks→ List semua webhook -
DELETE /webhooks/:id→ Menghapus webhook