Aplikasi suara
Tantangan kamp kode gratis
Aplikasi Heroku - https://neckers-voteapp.herokuapp.com
Aplikasi ini dibangun di tumpukan utama. Ia menggunakan: MongoDB, Node, Express, React, React Router, Redux, Socket.io, Material-UI dan Google Charts. UI dapat digunakan di ponsel, tablet, dan desktop.
Catatan :
- Komponen server dan klien bersifat isomorfik .
- Otentikasi tidak menggunakan cookie tetapi campuran di klien (di store localstorage/redux) dan server, oleh socket.io, periksa.
- Jajak pendapat yang sudah terpilih disimpan di LocalStorage
Cerita pengguna
- Sebagai pengguna yang diautentikasi, saya dapat menyimpan jajak pendapat saya dan kembali lagi untuk mengaksesnya.
- Sebagai pengguna yang diautentikasi, saya dapat membagikan jajak pendapat saya dengan teman -teman saya.
- Sebagai pengguna yang diautentikasi, saya dapat melihat hasil agregat dari jajak pendapat saya.
- Sebagai pengguna yang diautentikasi, saya dapat menghapus jajak pendapat yang saya putuskan saya tidak mau lagi.
- Sebagai pengguna yang diautentikasi, saya dapat membuat jajak pendapat dengan sejumlah item yang mungkin.
- Sebagai pengguna yang tidak otentikasi atau diautentikasi, saya dapat melihat dan memberikan suara pada jajak pendapat semua orang.
- Sebagai pengguna yang tidak otentikasi atau diautentikasi, saya dapat melihat hasil jajak pendapat dalam bentuk bagan. (Ini dapat diimplementasikan menggunakan Chart.js atau Google Charts.)
- Sebagai pengguna yang diautentikasi, jika saya tidak suka opsi pada jajak pendapat, saya dapat membuat opsi baru.
Itu bug? Tidak, ini fitur!
Oke, mereka tidak benar -benar fitur, tetapi ada beberapa tindakan yang tidak terlalu bagus tetapi, untuk tantangan ini, saya tidak keberatan.
- Saya dapat memilih beberapa kali jika saya menghapus penyimpanan lokal saya atau saya melakukan akses dari perangkat lain (atau saya masuk dalam mode penyamaran, dll.).
- Ya, karena untuk melacak suara saya harus menyimpan beberapa informasi di sisi server dan, dengan pengguna tanpa login, saya harus melakukan kerja keras untuk memeriksanya. Jadi .. DB berada di kotak pasir yang ditenagai oleh MLAB dan saya tidak ingin lebih menekankannya.
- Saya tidak dapat mengedit atau menghapus opsi setelah jajak pendapat dipublikasikan.
- Tidak, Anda tidak bisa. Tindakan ini tidak ada dalam cerita pengguna.
- Saya tidak dapat memiliki beberapa login.
- Yap, setiap kali Anda melakukan login, Anda mendapatkan
session_id yang berbeda di kedua sisi: klien dan server.
- Saya tidak dapat mengedit data pribadi saya, seperti email, nick atau kata sandi
- Tidak, Anda tidak bisa. Tindakan ini tidak ada dalam cerita pengguna.
- Saya tidak bisa mengubah preferensi saya
- Ya, saya tidak suka fitur ini dengan cara khusus tetapi saya telah memutuskan untuk tidak menerapkan tindakan undo karena beberapa alasan keamanan.
process.env
- Mongouri : Kueri Anda untuk mengautentikasi di MongoDB Server
mongodb://<dbuser>:<dbpassword>@ds119508.mlab.com:19508/neckersbox - Node_env : misalnya
production . Catatan : Ini harus sama antara server dan klien.
Skrip
Untuk mengkompilasi atau menjalankan aplikasi ini, gunakan Gulp dan/atau NPM.
- Build :
gulp build - Watch :
gulp watch atau npm run watch - Bersihkan :
gulp clean - Mulai Server :
gulp start atau npm run start-server CATATAN : Biasanya start-server menyembunyikan pesan konsol, untuk menunjukkan kepada mereka bahwa Anda harus menjalankan npm run start-server-debug
Konfigurasi MongoDB
Untuk bekerja dengan benar aplikasi ini membutuhkan database MongoDB dengan dua koleksi:
- vote_users untuk menyimpan pengguna yang ditandatangani
- vote_polls untuk menyimpan jajak pendapat pengguna