Projects

IOT based Inventory Management System and Recipe Recommendation System

Game 2048 - A Strategic Tile Merging Puzzle

Android Application Development using Kivy Python

AI-Powered GroupMe Chatbot for Residential Management

Content extraction using web scraping for recipe dataset

IOT-Based Inventory Management System

Facial Expression Detection using CNN
Read More
La Creation - Business Portfolio Website

Recipe Recommendation System

Personal Portfolio Website
IOT based Inventory Management System and Recipe Recommendation System

Our team's culminating project during my final year of bachelor's in 2020 focused on revolutionizing the culinary experience for users. The primary objective of this undertaking was to empower users with a comprehensive list of recipes tailored to their preferences, encompassing likes, dislikes, allergies, previous choices, and other relevant parameters. Additionally, the system provided real-time information on the availability of all required ingredients for the selected recipes.
The project was strategically divided into four distinct sub-projects:
- Data Extraction for Recipe Database Creation: This phase involved the extraction of data from various websites to build an extensive and diverse recipe database. The aim was to create a robust foundation for the subsequent stages of the project.
- IOT-Based Inventory Management System: The integration of Internet of Things (IoT) technology was employed to develop a sophisticated inventory management system. This ensured efficient tracking and monitoring of available ingredients in real-time, contributing to the seamless execution of the recipe recommendation process.
- Recipe Recommendation System: A pivotal component of our project, this system utilized advanced algorithms to analyze user preferences, historical data, and other relevant parameters. It generated personalized recipe recommendations, enhancing the overall user experience by providing tailored culinary suggestions.
- Android Application Development: The final sub-project involved the creation of an intuitive Android application. This application served as the user interface, facilitating easy access to the recipe database, inventory information, and personalized recommendations. The goal was to provide a user-friendly platform that seamlessly integrated all components of the project.
Our multifaceted project employed a variety of cutting-edge technologies, both in hardware and software domains, to achieve its objectives.
Hardware Technologies:
- Raspberry Pi: Used as the core component for the IoT-based inventory management system, the Raspberry Pi facilitated seamless integration and communication between the various hardware and software components.
- HX711 and Load Cell: Incorporated into the hardware setup, these components played a crucial role in creating a precise and reliable system for measuring and monitoring ingredient quantities in real-time.
Software Technologies:
- Python: The primary programming language for developing various aspects of the project, Python was employed for data extraction, algorithmic development, and interfacing with the Raspberry Pi.
- Windows and Ubuntu: The project was designed to be versatile, supporting both Windows and Ubuntu operating systems. This ensured accessibility and usability across different platforms.
- Putty: Used for remote access to the Raspberry Pi, Putty facilitated the configuration and monitoring of the IoT-based inventory management system.
- Android: The user interface was developed as an Android application, offering a convenient platform for users to interact with the system, explore recipes, and receive personalized recommendations.
- Buildozer: Utilized in the Android application development phase, Buildozer helped streamline the process of converting Python scripts into Android applications, ensuring a smooth and efficient deployment.
In summary, our comprehensive approach aimed to transform the cooking experience by leveraging technology to provide users with personalized recipe suggestions while ensuring the availability of ingredients. The multi-faceted nature of the project, encompassing data extraction, IoT integration, algorithmic recommendation, and user interface development, reflects our commitment to delivering a holistic solution.
Technical Skills:
- Python
- IoT Systems
- Machine Learning
- Web Scraping (BeautifulSoup, Selenium)
- Kivy Framework
- Raspberry Pi Integration
- Load Cell Sensor Calibration
- Android App Development (Python-based)
Content extraction using web scraping for recipe dataset

At the forefront of the 'IoT-based Inventory Management System and Recipe Recommendation System' project lies a pivotal sub-component dedicated to data extraction, cleansing, and structuring. This phase is instrumental in creating a robust dataset tailored for recipe recommendation.
Utilizing powerful tools such as BS4 (BeautifulSoup), a Python web crawling library, and Selenium, we meticulously extracted data from various websites. This extracted data, comprising approximately 12,000 recipes spanning diverse cuisines, was meticulously stored in our database for seamless access and management.
BS4 played a crucial role in extracting intricate recipe details, including name, preparation and cooking times, servings, ingredient lists, and step-by-step instructions. Additionally, Selenium facilitated the calculation of nutritional values by sending ingredient lists to a designated website, extracting detailed nutritional information, and which was storing it in our database.
Subsequently, the collected data underwent rigorous cleaning processes to retain only pertinent information, aligning with project requirements. This refined dataset served as the foundation for our recommendation algorithm, enabling tailored recipe suggestions based on user preferences and dietary needs and available ingredients.
Technologies used:
Web Scraping, Algorithms, Python, Selenium
La Creation - Business Portfolio Website

