Skip to content

caresomebody/PSBO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 

Repository files navigation

logo (1)

Kelompok 1 - Paralel 1 - PSBO - Mamen Family

Back-End Deskripsi User Analysis Spesifikasi Konsep OOP Tipe Desain Hasil dan Pembahasan Implementasi Saran Job Desc

🖥 Back-End

^ kembali ke atas ^
https://github.com/caresomebody/SIMARU-API

📖 Deskripsi Singkat Aplikasi

^ kembali ke atas ^
SIMARU (Sistem Management Peminjaman Ruangan)

Selama penyelenggaraan acara kepanitiaan maupun organisasi di IPB, salah satu hal yang perlu dipersiapkan adalah ruangan. Banyak jenis ruangan yang dapat dipinjam dengan berbagai macam cara peminjaman. Variasi dalam peminjaman ruangan tersebut kerap menimbulkan pertanyaan bagi panitia penyelenggara, seperti informasi terkait ketersediaan, kapasitas, waktu operasional, fasilitas serta narahubung yang harus dihubungi. Dengan adanya permasalahan yang dialami tersebut, kami memutuskan untuk membuat suatu platform terpusat mengenai informasi setiap ruangan yang ada di IPB. Platform tersebut bernama SIMARU.

SIMARU ( Sistem Management Peminjaman Ruang ) merupakan platform berbasis website yang diperuntukkan untuk mahasiswa IPB dalam melakukan pencarian informasi dan pengajuan peminjaman dari data ruangan yang tersedia. Fitur yang disediakan oleh Simaru berupa Data Ruangan, Ajukan Peminjaman, Data Peminjaman, dan Pengajuan. Dengan adanya platform informasi ini, tentunya akan membuat alur peminjaman setiap ruangan menjadi lebih terstruktur, informasi jadwal booking setiap ruangan akan lebih terpusat, dan proses peminjaman dapat dilakukan dengan lebih efektif dan efisien.

🧑‍🤝‍🧑 User Analysis

^ kembali ke atas ^

User Story

“Sebagai panitia sebuah acara di ipb saya ingin tahu data realtime ruangan mana di IPB yang sudah terbooking, agar saya dapat menyesuaikan dengan jadwal peminjaman untuk booking ruangan di acara saya.”

“Sebagai panitia sebuah acara di ipb saya ingin tahu kapasitas ruangan yang ada di IPB, agar saya dapat menyesuaikan peminjaman ruangan untuk acara saya.”

“Sebagai panitia sebuah acara di ipb saya ingin tahu fasilitas yang tersedia di ruangan yang akan dipinjam, agar saya dapat menyesuaikan kebutuhan acara dengan fasilitas ruangan.”

“Sebagai panitia sebuah acara di ipb saya ingin tahu narahubung dari setiap ruangan yang ada di IPB, agar saya dapat lebih mudah dalam menghubungi pihak ruangan yang ingin saya sewa nantinya”

⚙️ Spesifikasi Teknis Lingkungan Pengembangan

^ kembali ke atas ^

Software

Hardware

  • Processors : AMD Ryzen 5 3600, Intel Core i5-8250U 1.60 GHz
  • Memory : 16GB, 8GB RAM
  • VGA : Radeon RX 570, NVIDIA GeForce® 940MX

Tech Stack

MERN adalah singkatan dari MongoDB, Express, React, Node yang merupakan tech stack yang digunakan pada pengembangan aplikasi kali ini.

Nama Fungsi
MongoDB Database
ExpressJS NodeJS Web Framework
NodeJS JavaScript Web Server
React JS Client-side JavaScript framework (Front-End)

MERN adalah salah satu dari beberapa variasi stack MEAN (MongoDB, Express, Angular, Node), di mana Angular sebagai framework front-end tradisional digantikan dengan React.js. Variasi lainnya adalah MEVN (MongoDB, Express, Vue, Node) dan framework front end dengan bahasa pemrograman JavaScript apapun dapat digunakan.

🌸 Konsep OOP yang Digunakan

