🎉 🎉 🎉
Kita akan membuat tugas project pribadi dengan membuat back end menggunakan GO dan package GIN-GONIC dan juga package GORM. Kemudian kita juga akan membuat frond end menggunakan REACT JS
- Silahkan tentukan mau membuat project seperti apa, untuk tema bebas. Tetapi khusus untuk back end harus memenuhi kriteria dibawah ini.
Buatlah sebuah tabel diagram sesuai keinginan kalian dengan catatan :
- terdapat minimal 3 tabel di dalam database.
- memiliki tabel user, dengan kolom sebagai berikut :
- id / user_id : primarykey, not null, auto increment
- first_name : varchar(255)
- last_name : varchar(255)
- email : varchar(255), unique
- password : varchar(255)
- created_at : date(3)
- updated_at : date(3)
- table user memiliki relasi dengan tabel lain, setiap tabel selain tabel user juga memiliki relasi
NB : Silahkan laporkan ketika release 1 sudah selesai di github dalam bentuk foto atau pdf.
Buatlah rest API yang dibutuhkan untuk menggunakan GIN - GONIC dan GORM.
- REST API yang dibuat harus memenuhi basic CRUD ( create, read, update, delete)
- Didalam rest API tersebut harus memiliki :
- POST "/users" ket : routingan untuk membuat user baru
- GET "/users" , ket : menampilkan seluruh user yang ada di database
- GET "/users/:user_id" , ket : menampilkan 1 user sesuai dengan parameter yang diberikan
- PUT "/users/:user_id", ket : melakukan update user sesuai dengan parameter yang diberikan
- DELETE "/users/:user_id" ket : routingan untuk melakukan delete user sesuai parameter yang diberikan"
- Silahkan perbaiki code REST API yang sudah di buat dengan menerapkan arsitektur yang sudah dijelaskan dengan menerapkan layer - layer :
- repository , ket : package ini adalah package yang digunakan untuk berkomunikasi dengan database
- service , ket : package ini adalah package yang digunakan untuk melakukan bussiness logic di back end
- handler / controller : package ini digunakan untuk berkomunikasi dengan user / pengguna eksternal baik itu menerima data atau menampilkan data
- Gunakan hashing untuk data yang bersifat pribadi dengan membuat package helper. Seperti password user atau data lain di tabel yang datanya perlu di enksipsi.
- Aplikasikan "env" atau environment variabel pada project ini.
Saatnya menerapkan authorization menggunakan JWT "json web token" dan juga middleware di project ini.
- Terdapat beberapa code yang wajib dibuat di project ini sebagai berikut:
- buatlah routing untuk register user dan juga login user
- POST "/users/register" , ket : routingan register digunakan untuk melakukan register user
- POST "/users/login" , ket : routingan login digunakan untuk mendapatkan akses authorization dan juga mendapatkan data user yang sedang melakukan login
- Silahkan menerapkan middleware untuk routingan :
- GET "users/:user_id"
- PUT "users/:user_id"
- DELETE "/users/:user_id"
- Gunakan middleware untuk akses routing yang bersifat privat atau memerlukan akses user login melalui routingan POST "/users/login"
buatlah 1 routing khusus yang didapat dari 3rd party API ( bebas apa saja ) dan diolah kemudian tampilkan menggunakan routing GET.
- lakukan deployment server menggunakan heroku dan juga mengaplikasikan env "environment variable" untuk menginput data connection database mysql sebagai berikut :
- MYSQL_DATABASE : mysql (or your preferred database name)
- MYSQL_USER : mysql (or your preferred database username)
- MYSQL_PASSWORD : A secure password for MYSQL_USER
- MYSQL_HOST : tcp or protocol deployment MYSQL
- kemudian buatlah API documentation dengan menggunakan swagger (boleh membuat dokumentasi manual menggunakan API-DOC.md) (OPTIONAL)
Buatlah front end tampilan yang dibutuhkan menggunakan framework REACT JS. dengan page yang wajib dibuat adalah :
- page login
- page register
- page home (untuk menampilkan home page)
- page user detail
- memiliki fitur log out
Gunakan API yang sudah dideploy di heroku untuk kemudian digabungkan dengan front end ( wiring ) kemudian menerapkan beberapa fitur berikut :
- wajib menggunakan REDUX
- gunakan private route dipage user detail dan juga page yang dirasa memerlukan login user terlebih dahulu
Lakukan deployment frond end yang sudah dibuat menggunakan netlify.
NB : Segera push data terbaru jika sudah selesai tiap release.