Giter VIP home page Giter VIP logo

dottoni's Introduction

dottoni

test online untuk proses hiring PT. Digdaya Olah Teknologi (DOT) Indonesia.

Sprint 1

  1. Integrasi dengan API province & city Rajaongkir (paket starter) https://rajaongkir.com/dokumentasi/starter

  2. Membuat artisan command​ yg melakukan fetching API data provinsi & kota dan data disimpan ke dalam database.

  3. Membuat REST API untuk pencarian provinsi & kota dengan endpoint berikut:

    a. [GET] /search/provinces?id={province_id}

    b. [GET] /search/cities?id={city_id} Data API pencarian ini mengambil dari database.

Sprint 2

Meningkatnya kebutuhan Web service, tim engineer memutuskan untuk membuat swapable implementation​ untuk endpoint pencarian provinsi dan kota.

  1. Membuat sumber data pencarian province & cities bisa melalui database​ atau direct API​ raja ongkir (swapable implementation). Proses swap implementasi dapat dilakukan melalui konfigurasi tanpa merubah source code yang sudah dibuat.

  2. Menyediakan API login agar endpoint pencarian hanya bisa diakses oleh authorized user saja.

  3. Membuat unit test / API test agar web service tetap reliable & maintainable

Cara Install Sprint 1

Clone project.

  git clone -b sprint_1 https://github.com/toniasep/dottoni.git sprint_1
  cd sprint_1

buat sebuah database di local computer

rename file .env.example menjadi .env.

Environment Variables

sesuaikan koneksi database dan tambahkan api key raja ongkir di file .env

RAJAONGKIR_API_KEY = 0df6d5bf733214af6c6644eb8717c92c

Run Project

jalankan perintah berikut.

  composer install
  php artisan key:generate
  php artisan migrate

fetching data kota dan provinsi dari api rajaongkir menggunakan perintah berikut.

  php artisan fetch:rajaongkir

ketik perintah berikut untuk menjalankan aplikasi.

  php artisan serve

API Reference

Get city

  GET /search/cities/
Parameter Type Description
id integer Required. Id of city

Get province

  GET /search/provinces/
Parameter Type Description
id integer Required. Id of province

Cara Install Sprint 2

Clone project.

  git clone -b sprint_2 https://github.com/toniasep/dottoni.git sprint_2
  cd sprint_2

buat sebuah database di local computer

rename file .env.example menjadi .env.

Environment Variables

sesuaikan koneksi database dan tambahkan api key raja ongkir di file .env

RAJAONGKIR_API_KEY = 0df6d5bf733214af6c6644eb8717c92c

Run Project

jalankan perintah berikut.

  composer install
  php artisan key:generate
  php artisan migrate --seed

fetching data kota dan provinsi dari api rajaongkir menggunakan perintah berikut.

  php artisan fetch:rajaongkir

generate key secret jwt auth

  php artisan jwt:secret

ketik perintah berikut untuk menjalankan aplikasi.

  php artisan serve

API Reference

Register User

  POST /api/auth/register
Parameter Type Description
name string Required. Name of user
email string Required. Email of user
password string Required. Password of user

Login User

  POST /api/auth/login
Parameter Type Description
email integer Required. Email of user
password integer Required. Password of user

Example Response

  {
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC9hdXRoXC9sb2dpbiIsImlhdCI6MTY2MTQwNTgxNSwiZXhwIjoxNjYxNDA5NDE1LCJuYmYiOjE2NjE0MDU4MTUsImp0aSI6IkhmR3BmZW50UGI5czcyY2QiLCJzdWIiOjEsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.X7SaYiEb4nXKItYyjdbGgxv-Bv4U5WjvvbLMt4lVWIw",
    "token_type": "bearer",
    "expires_in": 3600
  }

Get city

  GET /search/cities/
Parameter Type Description
id integer Required. Id of city
token string Required. access_token from response login user
source string Optional. api(default) : data drom api rajaongkir, db : from database app

Get province

  GET /search/provinces/
Parameter Type Description
id integer Required. Id of province
token string Required. access_token from response login user
source string Optional. api(default) : data drom api rajaongkir, db : from database app

Unit Test API

untuk melakukan unit test pada project, ketika perintah berikut.

  php artisan test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.