^ kembali ke atas ^

  • Object, Method dan Property

    • Object adalah kesatuan dasar dari OOP dan merepresentasikan bentuk nyata dari class.
    • Method atau behavior adalah suatu operasi berupa fungsi-fungsi yang dapat dilakukan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object. Metode menentukan perilaku object, yakni apa yang terjadi ketika object tersebut dibuat serta berbagai operasi yang dapat dilakukan object.
    • Property adalah bagian dari sebuah class yang mendeskripsikan sifat yang dimiliki oleh class tersebut.
  • Class

    • Cetak biru (blueprint) definisi pengguna atau prototipe dari object yang dibuat. Class yang telah diciptakan tersebut merepresentasikan seperangkat properti atau method yang umum dari semua object dari satu tipe data.
  • Encapsulation

    • Metode penyatuan data atau metode yang berbeda yang “dikapsulkan” menjadi satu unit data. Encapsulation juga dapat diartikan sebagai salah satu cara untuk melindungi data agar tidak dapat diakses oleh apapun yang berada diluar kapsul.
  • Inheritance

    • Konsep yang memungkinkan class yang telah terbentuk untuk mewariskan sifat-sifatnya (field dan method) kepada class yang baru dibuat.
  • Getter and Setter

    • Metode untuk mengambil dan memperbarui nilai dari sebuah variabel, terutama pada variabel yang terdapat pada enkapsulasi.
  • Message Passing

    • Metode untuk mengirim pesan dari sebuah objek dari satu bagian ke bagian lainnya (contoh produsen dan konsumen). Metode ini digunakan ketika bagian tersebut tidak memiliki ruang penyimpanan atau perangkat keras yang dapat dibagi sebagai cara untuk berkomunikasi.

🎨 Architecture Pattern

Kami menggunakan design pattern MVC untuk pengembangan web kami, penjelasannya adalah sebagai berikut:

  • Model: Mengelola logika bisnis aplikasi yang menentukan bagaimana data harus disimpan, dibuat, dan dimodifikasi
  • View: Representasi visual dari data atau informasi
  • Controller: Menafsirkan peristiwa yang dibuat pengguna dan mengubahnya menjadi perintah untuk model yang nantinya akan mengubah tampilan

🤔 Metode Pengembangan Desain

^ kembali ke atas ^
Dalam pengembangan sistem Simaru, kami menggunakan metode waterfall (Air terjun). Metode ini menggambarkan pendekatan yang cukup sistematis juga berurutan pada pengembangan software. Tahapan yang dilakukan terdiri dari Requirement, Design System, Coding, Integration dan Operation, serta Maintenance. Berikut merupakan uraian dari tahapan yang kami lakukan :

No Tahapan Uraian
1. Requirement Analysis Pada tahapan ini dilakukan untuk mengetahui kebutuhan pengguna atas perangkat lunak yang diharapkan. Informasi kebutuhan tersebut bisa diperoleh dengan cara wawancara langsung, diskusi, dan studi literatur. Kemudian, hasil dari informasi tersebut akan dianalisis dan dikelompokkan berdasarkan kebutuhan pengguna
2. Design System Pada tahap ini akan dibuat software requirement dimulai dari perancangan perangkat lunak, pembuatan ERD, Use case diagram, Activity diagram, Class diagram, Arsitektur sistem, serta representasi interface
3. Coding & System Tahapan ini merupakan implementasi dari perancangan yang dibuat. Sistem informasi akan dibuat menggunakan bahasa pemrograman JavaScript dengan Framework React JS. Setelah itu akan dilakukan testing terhadap sistem yang telah dibuat untuk mengetahui kesalahan dari sistem tersebut dan dilakukan perbaikan
4. Integration Tahap ini merupakan tahapan final. Setelah melakukan tiga tahapan di atas, maka sistem telah siap untuk digunakan oleh user
5. Operation & Maintenance Pemeliharaan akan dilakukan apabila terdapat update fitur atau memperbaiki kesalahan yang ditemukan pada saat sistem digunakan langsung oleh user

🎊 Hasil dan Pembahasan

^ kembali ke atas ^

Use Case Diagram

Kami menawarkan ide sebuah platform dimana mahasiswa IPB dapat melakukan peminjaman ruangan yang ada di IPB. Pengguna dapat melihat ketersediaan ruangan pada daftar ruangan dan juga fasilitas pada ruangan secara lengkap seperti kapasitas orang, luas ruangan dan peralatan pada detail ruangan. Pengguna dapat melakukan pengajuan untuk meminjam ruangan dengan memasukan tujuan peminjaman ruangan dan juga memilih jam serta tanggal pada detail ruangan. Kemudian pengajuan itu akan masuk ke dalam daftar pending pada aplikasi penjaga ruangan sebagai admin yang nantinya pengajuan tersebut dapat disetujui oleh admin. Jika sudah diterima, maka permohonan tersebut akan masuk ke dalam list yang ada pada daftar pengajuan bahwa ruangan sudah dipesan oleh pihak yang memesan dengan rinci.

Activity Diagram!

Class Diagram

Entity Relationship Diagram (ERD)

Arsitektur Sistem

Fungsi Utama yang Dikembangkan

Fitur-fitur aplikasi Simaru antara lain :

  • Data Ruangan