La Creation stands as a premier destination for modular kitchen and furniture solutions, specializing in the design and installation of modular kitchens to elevate living spaces. Their sleek and innovative solutions are meticulously crafted to enhance both functionality and aesthetics in every home.
This website, a single-page application developed using TypeScript, Angular framework, and seamlessly hosted on Google Firebase, serves as an introduction to La Creation's exceptional services and innovative offerings.
With a curated portfolio, La Creation showcases its unwavering commitment to elevating living spaces through sleek design and expert craftsmanship, inviting visitors to explore and envision the possibilities for their homes.
Technologies used:
Typescript, Angular, Google Firebase, HTML, SCSS.
Game 2048 - A Strategic Tile Merging Puzzle

A captivating web-based tile merging game where tiles randomly appear in vacant spaces on the game board after the player makes a move. Tiles with identical values seamlessly merge, creating larger-valued tiles. The game initiates with tiles starting at a value of 2, and the ultimate objective is to skillfully combine tiles to reach the coveted 2048 to win the game.
To merge tiles which are having identical values, the player can slide all tiles in the entire grid in four directions - up, down, left, or right. After each move, a new tile appears on the board. The game requires planning, spatial awareness, and careful consideration of each move to prevent the grid from filling up.
The game's logic is coded in TypeScript, and the front-end is built with a combination of HTML, SCSS, and TypeScript. On the backend, Flask is utilized to handle the server-side operations. This technology stack ensures a seamless integration of game mechanics, user interface, and server functionality, providing a well-rounded and efficient implementation for the 2048 game.
IOT-Based Inventory Management System

The integration of Internet of Things (IoT) technology has revolutionized various industries, and one such application is the development of a sophisticated inventory management system. In the context described, IoT technology was leveraged to create a system for tracking and monitoring available ingredients in real-time, thus significantly enhancing the efficiency of the recipe recommendation process.
Central to this system is the utilization of weight sensors to precisely track the weights of different materials in the inventory. These weight sensors play a pivotal role in ensuring accurate and reliable data collection regarding the quantity of ingredients available. However, to effectively interface these weight sensors with digital systems, we use device such as the Raspberry Pi, and HX711 module.
The HX711 module serves as a crucial component in this setup, functioning as a 24-bit analog-to-digital converter. Its primary purpose is to convert the analog signals from the weight sensors into digital data that can be further processed by the Raspberry Pi. By doing so, it facilitates the seamless transmission of weight measurements to the Raspberry Pi, enabling subsequent calculations and analysis.
Once the weight sensor is connected to the HX711 module, and subsequently to the Raspberry Pi, a calibration process is initiated. Calibration is imperative to ensure the accuracy and reliability of the weight measurements obtained from the system. Typically, this involves collecting samples of known weights, such as 1 kg of a specific item, to establish a reference point for subsequent measurements.
To determine the weight of any item placed on the sensor accurately, sophisticated statistical techniques are employed. Specifically, the kernel density estimator is utilized on a bivariate distribution. By analyzing the distribution of these data points, including factors such as offset and value, the system identifies the set with the maximum density, thereby refining the calibration process. These plots illustrate how the data is distributed and how densely packed the dataset is concentrated. Contour lines on the plot further elucidate the density of data points, providing valuable insights into the accuracy and reliability of the system's weight measurements.

With the calibration process completed, the system becomes adept at accurately calculating the weight of any item placed on the sensor. This precision is crucial for the effective management of inventory, as it ensures that the system can provide real-time updates on the availability of ingredients. Consequently, this IoT-enabled inventory management system enhances operational efficiency, facilitates informed decision-making, and ultimately contributes to the seamless execution of the recipe recommendation process.
Recipe Recommendation System

In a landscape saturated with recommender systems, such as those employed by platforms like Youtube and Netflix, our team was inspired to create a similar prototype tailored specifically for suggesting food recipes to users. This system takes into account a variety of factors, including user preferences, past selections, available ingredients, and nutritional considerations, to generate personalized recipe recommendations. Each recipe is meticulously scored based on these parameters, culminating in a curated list of suggestions for the user's culinary exploration.
Our system continuously refines its recommendations through a self-learning algorithm, enabling it to adapt and improve over time. This iterative process ensures that the recommendations provided become increasingly efficient and precise as the system gains more insights into user preferences and behaviors.
Furthermore, our system operates in real-time, seamlessly processing data from sensors to manage the user's inventory. By leveraging sensor technology, the system accurately tracks the availability of ingredients, allowing for dynamic adjustments to the recommended recipes based on the user's current stock.
The recommendation process begins by presenting the user with a comprehensive list of recipes that align with their preferences. Additionally, the system intelligently filters out recipes containing ingredients that the user dislikes or is allergic to, ensuring a personalized and safe browsing experience. Subsequently, the system analyzes the user's current inventory, refining the list to only include recipes that can be prepared with the available ingredients.
In addition to personalized recommendations, our system also provides nutritional information for each recommended recipe. Users can easily access details such as calorie count, macronutrient breakdown, and other relevant nutritional data, empowering them to make informed decisions about their dietary choices.
To further enhance user satisfaction, our system maintains a record of recently prepared meals to prevent repetition. By prioritizing diversity in recommended options and minimizing the recurrence of recently used recipes, we aim to provide users with a rich and varied culinary experience.
In summary, our recommender system harnesses the power of machine learning and real-time data processing to deliver personalized recipe recommendations that cater to the unique preferences, nutritional needs, and constraints of each user. Through continuous self-improvement, adaptability, and nutritional insights, we strive to elevate the user's culinary journey and foster a deeper appreciation for exploration and discovery in the kitchen.
Technologies used:
Python, Machine Learning Algorithms
Android Application Development using Kivy Python

