RBC HubHack 2025 Submission
- Project Manager - Jeremy Paruch
- Inspiration - Sarah Poulin
- DBA - Merrick Mackay
- DBA - Mohammad Shakhawat Hossain
- Backend Developer - Justin Kaulback
Prerequisites: Node.js 14+ and npm installed
# 1. Clone and navigate
git clone https://github.com/JKaulback/food-safe-ns.git
cd food-safe-ns
# 2. Install all dependencies
cd server && npm install
cd ../client && npm install
# 3. Start both applications (use 2 terminals)
# Terminal 1 - Backend
cd server && npm start
# Terminal 2 - Frontend
cd client && npm start🌐 Access: http://localhost:3001 (auto-opens in browser)
A web application that helps Nova Scotians find food banks and browse their available inventory with advanced filtering options for allergens and dietary requirements.
- 🗺️ Smart Search - Customizable radius (5-100km) with location-based results
- 🔍 Advanced Filtering - Allergens, dietary requirements, cultural accommodations
- 📦 Live Inventory - Real-time stock with product images and allergen warnings
- 🌐 Rich Product Data - OpenFoodFacts API integration for enhanced information
- ♿ Accessible Design - Built with accessibility standards in mind
Frontend: React.js • Backend: Node.js/Express • APIs: OpenFoodFacts • Data: Enhanced JSON samples
- Server: Runs on port 5000 by default
- Client: Pre-configured for port 3001 in
client/.env - API URL: Already set to
http://localhost:5000
- Clone:
git clone https://github.com/JKaulback/food-safe-ns.git - Server Setup:
cd server && npm install && npm start - Client Setup:
cd ../client && npm install && npm start - Access: http://localhost:3001
- Frontend: http://localhost:3001
- Backend API: http://localhost:5000/api/foodbanks
food-safe-ns/
├── client/ # React frontend application
│ ├── public/ # Static files
│ ├── src/
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ └── utils/ # Utility functions
│ └── package.json
├── server/ # Node.js backend application
│ ├── data/ # Sample JSON data
│ ├── routes/ # Express routes
│ ├── services/ # Business logic services
│ ├── utils/ # Server utilities
│ └── package.json
└── README.md
🔍 Search: Enter address → Set radius (5-100km) → Apply filters → Search
📋 Browse: Click food bank → View "Inventory" tab → Filter by category/allergens
Key Scripts:
npm start- Run production serversnpm run dev- Development mode (server only)npm run build- Build for production (client only)
API Endpoints:
/api/foodbanks- Food bank search & filtering/api/foodbanks/:id- Specific food bank details/api/inventory/:foodBankId- Food bank inventory
Sample Data: Halifax-area food banks with realistic inventory in server/data/
Port Conflicts: Change ports in .env files
Dependencies: Delete node_modules, run npm install again
CORS Errors: Ensure both servers running + correct API URL
Build Issues: Use Node.js 14+
Educational project for RBC HubHack 2025
Made with ❤️ for Nova Scotia's food security initiative