Asisten AI berbasis chat untuk Universitas Muhammadiyah Jember yang dibangun dengan Next.js, Supabase, dan n8n.
- π¬ Percakapan AI yang natural dengan RAG (Retrieval-Augmented Generation)
- π Dukungan markdown lengkap untuk respons
- πΎ Riwayat percakapan tersimpan di database
- π΅ Musik latar dengan lirik
- π Mode gelap dan terang dengan skema warna kustom
- π€ Input suara dengan speech recognition
- π² PWA dengan install prompt cross-platform
- π Onboarding wizard untuk pengguna baru
- π± Responsive design untuk semua device
- Framework: Next.js 16
- Database: Supabase (PostgreSQL)
- AI Backend: n8n Webhook dengan RAG
- Styling: Tailwind CSS 4
- UI Components: Radix UI + shadcn/ui
- Deployment: Vercel
- Node.js 18+
- npm atau pnpm
- Akun Supabase
- n8n Workflow dengan RAG
-
Clone repository
git clone https://github.com/vickyymosafan/ai-smartchat.git cd ai-smartchat -
Install dependencies
npm install # atau pnpm install -
Setup environment variables
Salin
.env.exampleke.env.localdan isi dengan kredensial Anda:cp .env.example .env.local
Isi file
.env.local:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url SUPABASE_SERVICE_ROLE_KEY=your_service_role_key N8N_WEBHOOK_URL=your_n8n_webhook_url
-
Jalankan development server
npm run dev
-
Buka browser
Akses http://localhost:3000
-
Push ke GitHub
git add . git commit -m "Initial commit" git push origin main
-
Connect ke Vercel
- Login ke vercel.com
- Klik "Add New Project"
- Import repository dari GitHub
-
Set Environment Variables
Di Vercel Dashboard β Settings β Environment Variables:
NEXT_PUBLIC_SUPABASE_URLSUPABASE_SERVICE_ROLE_KEYN8N_WEBHOOK_URL
-
Deploy
Vercel akan otomatis build dan deploy
Untuk membuat aplikasi Android:
-
Tambah static export di
next.config.mjsconst nextConfig = { output: "export", // ... config lainnya };
-
Install Capacitor
npm install @capacitor/core @capacitor/cli @capacitor/android npx cap init "Smartchat AI" "com.umj.smartchat" --web-dir=out npx cap add android
-
Build dan Sync
npm run build npx cap sync android npx cap open android
-
Build APK di Android Studio
βββ app/
β βββ api/
β β βββ chat/ # Chat dengan AI
β β βββ chats/ # CRUD chat histories
β β βββ messages/ # Get messages
β β βββ music/ # Music data
β β βββ sessions/ # Session management
β βββ globals.css # Global styles & theme
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/
β βββ chat/ # Chat components
β βββ layout/ # Layout components
β βββ music/ # Music player
β βββ onboarding/ # User onboarding wizard
β βββ providers/ # Context providers
β βββ pwa/ # PWA install components
β βββ ui/ # UI components (shadcn)
βββ hooks/ # Custom React hooks
βββ lib/
β βββ pwa/ # PWA configuration
β βββ storage/ # LocalStorage utilities
β βββ supabase.ts # Supabase client
β βββ utils.ts # Utility functions
βββ public/
β βββ sw.js # Service Worker
βββ types/
βββ index.ts # TypeScript types
Theme dapat dikustomisasi di app/globals.css. Project menggunakan:
- Light mode: Courier New font, cyan/teal color scheme
- Dark mode: Source Code Pro font, cyan/teal color scheme
npm run dev # Development server
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint
npm run analyze # Analyze bundle size- Semua kredensial disimpan di environment variables
- Service role key tidak pernah di-expose ke client
- CORS headers dikonfigurasi untuk API routes
- Input validation di semua API endpoints
MIT License
Dikembangkan untuk Universitas Muhammadiyah Jember