GoMealSaver is a web-based application for selling leftover / unsold food.
Durasi Pengerjaan Projek: 19 November 2024 - 19 Desember 2024
Latar belakang dari proyek ini berangkat dari tingginya tingkat food wasteglobal yang mencapai 931 juta ton setiap tahunnya, padahal sebagian besarmakanan tersebut masih bisa dikonsumsi. Penjual seringkali tidak memiliki saluranuntuk menjual makanan sisa mereka, sementara banyak konsumen yangsebenarnya berminat untuk membelinya dengan harga lebih murah. Kami memilihproyek ini karena percaya bahwa platform digital dapat menjadi solusi untukmasalah food waste dengan menghubungkan konsumen dan penjual secaralangsung.
Website ini diharapkan dapat menjadi "painkiller" dengan memberikanmanfaat nyata kepada para penjual dalam mengurangi food waste sekaligusmemberikan keuntungan finansial dan lingkungan. Bagi konsumen, platform inimenawarkan akses ke makanan yang lebih terjangkau, sehingga dapatberkontribusi dalam mengurangi dampak food waste secara kolektif. Kamimengadopsi metode design thinking untuk memastikan bahwa platform iniberorientasi pada kebutuhan pengguna dan memberikan dampak yang maksimal.
Berikut adalah beberapa fitur terkini yang dimiliki GoMealSaver:
- Autentikasi pengguna dengan Google & Next Auth
- Registrasi Akun
- ke amanan recaptcha
- Otorisasi pengguna
- Perlindungan rute
- Profil pengguna dengan daftar pengguna
- Daftar makanan CRUD
- Unggahan gambar makanan
- Pencarian makanan
- Pesan internal dengan notifikasi 'belum dibaca'
- Order Makanan (User)
- Bukti Trankaksi (Pemilik / penjual)
- Prosess / Batalkan pesanan (pemilik / penjual)
- Halaman About
- Galeri gambar dengan penghapusan foto
- Peta kotak peta
- Penandaan makanan / makanan yang disimpan
- Berbagi makanan ke media sosial
- Desain responsif (Tailwind)
- Halaman 404 khusus
- Next.js Action
- Next.js
- React
- Tailwind CSS
- MongoDB
- Mongoose
- NextAuth.js
- React Icons
- Cloudinary
- Mapbox
- OpenCage
- Maptiler
- React Spinners
- React Toastify
- React Share
- reCAPTCHA
- bcryptjs
- framer-motion
- typed.js
- React Slick
- Git
- Node.js
- npm (Node Package Manager)
https://github.com/Go-Meal-Saver/GoMealSaver.git cd GoMealSaver
Installation
Instal dependensi proyek menggunakan npm:
npm i
Set Up Environment Variables Buat berkas baru bernama .env di root proyek Anda dan tambahkan konten berikut:
MONGODB_URL =
NEXT_PUBLIC_DOMAIN =
NEXT_PUBLIC_API_DOMAIN =
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
NEXTAUTH_URL=
NEXTAUTH_URL_INTERNAL=
NEXTAUTH_SECRET=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
NEXT_PUBLIC_OPENCAGE_API_KEY=
NEXT_PUBLIC_MAPTILER_API_KEY=
NEXT_PUBLIC_RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=
Ubah nama env.example
file ke .env
dan isi env berikut ini:
- Dapatkan string koneksi MongoDB Anda dari klaster MongoDB Atlas Anda dan tambahkan ke
MONGODB_URI
. - Dapatkan ID dan rahasia klien Google Anda dari akun konsol Google dan tambahkan ke
GOOGLE_CLIENT_ID
danGOOGLE_CLIENT_SECRET
. - Tambahkan rahasia ke
NEXTAUTH_SECRET
. Anda dapat membuat dengan perintah berikut ini:openssl rand -base64 32
- Dapatkan nama cloud Cloudinary, kunci API, dan rahasia API dari akun Cloudinary Anda dan tambahkan ke
CLOUDINARY_CLOUD_NAME
,CLOUDINARY_API_KEY
, danCLOUDINARY_API_SECRET
. - Dapatkan token OPENCAGE Anda dari akun OPENCAGE Anda dan tambahkan ke
NEXT_PUBLIC_OPENCAGE_API_KEY
. - Dapatkan kunci API Google MAPTILER Anda dari MAPTILER Anda dan tambahkan ke
NEXT_PUBLIC_MAPTILER_API_KEY
. - Dapatkan kunci API Google RECAPTCHA Anda dari RECAPTCHA Anda dan tambahkan ke
RECAPTCHA_SECRET_KEY
.
Menjalankan Proyek
npm run dev
Buka http://localhost:3000 di browser Anda untuk melihat proyek
Harsena Argretya | Muhamad Akbar Algifahri | Dody Pramansyah Sianipar | Abigael Haidar Cyayyidina Avianto |
SIB Front-End and Back-End Developer Cycle 7 at Dicoding Indonesia | SIB Front-End and Back-End Developer Cycle 7 at Dicoding Indonesia | SIB Front-End and Back-End Developer Cycle 7 at Dicoding Indonesia | SIB Front-End and Back-End Developer Cycle 7 at Dicoding Indonesia |
GitHub | GitHub | GitHub | GitHub |
This project is licensed under the MIT License - see the LICENSE.md file for details