Aplikasi Scanmart adalah aplikasi web yang digunakan untuk alur kerja pembayaran mandiri, di mana pelanggan dapat memindai sendiri produk dan menambahkannya ke keranjang.
Aplikasi ini dibuat dengan bantuan create-react-app dan dilengkapi dengan perpustakaan/alat/paket berikut:
Kode disimpan di repositori GitHub, dan aplikasi diterapkan di Netlify. Netlify memulai proses build & deployment setiap kali ada perubahan, yaitu penggabungan PR di cabang main
. Konfigurasi Firebase (ID aplikasi, URL aplikasi, dll.) disimpan sebagai variabel lingkungan.
Untuk menjalankan aplikasi secara lokal, gulir ke bawah dan ikuti instruksi yang diberikan oleh CRA. Agar kamera berfungsi secara lokal, tambahkan file .env di root proyek dan masukkan nilai ini ke dalamnya HTTPS=true
. Bangun kembali aplikasi dan itu akan berfungsi.
Bahan yang digunakan untuk fungsionalitas & penelitian UI:
Terakhir, aplikasi barcoo menjadi inspirasi terbesar untuk UI dan UX. Saya pada dasarnya meninjau desain masing-masing aplikasi yang disebutkan di atas (jika tersedia) dan mencoba menemukan bagian yang paling sesuai untuk aplikasi saya. Setelah saya puas dengan riset UI/UX, saya mencoba mencari nama. Triknya adalah menemukan sesuatu yang masuk akal, namun belum pernah digunakan sebelumnya, yaitu memiliki domain yang tersedia. Saya memilih Scanmart yang merupakan produk dari dua kata "scan" dan "market" dan saya membeli domain " scanm.art " untuk memastikan keunikannya.
Proyek ini tersedia di scanm.art.
Saya tidak ingin kehilangan banyak waktu pada logo, jadi saya menggunakan logo yang sebagian besar bersifat tipografi. Ada batas sudut yang ditambahkan padanya, untuk mensimulasikan desain pemindai kode batang. Font yang digunakan adalah Poppins. Saya menggunakan font Google, karena gratis dan lisensinya mengizinkan penggunaan komersial.
Logo Utama | favicon |
Awal | Layar Utama | Kesalahan Kamera | Modal Pindai | Keranjang |
Folder src
adalah tempat semuanya berada.
folder assets
berisi gambar/ikon yang digunakan dalam proyek, serta gaya khusus & grafik yang digunakan dalam file README.
folder components
, sesuai dengan namanya, berisi komponen yang digunakan dalam proyek ini. Masing-masing disimpan dalam folder terpisah.
folder context
berisi konteks Keranjang & Offcanvas yang berfungsi untuk memberikan informasi tentang sidebar dan item yang dipindai di seluruh aplikasi.
Folder utils
berisi satu fungsi utilitas.
folder views
berisi tampilan yang digunakan dalam aplikasi ini.
Seluruh aplikasi disusun sedemikian rupa, di mana penyedia konteks membungkus rute dan rute tersebut berisi satu tata letak yang selanjutnya menyajikan tampilan, yaitu sub-rutenya.
.
|-- README.md
|-- netlify.toml
|-- package-lock.json
|-- package.json
|-- public
| |-- index.html
| |-- manifest.json
| |-- miniLogo.png
| `-- robots.txt
`-- src
|-- App.css
|-- App.js
|-- App.test.js
|-- assets
| |-- docs
| | |-- Basket.png
| | |-- CameraError.png
| | |-- MainScreen.png
| | |-- ScanModal.png
| | |-- Start.png
| | |-- faviconPresentation.png
| | |-- logo.ai
| | `-- logoPresentation.png
| |-- img
| | |-- bag.svg
| | |-- barcode.svg
| | |-- box.svg
| | `-- logo.png
| `-- scss
| |-- custom.css
| |-- custom.css.map
| `-- custom.scss
|-- components
| |-- BarcodeScanner
| | `-- BarcodeScanner.js
| |-- CartItem
| | |-- CartItem.js
| | `-- CartItem.stories.js
| |-- Controls
| | |-- Controls.js
| | `-- Controls.stories.js
| |-- Header
| | `-- Header.js
| |-- ItemModal
| | `-- ItemModal.js
| |-- Offcanvas
| | `-- OffcanvasComponent.js
| `-- VideoComponent
| `-- VideoComponent.js
|-- context
| |-- BasketContext.js
| `-- OffcanvasContext.js
|-- firebase.js
|-- index.js
|-- logo.svg
|-- reportWebVitals.js
|-- setupTests.js
|-- stories
| |-- Configure.mdx
| `-- assets
| |-- accessibility.png
| |-- accessibility.svg
| |-- addon-library.png
| |-- assets.png
| |-- avif-test-image.avif
| |-- context.png
| |-- discord.svg
| |-- docs.png
| |-- figma-plugin.png
| |-- github.svg
| |-- share.png
| |-- styling.png
| |-- testing.png
| |-- theming.png
| |-- tutorials.svg
| `-- youtube.svg
|-- utils
| `-- removeVideoElement.js
`-- views
|-- Main
| `-- Main.js
`-- Start
`-- Start.js
Proyek ini di-bootstrap dengan Create React App.
Di direktori proyek, Anda dapat menjalankan:
npm start
Menjalankan aplikasi dalam mode pengembangan.
Buka http://localhost:3000 untuk melihatnya di browser Anda.
Halaman akan dimuat ulang saat Anda melakukan perubahan.
Anda mungkin juga melihat kesalahan lint apa pun di konsol.
npm test
Meluncurkan test runner dalam mode jam tangan interaktif.
Lihat bagian tentang menjalankan pengujian untuk informasi lebih lanjut.
npm run build
Membangun aplikasi untuk produksi ke folder build
.
Ini menggabungkan React dengan benar dalam mode produksi dan mengoptimalkan build untuk kinerja terbaik.
Build diperkecil dan nama file menyertakan hash.
Aplikasi Anda siap untuk diterapkan!
Lihat bagian tentang penerapan untuk informasi selengkapnya.
npm run eject
Catatan: ini adalah operasi satu arah. Sekali Anda eject
, Anda tidak dapat kembali!
Jika Anda tidak puas dengan alat build dan pilihan konfigurasi, Anda dapat eject
kapan saja. Perintah ini akan menghapus ketergantungan build tunggal dari proyek Anda.
Sebaliknya, ini akan menyalin semua file konfigurasi dan dependensi transitif (webpack, Babel, ESLint, dll) langsung ke proyek Anda sehingga Anda memiliki kendali penuh atas semuanya. Semua perintah kecuali eject
akan tetap berfungsi, tetapi perintah tersebut akan mengarah ke skrip yang disalin sehingga Anda dapat mengubahnya. Pada titik ini Anda sendirian.
Anda tidak perlu pernah menggunakan eject
. Kumpulan fitur yang dikurasi cocok untuk penerapan kecil dan menengah, dan Anda tidak merasa berkewajiban untuk menggunakan fitur ini. Namun kami memahami bahwa alat ini tidak akan berguna jika Anda tidak dapat menyesuaikannya saat Anda siap menggunakannya.
Anda dapat mempelajari lebih lanjut di dokumentasi Buat Aplikasi React.
Untuk mempelajari React, lihat dokumentasi React.
Bagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/code-splitting
Bagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
Bagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
Bagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/advanced-configuration
Bagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/deployment
npm run build
gagal diperkecilBagian ini telah dipindahkan ke sini: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify