A modern farm management platform designed for agricultural operations in the Sahel region of West Africa. FructoSahel empowers farmers in Burkina Faso, Mali, and Niger with AI-driven insights, comprehensive crop tracking, and financial management tools.
- Track multiple farms with detailed location data and field mapping
- Monitor crops through their complete lifecycle (planning, planting, growing, flowering, fruiting, harvesting)
- Manage fields with soil type and irrigation tracking
- Record crop activities including watering, fertilizing, and pest control
- Agronomist Agent: Get expert advice on crop care, pest management, and yield optimization
- Marketing Agent: Receive market insights and pricing recommendations
- Finance Agent: Financial planning and budget analysis assistance
- Powered by Claude AI with streaming responses
- Create and assign tasks to team members
- Priority levels (low, medium, high, urgent)
- Calendar view for scheduling
- Track task completion across farms and crops
- Record income and expenses in West African CFA franc (XOF)
- Track sales by crop type with buyer information
- Visual analytics with revenue vs expenses charts
- Monthly financial performance reports
- Detailed growing guides for Sahel-specific crops
- Bilingual content (English and French)
- Crop-specific tips for:
- Pineapple
- Cashew
- Avocado
- Mango
- Banana
- Papaya
- Revenue and expense trends
- Crop distribution visualization
- Task status overview
- Sales trends by crop type
- Framework: Next.js 16 with App Router
- UI: React 19, Tailwind CSS 4, Radix UI
- Database: Neon (PostgreSQL) with Drizzle ORM
- Authentication: Stack Auth
- AI: Anthropic Claude SDK
- Charts: Recharts
- Internationalization: next-intl (English/French)
- Testing: Vitest with React Testing Library
- Linting/Formatting: Biome
- Release: Semantic Release with Conventional Commits
- Node.js 20+
- pnpm (recommended) or npm
- Neon database account
- Anthropic API key (for AI features)
- Stack Auth project (for authentication)
- Clone the repository:
git clone https://github.com/codenificient/fructosahel.git
cd fructosahel- Install dependencies:
pnpm install- Set up environment variables:
cp .env.example .env.localConfigure the following variables:
# Database
DATABASE_URL=your_neon_database_url
# Authentication (Stack Auth)
NEXT_PUBLIC_STACK_PROJECT_ID=your_project_id
NEXT_PUBLIC_STACK_PUBLISHABLE_CLIENT_KEY=your_client_key
STACK_SECRET_SERVER_KEY=your_server_key
# AI
ANTHROPIC_API_KEY=your_anthropic_api_key- Run database migrations:
pnpm drizzle-kit push- Start the development server:
pnpm devOpen http://localhost:3000 to view the application.
fructosahel/
├── app/
│ ├── [locale]/ # Internationalized routes
│ │ ├── dashboard/ # Protected dashboard pages
│ │ ├── demo/ # Demo mode (no auth required)
│ │ ├── blog/ # Knowledge base
│ │ └── ...
│ └── api/ # API routes
│ ├── ai/ # AI chat endpoints
│ ├── farms/ # Farm CRUD
│ ├── crops/ # Crop management
│ ├── tasks/ # Task operations
│ └── ...
├── components/
│ ├── ui/ # Base UI components
│ ├── layout/ # Header, footer, sidebars
│ ├── charts/ # Analytics visualizations
│ └── calendar/ # Calendar components
├── lib/
│ └── db/ # Database schema and client
├── messages/ # i18n translations
└── public/ # Static assets
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm start |
Start production server |
pnpm lint |
Run Biome linter |
pnpm format |
Format code with Biome |
pnpm test |
Run tests |
pnpm test:ui |
Run tests with UI |
pnpm test:coverage |
Run tests with coverage |
Access the demo at /demo to explore features without authentication. Demo mode uses mock data to showcase:
- Farm and crop management interface
- Task calendar and management
- Financial tracking dashboards
- AI advisor conversations
- Team management
The application is configured for deployment on Vercel with Neon database integration.
vercel deploy- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes using conventional commits (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software. All rights reserved.
Built with care for Sahel farmers.