Pada fitur “Data Ruangan” pengguna dapat melihat daftar ruangan yang ada di IPB lengkap dengan informasi detail yang meliputi foto ruangan, deskripsi, kapasitas, ukuran, waktu operasional, fasilitas yang tersedia, dan narahubung dari ruangan tersebut.

  • Ajukan Peminjaman

Fitur “Ajukan Peminjaman” dapat digunakan pengguna apabila ingin mengajukan peminjaman ruangan. Pada fitur ini pengguna diwajibkan untuk mengisikan form pengajuan yang tersedia.

  • Data Peminjaman

Fitur “Data Peminjaman” berisikan informasi realtime ruangan yang sudah terbooking. Fitur ini membantu pengguna untuk menyesuaikan pengajuan berdasarkan ruangan dan waktu peminjaman yang akan ia ajukan.

  • Pengajuan

Pada fitur “Pengajuan” pengguna dapat melihat daftar pengajuan yang telah ia buat lengkap dengan status dari pengajuan tersebut.

Fungsi CRUD

  1. CREATE
  • Pengguna dapat membuat pengajuan permintaan untuk booking ruangan dengan atribut Id pengajuan, dokumen, deskripsi, tanggal mulai, tanggal selesai, waktu mulai, waktu selesai.
  1. READ
  • Pengguna dapat melihat daftar ketersediaan ruangan yang terdapat pada homepage
  • Pengguna dapat melihat data detail ruangan IPB
  • Pengguna dapat melihat detail pengajuan dari pengajuan yang telah ia buat
  1. UPDATE
  • Pengguna dapat mengupdate pengajuan yang telah ia ajukan sebelumnya selama admin belum menanggapi pengajuan tersebut
  1. DELETE
  • Pengguna dapat menghapus pengajuan yang telah ia buat sebelumnya

🚀 Hasil Implementasi

^ kembali ke atas ^

Endpoint API

Endpoint API Fungsi Method
https://simaru-api.herokuapp.com/api/login Login & Auth POST
https://simaru-api.herokuapp.com/api/ruangan READ semua ruangan GET
https://simaru-api.herokuapp.com/api/ruangan/:id READ sebuah ruangan GET
https://simaru-api.herokuapp.com/api/pengajuan/store CREATE Pengajuan POST
https://simaru-api.herokuapp.com/api/pengajuan/ READ semua pengajuan GET
https://simaru-api.herokuapp.com/api/pengajuan/update/:id UPDATE data pengajuan PUT
https://simaru-api.herokuapp.com/api/pengajuan/:id READ data sebuah pengajuan GET
https://simaru-api.herokuapp.com/api/pengajuan/delete/:id DELETE data pengajuan DELETE
https://simaru-api.herokuapp.com/api READ semua user & admin GET
https://simaru-api.herokuapp.com/api/admin READ semua admin GET

Screenshot sistem

Log In

image

Dashboard User

image

Detail Ruangan

image

Pengajuan Ruangan

image image

Daftar Pengajuan

image

Dashboard Admin

image

Detail Pengajuan Admin

image image

Link Aplikasi

Deploy

NOTES

Karena belum terintegrasi dengan API IPB, berikut username dan password untuk mencoba aplikasi kami:

Username Password Role
pak_kunci user Admin
panitia_ipb user User

Alternatif Link:

🤟 Saran untuk Pengembangan Selanjutnya

^ kembali ke atas ^

Untuk pengembangan selanjutnya diharapkan bisa mengintegrasi AUTH dari SIMARU dengan API resmi dari IPB, serta dapat menampilkan data ruangan yang sesuai dengan data asli dari IPB (apabila ada)

👨‍🏫 Developer dan Job Desc

^ kembali ke atas ^

👦 Ali Naufal Ammarullah | G64180080
      Role: Project Manager & Back-End
      Email: ali_naufal26@apps.ipb.ac.id
      GitHub: @caresomebody

👦 Muhammad Rayhanendra Adikoesoemo | G64180098
      Role: Front-End
      Email: rayhanendra_a6@apps.ipb.ac.id
      GitHub: @rayhanendra

👩 Zahwa Wahyu Riana | G64180070
      Role: Front-End & System Analyst
      Email: zahwa_riana31@apps.ipb.ac.id
      GitHub: @zahwawrr

👩 Mutia Marcha Fatika | G64180085
      Role: Front-End & UI/UX Designer
      Email: mutia_kemala@apps.ipb.ac.id
      GitHub: @mutiamarchaa

👦 Muhammad Hafizhan | G64180100
      Role: System Analyst & UI/UX Designer
      Email: hafizhan_667@apps.ipb.ac.id
      GitHub: @Muffin667

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published