🍳 Innovative Cooking App
🍳 Welcome to Our Latest Mobile App Concept: Designed to simplify your everyday cooking process. What sets this cooking app apart is its innovative use of an AI-camera, capable of automatically identifying ingredients and suggesting recipes based on available products. Our design is not only user-friendly but also packed with multiple features aimed at improving your cooking experience. For example, one standout feature is parallel cooking, where an AI algorithm creates an efficient plan for cooking multiple dishes together, ultimately saving users time and effort.
📱 Technological Stack: Our team has prepared a technological stack to support this concept, ensuring development and integration of functionalities. On the frontend, we use Swift and SwiftUI to create applications for iOS, macOS, watchOS, and tvOS, along with NukeUI for image loading and caching. Lottie is employed for playing animations in JSON format within web applications, while Apollo GraphQL facilitates convenient backend implementation and frontend integration. On the backend, we utilize Python for photo processing, classification, and AI services, alongside FastAPI for creating APIs. Absinthe, an Elixir framework, are used for rapid creation of GraphQL APIs, while Ecto serves as a database and query generator for interaction with various types of databases. For API implementation, we integrate GraphQL for backend and frontend integration, along with REST for ML models. PostgreSQL is used for handling large datasets.
🤖 AI Integration: To power the AI functionalities of our cooking app, we rely on TensorFlow/PyTorch for developing and implementing machine learning models, along with OpenCV for image processing and torchvision for processing images in machine learning. Faiss is used for conducting searches for similar vectors or training search algorithms on large datasets. Additionally, we apply graph processing to analyze and work with graph-based data structures. To manage ML process workloads over time, we use Celery as a message broker for distributing tasks.