Sebuah aplikasi manajemen user yang dibangun dengan TypeScript dan Faker.js untuk menghasilkan data dummy. Aplikasi ini menyediakan antarmuka terminal yang interaktif untuk melakukan operasi CRUD (Create, Read, Update, Delete) pada data user dan post.
· User Management: Tambah, edit, hapus, dan lihat user · Post Management: Setiap user dapat memiliki multiple posts · Data Persistence: Semua data disimpan dalam file users.json · Search Functionality: Cari user berdasarkan username atau email · Statistics: Tampilkan statistik data users dan posts · Interactive Terminal UI: Antarmuka yang user-friendly dengan warna dan emoji · Dummy Data Generation: Generate data realistis menggunakan Faker.js
· Node.js (v14 atau lebih tinggi) · npm atau yarn
- Clone atau download project ini
- Install dependencies
npm install- Initialize data (opsional - untuk data dummy awal)
npm run init🎮 Cara Menggunakan
Menjalankan Aplikasi
npm startGenerate Data Dummy
npm run seedReset Data ke Awal
npm run resetuser-management-system/
├── src/
│ ├── types.ts # Type definitions (User, Post)
│ ├── seed.ts # Data dummy generator
│ ├── user-service.ts # CRUD operations & file management
│ ├── terminal-app.ts # Terminal interface
│ ├── main.ts # Application entry point
│ └── init-data.ts # Data initialization
├── users.json # Main data file (auto-generated)
├── seed-data.json # Backup seed data
├── package.json
└── README.md
- 📋 List All Users
Menampilkan semua user dalam format tabel dengan informasi:
· ID · Username · Email · Jumlah Posts · Tanggal dibuat
- 👤 View User Details
Menampilkan detail lengkap user berdasarkan ID:
· Informasi user · List semua posts milik user
- ➕ Add New User
Menambahkan user baru dengan input:
· Username · Email · Password
- ✏️ Edit User
Mengedit data user berdasarkan ID:
· Update username, email, atau password · Field kosong akan mempertahankan nilai lama
- 🗑️ Delete User
Menghapus user berdasarkan ID dengan konfirmasi:
· Ketik "DELETE" untuk konfirmasi · Otomatis menghapus semua posts user tersebut
- 🔍 Search Users
Mencari user berdasarkan:
· Username · Email
- 📊 Statistics
Menampilkan statistik:
· Total users · Total posts · Users dengan posts · Rata-rata posts per user · User baru (7 hari terakhir)
- 💾 Reload from File
Memuat ulang data dari file users.json
- 🚪 Exit
Keluar dari aplikasi
User
interface User {
id: string;
username: string;
email: string;
password: string;
createdAt: Date;
posts: Post[];
}Post
interface Post {
id: string;
title: string;
tag: string;
content: string;
createdAt: Date;
publishedBy: string; // user ID
}users.json
File utama yang menyimpan semua data users dan posts. File ini akan:
· Dibuat otomatis saat pertama kali menjalankan aplikasi · Diupdate otomatis saat ada perubahan data · Dibaca setiap kali aplikasi dimulai
seed-data.json
Backup data dummy yang dihasilkan oleh seeder.
Build Project
npm run buildDevelopment Mode
npm run devDependencies Utama
· @faker-js/faker - Generate data dummy realistis · typescript - Type safety · chalk - Terminal styling dengan warna · cli-table3 - Tabel rapi di terminal · readline - Input interaktif
Error: File tidak ditemukan
· Jalankan npm run init untuk membuat file data awal
Error: Data corrupt
· Jalankan npm run reset untuk mengembalikan data ke keadaan awal
Error: Module tidak ditemukan
· Hapus folder node_modules dan jalankan npm install kembali
Menambah User Baru
- Pilih menu "3. Add New User"
- Input username, email, dan password
- Data otomatis tersimpan ke users.json
Mencari User
- Pilih menu "6. Search Users"
- Masukkan keyword username atau email
- Sistem akan menampilkan hasil pencarian
Melihat Statistik
- Pilih menu "7. Statistics"
- Sistem menampilkan overview data yang ada
- Fork project ini
- Buat feature branch (git checkout -b feature/AmazingFeature)
- Commit perubahan (git commit -m 'Add some AmazingFeature')
- Push ke branch (git push origin feature/AmazingFeature)
- Buat Pull Request
Distributed under the MIT License. See LICENSE for more information.
Jika mengalami masalah:
- Pastikan semua dependencies terinstall
- Cek bahwa Node.js versi 14+
- Pastikan file users.json ada di root directory
- Buka issue di repository jika masalah berlanjut
Happy Coding! 🚀

