alta-store's Issues
ALTA-store RESTful API Echo Golang
Inisialisasi RESTful API ALTA-store menggunakan framework Echo Golang
Model, Controller, dan Routing dari Carts
- Model untuk endpoint MVP yang ada di Transactions
- Controller untuk endpoint MVP yang ada di Transactions
- Routing untuk endpoint MVP yang ada di Transactions
Categories tidak boleh menyimpan kode yang sudah terdaftar
Penggunaan gorm unique tidak dapat mencegah data categories dengan kode yang sama, sehingga pada fungsi create perlu dilakukan pengecekan sebelum menyimpan ke dalam database.
MVP check
MVP checklist to check which feature that haven't finished yet
- 1. Customer dapat melihat list products berdasarkan product category
- 2. Customer dapat memasukkan product ke shopping cart
- 3. Customer dapat melihat list product yang telah ditambahkan pada shopping cart
- 4. Customer dapat menghapus list product pada shopping cart
- 5. Customer dapat melakukan checkout dan melakukan transaksi pembayaran
Relasi antara Products dengan Categories
Relasi antara Products dengan Categories membuat beberapa perubahan
- attribute kategori_id pada Products menjadi menggunakan gorm.Models relation (jika memungkinkan)
- adanya pengecekan pada proses penambahan data products baru untuk mengecek apakah data kategori yang diberikan tersimpan di database? return error jika tidak ditemukan.
Model, Controller, dan Routing dari Transactions
- Model untuk endpoint MVP yang ada di Transactions
- Controller untuk endpoint MVP yang ada di Transactions
- Routing untuk endpoint MVP yang ada di Transactions
Implementasi status Customer dan Admin pada User
- Berikan default nilai pada saat registrasi sebagai
customer
- Implementasikan pembuatan categories dan products memerlukan status
admin
ALTA-store RESTful API Design
- Tabel berisi route name, HTTP, deskripsi, dan admin dari semua route yang ada di ALTA-store
- Setiap route name memiliki Response Code apa saja
- Contoh return seperti apa
- Example request bodyt
Checkout dari Cart ke Transaksi Pembayaran
- User menembak endpoint untuk mengubah Items pada Cart menjadi Transactions
- Membuat Data Transactions baru
- Seluruh Items pada Cart, nilai Status berubah menjadi 1 dan nilai transactions_id juga berdasarkan data Transactions yang baru ditambahkan
- User menembak GetTransactions => menampilkan transaksi yang dimiliki oleh User
Penambahan data kategori baru menyimpan data kosong
Penambahan data kategori baru menyimpan data yang tidak sesuai dengan data yang diberikan pada form-data.
Form data:
key | value |
---|---|
kategori | Makanan |
kode | makanan |
Output sekarang:
{
"status": "success",
"users": {
"Id": "",
"NamaKategori": "",
"KodeKategori": ""
}
}
Output seharusnya:
{
"status": "success",
"users": {
"Id": 1,
"NamaKategori": "Makanan",
"KodeKategori": "makanan"
}
}
Refactor model user
Refactor model user untuk membuat proses berikut menjadi lebih terstruktur
- Pengecekan kesesuaian format email
- Pengecekan kesesuaian format password
- Pembaruan nilai token
Logging Middlewares
Implementasi Logging Middlewares
Model, Controller, dan Routing dari Tabel Categories
- Model untuk endpoint MVP yang ada di Tabel Categories
- Controller untuk endpoint MVP yang ada di Tabel Categories
- Routing untuk endpoint MVP yang ada di Tabel Categories
Model, Controller, dan Routing dari Tabel Users
- Model untuk endpoint MVP yang ada di Tabel Users
- Controller untuk endpoint MVP yang ada di Tabel Users
- Routing untuk endpoint MVP yang ada di Tabel Users
GetProducts hanya return 1 data
- Ada pengecekan jika tidak ada kategori yang diberikan, maka query semua data
- Jika ada kategori, maka query terhadap kategori yang diberikan (bisa Categories ID saja, atau Categories Kodes aja)
Endpoint yang diakses: http://localhost:8000/products
Ekspetasi Output:
{
"status": "success",
"users": [
{
"id": 1,
"produk": "Wafer Kaleng",
"stok": 0,
"deskripsi": "",
"harga": 42000,
"kode": 0,
"gambar": ""
},
{
"id": 2,
"produk": "Wafer Toples",
"stok": 62,
"deskripsi": "",
"harga": 25000,
"kode": 1,
"gambar": ""
}
]
}
Output:
{
"status": "success",
"users": [
{
"id": 1,
"produk": "Wafer Kaleng",
"stok": 0,
"deskripsi": "",
"harga": 42000,
"kode": 0,
"gambar": ""
}
]
}
Model, Controller, dan Routing dari Tabel Products
- Model untuk endpoint MVP yang ada di Tabel Products
- Controller untuk endpoint MVP yang ada di Tabel Products
- Routing untuk endpoint MVP yang ada di Tabel Products
Implementasi best practice dari endpoint pencarian detail suatu data
Contoh endpoint /users/:id
Output sekarang ketika ada data user:
{
"data": [
{
"id": 1,
"nama": "",
"email": "[email protected]",
"password": "601f1889667efaebb33b8c12572835da3f027f78",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE2MTQyMzA5MzUsInVzZXJJRCI6MX0.yW4M6pA6KjZCN28tLdJqj-OA9O9D6pidxQbIUS8GaIY",
"no_hp": "",
"foto": "",
"alamat": "",
"status": "",
"is_verified": false
}
],
"status": "success"
}
output sekarang ketika tidak ada data yang ditemukan:
{
"data": [],
"status": "success"
}
- cari tahu best practice
- jika ternyata belum sesuai dengan best practice, bisa diimplementasikan per modul.
Data products yang tersimpan di database berbeda dengan yang dikirim
Data yang dikirim:
key | value |
---|---|
produk | Wafer Kaleng |
stok | 25 |
harga | 42000 |
kode | 0 |
Data yang tersimpan di database:
{
"status": "success",
"users": {
"Id": "",
"NamaProduk": "",
"Stok": "25",
"Deskripsi": "",
"Harga": "42000",
"IdKategori": "",
"Gambar": ""
}
}
Data yang seharusnya tersimpan di database:
{
"status": "success",
"users": {
"Id": 1,
"NamaProduk": "Wafer Kaleng",
"Stok": 25,
"Deskripsi": "",
"Harga": 42000,
"IdKategori": 0,
"Gambar": ""
}
}
Melengkapi README.md
Transactions mengembalikan Transaction milik seluruh User
GetTransactionsControllers mengembalilkan Transactions milik seluruh User ketika User yang sedang login (Auth Token) belum memiliki data Transactions yang tersimpan.
Namun sebaliknya jika User yang sedang login sudah memiliki data Transactions, GetTransactionsControllers hanya mengembalikan Transactions milik User saja.
- Cari tahu penyebab terjadinya bug
- Tentukan metode penyelesaian
- Solve
ALTA-store ERD
- File PNG dari ERD
- File SQL dari ERD
Hard coded 11-products migration
Hard coded 11-products migration because git not detecting any different commit
Tambahkan Users pada Group JWT
- Tambahkan Users pada Group JWT
- Tidak perlu menambahkan "/jwt" pada Group JWT*
*perlu riset
Products dan Categories controllers mengembalikan interface users
Pada Products dan Categories saat ini mengembalikan format JSON seperti berikut ketika berhasi :
func GetProductControllers(c echo.Context) error {
id := c.Param("id")
prods, e := database.GetProduct(id)
if e != nil {
return echo.NewHTTPError(http.StatusBadRequest, e.Error())
}
return c.JSON(http.StatusOK, map[string]interface{}{
"status": "success",
"users": prods,
})
}
untuk membuat JSON lebih mudah dibaca oleh developer, perlu memberikan penamaan yang sesuai yakni products pada controller products dan categories pada controller categories. Sehingga developer tidak kebingungan saat melihat JSON yang memiliki nama users tetapi memiliki nilai products/categories.
Kumpulan Issue untuk di-report
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.