Aplikasi web berbasis AI untuk mengelola stok makanan di kulkas secara efisien dan cerdas
KulkasKu adalah aplikasi web modern yang mengintegrasikan teknologi untuk membantu pengguna mengelola stok makanan di kulkas mereka. Aplikasi ini menyediakan berbagai metode input yang inovatif seperti scan barcode, foto makanan dengan AI, dan scan struk belanja untuk otomatisasi penambahan item.
- π Smart Scanning: Barcode, foto makanan, dan struk belanja dengan AI
- π€ AI Prediction: Prediksi daya tahan makanan berdasarkan kondisi visual
- π± Responsive Design: Web app yang optimal di desktop dan mobile
- π Filter & Sorting: Pencarian dan pengurutan item yang advanced
- π Expiry Notification: Peringatan otomatis untuk item yang akan kadaluwarsa
- π³ Recipe Recommendation: Saran resep berdasarkan bahan yang tersedia
- π Analytics: Tracking interaksi dan usage patterns
- Framework: Next.js 15.3.5 dengan App Router
- UI Library: React 18 + TypeScript
- Styling: Tailwind CSS + Lucide Icons
- State Management: Zustand + React Hook Form
- HTTP Client: Axios
- Camera/Scanner: Browser APIs + ZXing
- Notifications: Sonner (Toast)
- Framework: Gin Web Framework
- Database: PostgreSQL dengan GORM
- Architecture: Clean Architecture + Service Layer
- File Upload: Multipart form handling
- API: RESTful dengan JSON responses
- Framework: FastAPI
- AI Services: Google Gemini AI
- HTTP Client: httpx untuk microservice communication
- Containerization: Docker + Docker Compose
- Environment: Environment variables configuration
- Development: Hot reload dengan Air (Go) dan Uvicorn (Python)
TeamName_KulkasKu/
βββ frontend/ # Next.js React App
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # Reusable components
β β βββ store/ # Zustand state management
β β βββ types/ # TypeScript type definitions
β β βββ utils/ # Utility functions
β βββ public/ # Static assets
β βββ package.json
βββ backend/ # Go API Server
β βββ cmd/ # Application entry points
β βββ controller/ # HTTP handlers
β βββ service/ # Business logic
β βββ database/ # Database models & migrations
β βββ config/ # Configuration
β βββ go.mod
βββ backend_ai/ # Python AI Service
β βββ app/
β β βββ api.py # FastAPI endpoints
β β βββ services/ # AI service implementations
β βββ requirements.txt
β βββ main.py
βββ README.md
- Node.js 18+ untuk frontend
- Go 1.21+ untuk backend
- Python 3.8+ untuk AI service
- PostgreSQL untuk database
- Google Cloud credentials untuk AI services
git clone https://github.com/your-repo/TeamName_KulkasKu.git
cd TeamName_KulkasKucd frontend
npm install
cp .env.local.example .env.local
# Edit .env.local dengan konfigurasi yang sesuai
npm run devcd backend
go mod download
cp .env.example .env
# Edit .env dengan database credentials
go run cmd/main.gocd backend_ai
python -m venv venv
source venv/Scripts/activate # Windows
# atau: source venv/bin/activate # Linux/Mac
pip install -r requirements.txt
cp .env.example .env
# Edit .env dengan Google API credentials
python main.py# Jalankan migrasi database
cd backend
go run seeder.goNEXT_PUBLIC_API_URL=http://localhost:5000DB_HOST=localhost
DB_PORT=5432
DB_USER=your_user
DB_PASSWORD=your_password
DB_NAME=kulkasku_db
PYTHON_AI_SERVICE_URL=http://localhost:8001GOOGLE_GEMINI_API_KEY=your_gemini_api_key
GOOGLE_CLOUD_VISION_CREDENTIALS_PATH=path/to/credentials.jsonJalankan semua services dengan Docker Compose:
# Build dan jalankan semua containers
docker-compose up --build
# Jalankan di background
docker-compose up -d
# Stop semua services
docker-compose downPOST /auth/register- Register user baruPOST /auth/login- Login userPOST /auth/logout- Logout userGET /profile- Get user profile dataPUT /profile/update- Update user profileGET /auth/refresh- Refresh JWT token
GET /items- Get all items dengan filter & sortingGET /item/fresh- Get fresh items (belum expired)GET /item/expired- Get expired itemsPOST /item/create- Create new itemPUT /item/update- Update existing itemDELETE /item/delete/:id- Delete itemGET /item/:id- Get single item by ID
POST /predict/image- Predict item dari foto dengan AIPOST /receipt/scan- Analyze receipt OCR untuk multiple itemsGET /barcode/:code- Get product info by barcode scanningPOST /ai/analyze-condition- Analyze kondisi makanan dari fotoPOST /ai/predict-expiry- Predict tanggal kadaluwarsa berdasarkan foto
GET /recipe/search- Search recipes dengan keywordGET /recipe/recommendations- Get recipe recommendations berdasarkan ingredientsGET /recipe/detail/:id- Get recipe details lengkapPOST /recipe/track- Track recipe interaction untuk analyticsGET /recipe/popular- Get popular recipesGET /recipe/categories- Get recipe categories
GET /cart/all- Get all shopping cartsGET /cart/:id- Get cart details by IDGET /cart/:id/items- Get cart items by cart IDPOST /cart/create- Create new shopping cartPOST /cart/item/create- Add item to shopping cartPUT /cart/update- Update cart informationDELETE /cart/delete/:id- Delete cart
GET /analytics/usage- Get user usage analyticsGET /analytics/waste- Get food waste statisticsGET /analytics/trends- Get food consumption trendsPOST /recommendation/track- Track recommendation interactionsGET /recommendation/history- Get recommendation history
GET /notifications- Get user notificationsPOST /notifications/mark-read/:id- Mark notification as readGET /notifications/expiry-alerts- Get expiry alert notificationsPUT /notifications/settings- Update notification preferences
POST /device/register- Register device for push notificationsGET /app/version- Get app version infoGET /app/offline-data- Get data for offline mode
GET /search/items- Advanced search untuk itemsGET /search/recipes- Advanced search untuk recipesGET /filters/categories- Get available item categoriesGET /filters/types- Get available item types
GET /export/items- Export user items dataPOST /import/items- Import items from fileGET /backup/create- Create user data backupPOST /backup/restore- Restore from backup
GET /health- Health check endpointGET /version- Get API versionGET /status- Get system status
- Tambah item makanan (manual/scan)
- Edit dan hapus item
- Filter berdasarkan nama dan tanggal
- Sorting berdasarkan nama/jumlah/kadaluwarsa
- Notifikasi pengingat kadaluwarsa
- Tampilan kategori (fresh/expired)
- Barcode scanning dengan ZXing
- AI image recognition (Google Vision + Gemini)
- Receipt OCR untuk multiple items
- Client-side image compression (90% quality)
- Real-time camera integration
- Prediksi daya tahan makanan
- Condition description dengan reasoning
- Confidence scoring
- Multiple AI service integration
- Recipe recommendations berdasarkan ingredients
- Detailed recipe view dengan ingredients & steps
- Recipe interaction tracking
- Integration dengan food inventory
- Responsive mobile-first design
- Toast notifications dengan auto-close
- Loading states dan error handling
- Progressive image loading
- Smooth animations dan transitions
- Fork repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
TeamName_KulkasKu - ITFest IPB 2025
- Frontend Development: React/Next.js implementation
- Backend Development: Go API server development
- AI Development: Python AI services integration
- UI/UX Design: Modern responsive interface design
- Google Gemini AI untuk advanced reasoning
- ZXing library untuk barcode scanning
- Next.js team untuk amazing React framework
- Gin framework untuk efficient Go web development
- FastAPI untuk modern Python API development