🌾 AgroConnect-KE: A comprehensive farm-to-table marketplace platform built with Angular 18, Node.js, TypeScript & PostgreSQL. Features farmer verification, MPesa payments, real-time dashboards, and seamless buyer-seller connections for Kenya's agricultural sector.
# AgroConnect-KE - Farm to Table Marketplace 🌾
AgroConnect-KE is a digital marketplace connecting local farmers directly with buyers, ensuring fresh produce reaches consumers while supporting sustainable farming practices in Kenya.
## Table of Contents
- Features
- Tech Stack
- Prerequisites
- Installation
- Running the Application
- Project Structure
- License
- Contact
## Features
### User Roles & Permissions
#### Buyer (Default Role)
- Account creation and management
- Browse products by categories
- Filter products by farmer
- Place orders with secure payment
- Track order status
- Request farmer status upgrade
#### Farmer
- Product listing and management
- Order fulfillment
- Sales analytics
- Inventory management
- All buyer privileges included
#### Admin
- User role management
- Category management
- System configuration
- Farmer request approval/rejection
- Platform oversight
### Core Features
- **User Authentication & Authorization**
- Secure signup and login
- Role-based access control
- JWT token authentication
- **Payment Integration**
- M-Pesa STK Push
- Real-time payment verification
- Order status updates
- **Product Management**
- Category-based organization
- Stock management
- Order tracking
- Sales analytics
## Tech Stack
### Backend
- **Runtime**: Node.js
- **Language**: TypeScript
- **Framework**: Express.js
- **Database**: PostgreSQL
- **ORM**: Prisma
- **Payment**: Intasend API
### Frontend
- **Framework**: Angular 18
- **Styling**: TailwindCSS
- **State Management**: Services & Observables
## Prerequisites
- Node.js (v18 or higher)
- npm (v9 or higher)
- Angular CLI
- PostgreSQL
## Installation
1. **Clone the Repository**
```bash
git clone
github.com
cd agro-connect
```
2. **Backend Setup**
```bash
cd backend
npm install
cp .env.example .env
# Configure your environment variables
npm run prisma:generate
npm run prisma:migrate
```
3. **Frontend Setup**
```bash
cd frontend
npm install
```
## …