Skip to content

Commit 76133fa

Browse files
committed
memasang tools eslint, memulai projek noteapp back end dengan kriteria
1 parent 451fe23 commit 76133fa

File tree

1,428 files changed

+247181
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,428 files changed

+247181
-14
lines changed

17g-buildRESTfulAPI-hapi.js

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
// } ,
2121
// lalu jalankan "npm run start"
2222
// output :
23-
/**
23+
/*
24+
*
2425
*
2526
2627
> nodemon server.js
@@ -30,7 +31,48 @@
3031
[nodemon] watching path(s): *.*
3132
[nodemon] watching extensions: js,mjs,json
3233
[nodemon] starting `node server.js`
33-
halo kita akan membuat RESTful API !
34+
halo kita akan membuat RESTful API !
3435
[nodemon] clean exit - waiting for changes before restart
3536
*/
36-
// nodemon berhasil dieksekusi ! kita tdk perlu menjalankan ulang npm run start karna dijalankan otomatis menggunakan nodemon
37+
// nodemon berhasil dieksekusi ! kita tdk perlu menjalankan ulang npm run start karna dijalankan otomatis menggunakan nodemon
38+
39+
// -- menggunakan tools eslint
40+
// eslint membantu kita menulis kode secara konsisten.
41+
// ada beberapa aturan dan gaya penulisan kode seperti
42+
// Airbnb JS code style : https://github.com/airbnb/javascript
43+
// google JS style : https://google.github.io/styleguide/jsguide.html
44+
// dan standardJS style : https://standardjs.com/
45+
46+
// utk menggunakan eslint, pasang package pada devDependencies proyek. caranya dengan
47+
// install packagenya "npm install eslint --save-dev"
48+
// setelah instal, akan muncul eslint terpasang di package.json
49+
50+
// sblum digunakan, perlu dikonfgurasi dulu dengan cara "npx elsint --init"
51+
// lalu ikuti petunjuk berikut:
52+
// 1. pilih would to use ESLint "to check, find problems and enforce code style"
53+
// 2. pilih type of modules "CommonJS"
54+
// 3. pilih framework "none of these"
55+
// 4. pilih does project use Ts "No"
56+
// 5. pilih where does run code "Node"
57+
// 6. pilih how define a style for project "Use a popular style guide"
58+
// 7. pilih style guide want to follow "google style"
59+
// 8. pilih which format your config to be in "JSON"
60+
// 9. sisanya pilih semua "Y"
61+
// setelah berhasil. cek ".eslintrc.json" di folder notes_app_back_end
62+
// tambahkan npm runner ke package.json
63+
// "lint" : "eslint ./"
64+
// lalu jalankan npm run lint , hasilnya akan seperti ini:
65+
/* -- output ---
66+
67+
> eslint ./
68+
69+
70+
/home/x260/Documents/dicoding-JS/notes-app-back-end/server.js
71+
1:55 error Newline required at end of file but not found eol-last
72+
73+
✖ 1 problem (1 error, 0 warnings)
74+
1 error and 0 warnings potentially fixable with the `--fix` option.
75+
*
76+
*/
77+
78+
// dengan error tsb kita dapat melihat letak kesalahan penulisan kode kita sesuai dg style guide yang kita pilih

18-kriteria-proyek.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// --- KRITERIA PROYEK ---
2+
// kita akan membangun RESTful API utk membuat aplikasi catatan sederhana
3+
// dimana aplikasi tsb berfungsi utk create, read, update dan delete atau dikenal dengan istlilah CRUD
4+
// dari segi client, sudah dideploy aplikasinya dengan alamat berikut:
5+
// http://notesapp-v1.dicodingacademy.com/
6+
// namun aplikasi tsb tidak bs digunakan, karna blm terhubung dg RESTful API
7+
8+
// kriteria 1- web server dapat menyimpan catatan
9+
// menyimpan tanpa perlu ke server, ckup ke memory server dalam bentuk array
10+
// berikut struktur objek catatannya :
11+
/**
12+
* {
13+
id: string,
14+
title: string,
15+
createdAt: string,
16+
updatedAt: string,
17+
tags: array of string,
18+
body: string,
19+
},
20+
*/
21+
22+
// contoh nyata sbb:
23+
/**
24+
* {
25+
id: 'notes-V1StGXR8_Z5jdHi6B-myT',
26+
title: 'Sejarah JavaScript',
27+
createdAt: '2020-12-23T23:00:09.686Z',
28+
updatedAt: '2020-12-23T23:00:09.686Z',
29+
tags: ['NodeJS', 'JavaScript'],
30+
body: 'JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape di bawah nama Mocha, yang nantinya namanya diganti menjadi LiveScript, dan akhirnya menjadi JavaScript. Navigator sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para pemrogram yang non-Java.',
31+
},
32+
*/
33+
// agar web server dpt simpan catatan, web server harus sediakan route dg path '/notes' dan metod POST
34+
// client akan kirim req ke path dan metod tsb dg bawa data JSON berikut pada req body
35+
/**
36+
* {
37+
"title": "Judul Catatan",
38+
"tags": ["Tag 1", "Tag 2"],
39+
"body": "Konten catatan"
40+
}
41+
*/
42+
// properti id, createdAt, dan updatedAt harus di olah di server, client tidak akan kirim itu
43+
// server harus memasikan id selalu unik
44+
// jika req client berhasil, respon dr server harus memiliki status code 201(created) dan kembalikan data berformat JSON sbb:
45+
/**
46+
* {
47+
"status": "success",
48+
"message": "Catatan berhasil ditambahkan",
49+
"data": {
50+
"noteId": "V09YExygSUYogwWJ"
51+
}
52+
}
53+
*/
54+
55+
// nilai dr properti nodeId diambil dari properti id yang dibuat unik
56+
// bila req gagal, kirim status code 500 dan kembalikan dg dta JSON dengan format :
57+
/**
58+
* {
59+
"status": "error",
60+
"message": "Catatan gagal untuk ditambahkan"
61+
}
62+
*/

notes-app-back-end/.eslintrc.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"env": {
3+
"browser": true,
4+
"commonjs": true,
5+
"es2021": true
6+
},
7+
"extends": "google",
8+
"overrides": [
9+
],
10+
"parserOptions": {
11+
"ecmaVersion": "latest"
12+
},
13+
"rules": {
14+
}
15+
}

notes-app-back-end/node_modules/.bin/acorn

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

notes-app-back-end/node_modules/.bin/eslint

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

notes-app-back-end/node_modules/.bin/js-yaml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

notes-app-back-end/node_modules/.bin/node-which

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

notes-app-back-end/node_modules/.bin/rimraf

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)