NGOlink is a modern full-stack application designed to connect users with NGOs facilitating food donation and rescue. It leverages Google Gemini for intelligent classification and filtering of organizations, ensuring users find relevant food banks and community kitchens effectively.
- Framework: Next.js 16 (React 19)
- Styling: Tailwind CSS 4, Framer Motion
- Icons: Lucide React
- Language: TypeScript
- Framework: FastAPI
- Database: SQLite (SQLAlchemy)
- AI Integration: Google Gemini (Generative AI)
- External Services:
- Google Maps API (Geocoding)
- SerpAPI (Organic Search Results)
Before running the project, ensure you have the following installed:
- Node.js (v18+)
- Python (3.9+)
- API Keys:
GOOGLE_MAPS_API_KEYGEMINI_API_KEYSERP_API_KEY
-
Navigate to the backend directory:
cd backend -
Create a virtual environment (optional but recommended):
python -m venv venv # Windows venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Configure Environment Variables:
- Create a
.envfile in thebackenddirectory. - Add your API keys:
GOOGLE_MAPS_API_KEY=your_google_maps_key GEMINI_API_KEY=your_gemini_key SERP_API_KEY=your_serp_key
- Create a
-
Run the server:
uvicorn main:app --reload --port 8002
The backend API will be available at
http://localhost:8002. Swagger UI documentation:http://localhost:8002/docs
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Run the development server:
npm run dev
The frontend will be available at
http://localhost:3000.
You can run the provided test scripts to verify backend functionality:
test_flow.py: Tests the search and storage endpoints.test_gemini.py: Verifies the Gemini API integration.test_proxy_fix.py: Checks network connectivity and proxy settings.
cd backend
python test_flow.py