The Android application served as the central hub for our project, offering users an intuitive interface to access the recipe database, manage their inventory, and receive personalized recommendations. With a focus on seamless integration, our goal was to provide a user-friendly platform that encapsulated all project components effortlessly. Leveraging the Kivy library in Python, we meticulously designed and developed the application to meet the specific requirements of our project, ensuring both functionality and aesthetic appeal.
Utilizing the robust capabilities of Kivy, we crafted a versatile framework for building cross-platform applications, enabling smooth navigation and intuitive interaction. The application, once developed, was packaged into an APK file using Buildozer, streamlining the deployment process and facilitating easy installation on Android devices. Through this streamlined approach, we aimed to enhance convenience and accessibility, empowering users to engage with our project's features seamlessly.
Through the Android application, users could effortlessly explore the extensive recipe database, manage their inventory, and receive personalized recommendations tailored to their preferences and dietary requirements. By providing a cohesive and user-friendly interface accessible via Android devices, we endeavored to enrich the user's culinary journey, fostering a deeper appreciation for exploration and discovery in the kitchen.
Technologies used:
Python, Kivy, Linux, Buildozer, Android device
Personal Portfolio Website

Designed and developed a comprehensive portfolio website over the course of a year to showcase professional projects and technical expertise. The project emphasizes seamless data management, performance optimization, and engaging user experience through modern web technologies and cloud integration.
The website architecture was carefully planned using Figma for design mockups and user experience flow, ensuring every visual element reflects professional identity and technical capabilities. Following a mobile-first approach, the design prioritizes responsive layouts and touch-friendly interactions across all device sizes. The project evolved from an initial Flask implementation to a robust Django framework, providing better scalability and maintainable code structure for long-term growth.
The technical implementation leverages Django as the primary backend framework, hosted on Render for reliable cloud deployment. Firebase Firestore serves as the database solution, enabling real-time data synchronization for project updates and contact information management. This cloud-native approach ensures the portfolio remains dynamic and consistently up-to-date across all user interactions.
Development workflow optimization was achieved through Webpack integration, which streamlines both development and production processes by minifying assets and compiling SCSS to CSS and TypeScript to JavaScript. This setup significantly improves website performance through code splitting, lazy loading, and optimized bundle sizes. SEO management is implemented through Django's meta tag system, structured data markup, and URL optimization to enhance search engine visibility and professional discoverability.
A standout feature is the custom Django ORM admin application, developed as a separate project for comprehensive data manipulation and management. This administrative interface provides powerful content management capabilities, allowing for efficient project updates and portfolio maintenance without direct database access.
The website also serves as a hosting platform for various Python AI projects, demonstrating full-stack capabilities and showcasing machine learning implementations in real-world applications. GSAP animations enhance user engagement through smooth, professional transitions and interactive elements that bring the portfolio to life.
Technologies used:
Django, Python, Firebase Firestore, TypeScript, SCSS, HTML, Webpack, GSAP, Figma, Render
AI-Powered GroupMe Chatbot for Residential Management

Built an intelligent messaging system to streamline communication across 11+ residential building GroupMe groups. The system implements approval workflows and AI-powered message enhancement to ensure professional, accurate announcements reach residents consistently while maintaining proper management oversight.
Managing communications for multiple residential buildings was chaotic—manual copy-pasting across groups, grammar mistakes in official announcements, and messages sent without proper approval from leads. The solution features a centralized approval system where all messages go to an admin group first, get enhanced by Perplexity's Sonar AI model for grammar and tone, then broadcast to all building groups simultaneously upon approval.
The technical architecture uses FastAPI with webhook integration for real-time GroupMe message handling, while MongoDB stores message data and manages group relationships. A Next.js frontend provides the admin interface for approval management with real-time updates. Access control ensures only authorized leads can approve and manage broadcasts across building groups.
The system eliminated hours of manual work, reduced communication errors, and established professional standards for resident announcements. Management now has proper oversight of all communications while residents receive consistent, error-free updates across all building properties.
This project demonstrates full-stack development skills including FastAPI backend development, Next.js/React frontend, MongoDB database design, and real-time webhook integration. It also showcases AI integration through Perplexity Sonar model implementation for natural language processing and text enhancement, along with system architecture capabilities in microservices design, access control, scalable multi-group broadcasting, and production deployment.
Technologies used:
- Python
- FastAPI
- Next.js
- React
- MongoDB
- Webhooks
- GroupMe API
- Perplexity Sonar AI (LLM Integration)
- Natural Language Processing (NLP)
- Real-Time Systems