FoodPort is a state-of-the-art online food delivery platform designed using a robust microservices architecture and advanced AI Recommendation Service. This project demonstrates deep full‑stack engineering expertise—from scalable backend services and microservices to a dynamic, responsive React frontend. It is built to deliver a seamless user experience while leveraging cutting‑edge AI recommendation systems to personalize food suggestions.
- Demo
- Key Features
- Architecture & Technologies
- AI Recommendation Service
- Microservices & Scalability
- Installation & Setup
- Usage
- Demo
- Project Structure
- Future Enhancements
- Contributing
- License
- Author
Watch our demo video to see FoodPort in action:
Click the image above to watch the demo video.
- AI-Driven Personalized Recommendations: Tailored food suggestions based on user preferences, dietary restrictions, and order history.
- End-to-End Microservices Architecture: Scalable services handling authentication, ordering, and AI recommendations.
- Modern UI/UX: A sleek, intuitive front-end built with React, Redux, and Tailwind CSS.
- Secure & Optimized Backend: Robust Express.js and MongoDB stack with authentication, rate limiting, and best security practices.
- Cloud Deployment: Hosted on Vercel (frontend), Render/Railway (backend & AI service), and MongoDB Atlas (database).
- Node.js & Express.js: Build a robust RESTful API for handling orders, user management, and more.
- MongoDB & Mongoose: A flexible NoSQL database that supports rapid prototyping and scalable data storage.
- Redis & Express-Session: Efficient session management and caching mechanisms.
- FastAPI (Python): High-performance API for our AI Recommendation Service.
- TensorFlow & FAISS: Advanced machine learning and similarity search frameworks for real‑time personalized recommendations.
- Microservices Architecture: Deployed as independent, containerized microservices ensuring high scalability and maintainability.
- React & Redux Toolkit: Modern, component-based UI with centralized state management.
- React Router: Seamless navigation between various application views.
- Tailwind CSS & MUI: Utility‑first styling for a modern, responsive design.
- Axios & React Hot Toast: Efficient HTTP requests and user-friendly notifications.
The AI Recommendation Service is the heart of FoodPort’s personalization. It uses advanced deep learning models (TensorFlow) and FAISS for high‑performance similarity search, enabling the following:
- Dynamic Embedding Generation: Utilize a trained deep learning model to generate product embeddings.
- Efficient Similarity Search: Leverage FAISS to quickly retrieve relevant products from a vast dataset.
- Personalized Filtering: Filters recommendations based on user-specific dietary preferences and preferred cuisine.
- Scalable Microservice: Built with FastAPI, designed for low latency and high concurrency, making it perfect for deployment in cloud environments and Kubernetes clusters.
- Independent Deployment: Each service (backend APIs, AI recommendation service) can be developed, deployed, and scaled independently.
- Containerization: Leverage Docker (and Kubernetes) to ensure consistent deployment across environments.
- CI/CD Pipeline: Automated testing, linting, and continuous deployment ensure rapid and reliable releases.
- Monitoring & Logging: Robust error handling, logging (PM2, centralized logging), and performance monitoring are integrated to maintain system resilience.
- Node.js (v14+)
- Python (3.8+)
- MongoDB
- Redis
- Docker (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/imunreal7/FoodPort.git cd FoodPort/backend -
Install dependencies:
npm install
-
Configure Environment Variables:
Create a
.envfile with variables such as:# Database Configuration DB_URI=your_database_uri # JWT Authentication JWT_SECRET=your_jwt_secret JWT_EXPIRES_IN=7d # Token expiry duration # Server Configuration PORT=5000 # NODE_ENV=production # Uncomment for production mode # API Rate Limiting RATE_LIMIT_MAX=100 # Maximum requests allowed per 15 minutes RATE_LIMIT_WINDOW=15m # External API URLs RECOMMENDATION_SERVICE_URL=your_recommendation_service_url # Redis Configuration REDIS_HOST=127.0.0.1 REDIS_PORT=6379 REDIS_TTL=3600 # Cache expiration time in seconds (1 hour) SESSION_SECRET=your_session_secret -
Start the Backend Server:
npm start
for dev:
npm run dev
-
Navigate to the recommendation service folder:
cd ../recommendation_service -
Install Python dependencies:
pip install -r requirements.txt
-
Ensure model and index files are in place, then run:
uvicorn main:app --host 0.0.0.0 --port 8000
-
Navigate to the client directory:
cd ../client -
Install dependencies:
npm install
-
Start the Frontend Application:
npm start
- Restaurant & Menu Exploration: Browse highly rated restaurants and detailed menus.
- Personalized Recommendations: Leverage the AI-powered recommendation engine for curated food suggestions.
- Easy Order Placement: Add items to your cart, proceed to checkout, and track orders seamlessly.
- User Profile Management: Update personal information, dietary preferences, and more.
- Advanced Analytics: Incorporate user behavior tracking and advanced analytics to refine AI recommendations further.
- Enhanced Security: Integrate multi-factor authentication and secure payment gateways.
- Jest Unit Test Cases: Implement Jest unit tests with 80%+ code coverage, which helps us reduce bug occurrence.
- Global Support: Implement internationalization (i18n) and multi-language support.
- Progressive Web App (PWA): Enable offline support and improved mobile performance with PWA features.
Contributions, improvements, and bug fixes are welcome! Please fork the repository and open a pull request with your proposed changes.
This project is licensed under the ISC License.
Aman Dubey Senior Software Engineer | Full-Stack Developer | AI Enthusiast GitHub | LinkedIn
Thank you for checking out FoodPort – a showcase of cutting-edge microservices, AI, and full-stack development expertise.


