https://github.com/abiyamakruf/dicoding-forumapi
Proyek pertama dicoding course Menjadi Back-End Developer Expert dengan JavaScript. Mendapatkan nilai ?/5.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (3.8%) to scientific vocabulary
Repository
Proyek pertama dicoding course Menjadi Back-End Developer Expert dengan JavaScript. Mendapatkan nilai ?/5.
Basic Info
- Host: GitHub
- Owner: AbiyaMakruf
- Language: JavaScript
- Default Branch: main
- Size: 86.9 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
Proyek Pertama: Menjadi Back-End Developer Expert dengan JavaScript
Penilaian Proyek
Proyek ini berhasil mendapatkan bintang 4/5 pada submission dicoding course Menjadi Back-End Developer Expert dengan JavaScript.

Kriteria tambahan yang saya kerjakan sehingga mendapatkan nilai terbaik: 1. Menerapkan Automation Testing 2. Menerapkan Clean Architecture
Kriteria tambahan yang tidak saya kerjakan: 1. Menambahkan Balasan pada Komentar Thread 2. Menghapus Balasan pada Komentar Thread
📌 Forum API
Forum API adalah backend API untuk aplikasi forum yang memungkinkan pengguna untuk membuat akun, login, membuat thread, mengomentari thread, serta menambahkan balasan pada komentar dengan menerapkan Clean Architecture dan Automation Testing menggunakan Jest.
✨ Fitur yang Tersedia
✅ User Management (Registrasi, Login, Logout) ✅ Thread Management (Menambahkan, Melihat Thread) ✅ Comment Management (Menambahkan, Menghapus Komentar pada Thread) ✅ Reply Management (Menambahkan Balasan pada Komentar) ✅ Authentication (JWT Authentication) ✅ Automation Testing (Unit & Integration Testing dengan Jest) ✅ Database Migration (Menggunakan node-pg-migrate)
🚀 Cara Menjalankan Proyek
1️⃣ Persiapan Database
📌 Cara Membuat User PostgreSQL
- Masuk ke PostgreSQL sebagai
postgres:sh sudo -u postgres psql - Buat user baru:
sql CREATE USER developer WITH PASSWORD 'supersecretpassword'; - Beri hak akses superuser:
sql ALTER USER developer WITH SUPERUSER; - Buat database untuk user:
sql CREATE DATABASE developer OWNER developer;
📌 Cara Membuat Database Forum API
- Masuk ke PostgreSQL sebagai
developer:sh psql -U developer - Buat database:
sql CREATE DATABASE forumapi; CREATE DATABASE forumapi_test;
2️⃣ Menjalankan Migrasi Database
- Membuat migrasi baru:
sh npm run migrate create "create table users" npm run migrate create "create table authentications" - Menjalankan migrasi:
sh npm run migrate up npm run migrate:test up
3️⃣ Menjalankan Server
- Instal dependencies:
sh npm install - Jalankan server:
sh npm run start
📌 Struktur Proyek
bash
C:.
| .env
| .gitignore
| package-lock.json
| package.json
| README.md
| struktur_proyek.txt
|
+---config
| \---database
| test.json
|
+---migrations
| 1627983516963_create-table-users.js
| 1627983555473_create-table-authentications.js
| 1740899905329_create-table-threads.js
| 1740900890574_create-table-comments.js
| 1740901570792_update-table-comments.js
|
+---postman
| Forum API V1 Test.postman_collection.json
| Forum API V1 Test.postman_environment.json
|
+---src
| | app.js
| |
| +---Applications
| | +---security
| | \---use_case
| | | AddCommentUseCase.js
| | | AddThreadUseCase.js
| | | DeleteCommentUseCase.js
| | | GetThreadDetailsUseCase.js
| | |
| +---Commons
| | \---exceptions
| |
| +---Domains
| | +---authentications
| | +---comments
| | +---threads
| | +---users
| |
| +---Infrastructures
| | | container.js
| | +---database
| | +---http
| | \---repository
| |
| \---Interfaces
| \---http
| \---api
| +---authentications
| +---comments
| +---threads
| \---users
\---tests
AuthenticationsTableTestHelper.js
CommentsTableTestHelper.js
ThreadsTableTestHelper.js
UsersTableTestHelper.js
🔥 Pengujian (Automation Testing dengan Jest)
✅ Menjalankan Seluruh Pengujian
sh
npm test -- --coverage
✅ Menjalankan Pengujian Individual
Misalnya, hanya ingin menguji AddCommentUseCase.test.js:
sh
npm test -- Applications/use_case/_test/AddCommentUseCase.test.js
📮 API Endpoint Documentation (Postman)
Koleksi Postman tersedia di folder ``:
- Import file berikut ke Postman:
Forum API V1 Test.postman_collection.jsonForum API V1 Test.postman_environment.json
🛠 Teknologi yang Digunakan
- Node.js 🚀
- Hapi.js 🎯 (Framework backend)
- PostgreSQL 🗄️ (Database)
- Jest 🧪 (Unit & Integration Testing)
- JWT 🔐 (Authentication)
- Node-PG-Migrate 📦 (Migration Tool)
📌 Selamat Coding! 😃🔥
Owner
- Login: AbiyaMakruf
- Kind: user
- Location: Bandung, Indonesia
- Website: https://the-eventhorizon.com/
- Repositories: 2
- Profile: https://github.com/AbiyaMakruf
I am passionate about my work, highly organized, and a hard worker person
GitHub Events
Total
- Push event: 13
- Pull request event: 4
- Create event: 4
Last Year
- Push event: 13
- Pull request event: 4
- Create event: 4
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 0
- Total pull requests: 4
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 4
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- AbiyaMakruf (4)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- @types/jest ^26.0.24 development
- eslint ^7.30.0 development
- eslint-config-airbnb-base ^14.2.1 development
- eslint-plugin-import ^2.23.4 development
- jest ^27.0.6 development
- node-pg-migrate ^5.10.0 development
- nodemon ^2.0.9 development
- @hapi/hapi ^20.1.5
- @hapi/jwt ^2.0.1
- bcrypt ^5.0.1
- dotenv ^10.0.0
- instances-container ^2.0.3
- nanoid ^3.1.23
- pg ^8.6.0