Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Aplikasi Voting Terdesentralisasi (Decentralized Voting dApp)

React Next.js Solidity MIT License

Suara Anda, Aman dan Transparan di Atas Blockchain

Selamat datang di proyek Aplikasi Voting Terdesentralisasi! Ini adalah sebuah aplikasi web3 (dApp) yang dibangun untuk menunjukkan bagaimana proses pemilihan dapat dilakukan secara aman, transparan, dan tidak dapat diubah (immutable) dengan memanfaatkan teknologi blockchain Ethereum.

Proyek ini adalah hasil dari proses belajar dan eksplorasi dalam membangun dApp dari awal, mulai dari penulisan smart contract hingga pengembangan antarmuka (frontend) yang interaktif.


🚀 Fitur Utama

  • Koneksi Dompet: Terintegrasi dengan MetaMask untuk menghubungkan dompet Ethereum pengguna dengan mudah.
  • Deteksi Perubahan Akun: Aplikasi secara otomatis mendeteksi jika pengguna mengganti akun di MetaMask dan memperbarui tampilan secara real-time.
  • Daftar Kandidat Dinamis: Menampilkan daftar kandidat langsung dari data yang tersimpan di smart contract.
  • Proses Voting On-Chain: Pengguna dapat memberikan suara, dan setiap suara akan dicatat sebagai transaksi di blockchain.
  • Panel Admin Khusus Owner:
    • Hanya pemilik kontrak yang dapat melihat dan mengakses panel admin.
    • Tambah Kandidat: Pemilik dapat menambahkan kandidat baru langsung dari antarmuka.
    • Tambah Voter: Pemilik dapat mendaftarkan alamat dompet yang berhak untuk memilih (whitelist).
  • Antarmuka Responsif: Dibangun dengan antarmuka yang modern dan nyaman digunakan di berbagai ukuran layar.

🛠️ Teknologi yang Digunakan

Proyek ini dibangun menggunakan teknologi modern di ekosistem web3 dan web2:

  • Smart Contract:
    • Solidity: Bahasa pemrograman untuk menulis smart contract.
  • Frontend:
    • Next.js: Framework React untuk aplikasi web modern.
    • React: Pustaka JavaScript untuk membangun antarmuka pengguna.
    • TypeScript: Menambahkan tipe statis pada JavaScript untuk kode yang lebih solid.
    • Ethers.js: Pustaka untuk berinteraksi dengan blockchain Ethereum.
    • Tailwind CSS: Framework CSS untuk desain yang cepat dan modern.

🏁 Memulai Proyek Secara Lokal

Untuk menjalankan proyek ini di mesin lokal Anda, ikuti langkah-langkah berikut:

Prasyarat

  • Node.js (v18 atau lebih baru)
  • npm atau yarn
  • Ekstensi MetaMask di browser Anda

Instalasi

  1. Clone repositori ini:

    git clone [URL_GITHUB_ANDA]
    cd frontend
  2. Install semua dependensi:

    npm install
  3. Deploy Smart Contract:

    • Deploy smart contract yang ada di direktori /contract ke jaringan tes seperti Sepolia, atau jaringan lokal (Hardhat/Anvil).
    • Setelah deployment berhasil, Anda akan mendapatkan alamat kontrak.
  4. Konfigurasi Frontend:

    • Buka file frontend/src/app/constants/index.ts.
    • Ganti placeholder "PASTE_YOUR_DEPLOYED_CONTRACT_ADDRESS_HERE" dengan alamat kontrak yang Anda dapatkan dari langkah sebelumnya.
    // src/app/constants/index.ts
    export const contractAddress = "0xYourDeployedContractAddressHere";
  5. Jalankan Server Pengembangan:

    npm run dev
  6. Buka Aplikasi: Buka http://localhost:3000 di browser Anda. Pastikan MetaMask Anda terhubung ke jaringan yang sama tempat Anda men-deploy kontrak.


🙌 Berkontribusi dan Memberi Masukan

Proyek ini adalah sebuah perjalanan belajar. Saya sangat terbuka untuk segala bentuk kontribusi, saran, dan ide untuk peningkatannya. Jika Anda menemukan bug, memiliki ide fitur baru, atau ingin memperbaiki bagian kode, jangan ragu untuk:

  1. Membuat Issue: Jelaskan bug atau ide Anda di bagian "Issues" repositori ini.
  2. Fork dan Buat Pull Request: Lakukan perubahan yang Anda inginkan dan ajukan Pull Request.

Setiap masukan sangat saya hargai!


📄 Lisensi

Proyek ini berada di bawah Lisensi MIT. Lihat file LICENSE untuk detail lebih lanjut.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages