Synaplan
기업을 위한 오픈소스 AI 플랫폼
케냐 농가용 가금 관리 플랫폼, 배치 추적·예방접종·마켓플레이스·WhatsApp·커뮤니티·AI 사료 계산 제공
Built a full-stack poultry farm management platform for Kenyan farmers featuring batch tracking, vaccination schedules, marketplace, WhatsApp integration, community chat with reactions, AI feed cal
비즈니스JavaScript · PLpgSQLGitHub @ndereba2business-glitch온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Built a full-stack poultry farm management platform for Kenyan farmers featuring batch tracking, vaccination schedules, marketplace, WhatsApp integration, community chat with reactions, AI feed calculator, and offline PWA support.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A web app for Kenyan poultry farmers, the vets who look after their flocks and the suppliers who sell them feed, chicks and equipment. It is built mobile-first for mid-range and low-end Android phones on slow or unreliable mobile data.
Live at https://farmers-connect-azure.vercel.app
| Role | What they can do |
|---|---|
| Farmer | Track batches and vaccinations, plan tasks, work out feed with the feed calculator, keep a farm photo gallery, find suppliers in the marketplace, book and message a vet (Ask Vet), join the community chat and ask Clucky, the AI farm assistant |
| Vet | Vet dashboard, appointments (accept or decline visits), the farmers they work with and their medical records, and a vet profile that an admin verifies |
| Supplier | Their own dashboard, product listings with photos, stock and prices, and a supplier profile that an admin verifies |
| Admin | Approve vets and suppliers, moderate the community (reports, paused members, blocked words), take down marketplace listings, answer reports and account requests, and see Clucky usage and platform stats |
IN_APP_ORDERING in src/config/features.js)./delete-account on the web.No money moves through the app yet. Payments, in-app ordering and the revenue pages are planned for version 2.1.
This is not an offline app. It is built to stay usable on a bad connection (small pages, clear loading states, a retry button instead of lost input), not to work with no connection at all.
src/styles/tokens.css; icons from lucide-react; charts from rechartsclucky edge functionmain deploys to production)You need Node.js 20 or newer and a Supabase project.
git clone https://github.com/ndereba2business-glitch/farmers_connect.git
cd farmers_connect
npm ci
Create a .env file in the project root:
VITE_SUPABASE_URL=https://<your-project>.supabase.co
VITE_SUPABASE_ANON_KEY=<your-anon-key>
These two values are public by design. Never put a secret in a VITE_
variable: everything with that prefix is shipped to every browser.
Then start the dev server:
npm run dev
The whole schema history lives in supabase/migrations/. The Supabase CLI is
installed with the project's dev dependencies; once it is linked to your
project:
npx supabase db push
Three functions run on Supabase. Their secrets stay there and never reach the browser.
npx supabase functions deploy clucky --use-api
npx supabase functions deploy delete-account --use-api
npx supabase functions deploy account-request --use-api
npx supabase secrets set GEMINI_API_KEY=<your-key>
# optional
npx supabase secrets set GEMINI_MODEL=gemini-3.5-flash-lite
npx supabase secrets set CLUCKY_DAILY_LIMIT=15
Merging to main deploys the web app, not the functions: redeploy a function
whenever its code changes.
The Google button appears on its own once the Google provider is enabled in
the Supabase dashboard (Authentication → Providers). Where people land after
signing in is decided by Supabase's URL Configuration; npm run check:auth-urls
reports whether it is right.
| Command | What it does |
|---|---|
npm run dev | Start the dev server |
npm run build | Production build |
npm run lint | ESLint |
npm test | Unit tests and end-to-end tests (no database needed) |
npm run test:unit | Pure logic in src/lib and the Clucky prompt |
npm run test:e2e | The real app in Chromium against an in-memory mock of Supabase, including 320, 360, 768 and 1280px layout checks and a contrast check of every page in both themes |
npm run test:security | Access rules against the linked database (rolls back, leaves no data) |
npm run test:live | Real sign-in journeys against the live project (needs test accounts in .env.test.local) |
npm run test:clucky-live | Checks the deployed Clucky function |
npm run test:account-live | Checks account deletion on the live project, on throwaway accounts it creates and removes |
npm run check:secrets | Builds the app and checks the bundle for leaked secrets |
npm run check:repo | Checks that no login, API key or key file is tracked in the repository |
npm run check:auth-urls | Checks where sign-in returns people |
src/
pages/ one file per route (routes are defined in src/App.jsx)
legal/ privacy policy, terms, delete-account page
components/ shared pieces: layout, route guard, notifications bell, dialogs, onboarding tour
supplier/ supplier shell, hooks, form validation
landing/ public landing page sections and photo credits
context/ AuthContext (session, role, identity), ThemeContext and ToastContext
lib/ Supabase client and feature logic (feed plan, community, Clucky, notifications, account, safety)
config/ feature switches and the operator details the policy pages print
styles/ design tokens, theme palette and responsive utilities
supabase/
migrations/ schema history
functions/ edge functions (clucky, delete-account, account-request)
tests/ security checks
tests/
unit/ pure logic tests
e2e/ browser tests against a mock backend
live/ checks against the deployed project
scripts/ icon and photo builders, security and secret checks
docs/play-store/ the Google Play release pack
android/ settings for the Android wrapper (no Android project or key is kept here)
CLAUDE.md holds the working rules for the codebase and the mistakes already
made once.
app_metadata, which users cannot edit. Vets
and suppliers are trusted only after an admin verifies them.The full review, with what was fixed and what is still open, is docs/play-store/security-audit.md.
The app is being prepared for Google Play as a Trusted Web Activity. No Android build exists yet and nothing has been submitted. docs/play-store/README.md says exactly what is done, what is not, and what only the owner can do.
These screenshots are from an earlier version of the app and will be replaced with current ones.