Skip to content

The group project for CS 151: Object Oriented Design course at San José State University.

Notifications You must be signed in to change notification settings

erik-ksth/CS151-RecipeGenius

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The group project for CS 151: Object Oriented Design course at San José State University.

Team Information

  • Group 5
  • Team KMH, team members: Kaung Sithu Hein (017376619), May Sabai (017390438), Hardik Gauba (016038971)

Contribution

Proposal Contributions

  • All three team members demonstrated exceptional collaboration and equal participation in the proposal phase of the Recipe Genius project. Everyone jointly engaged in idea conceptualization, harnessing their diverse perspectives to refine the project's vision and objectives. Each member contributed significantly to the research process, collectively analyzing market trends, potential user needs, and existing competitive solutions. This collaborative effort ensured a well-rounded and thorough understanding of the project's context. In drafting the proposal, they equally divided responsibilities, ensuring that each voice and viewpoint was represented. Everyone’s combined efforts in writing and revising the proposal resulted in a comprehensive and cohesive plan that laid a strong foundation for the project's subsequent phases.

  • Presentation Contributions

  • Kaung Sithu Hein(Erik) : In our Recipe Generator project, Erik played a role in elucidating the intricacies of our codebase. Erik provided clear and engaging explanations of how different components of the project were developed and integrated, making the complex architecture of our application understandable and relatable to both team members and other students in the class. Erik skill was particularly noticeable in breaking down the organization of files and classes into easily digestible segments, thereby conveying a logical and efficient structure of our application to the audience.

  • May Sabai : May played an instrumental role in shaping the visual and design aspects. Her keen eye for aesthetics, coupled with her proficiency in design software, significantly enhanced the project's visual appeal and user experience. May skillfully utilized Figma to create detailed layouts and designs for our application's interface.The structured framework May developed in Figma was particularly valuable during the planning and design stages, guiding us in translating our ideas into tangible features. May's contributions were crucial in developing a polished and innovative "Recipe Genius" application, accurately reflecting its intended functionality and user-centric design.

  • Hardik Gauba : In shaping the architecture of our Recipe Generator project, Hardik was pivotal in integrating and elucidating key object-oriented design patterns. Their deep understanding of Inheritance, Polymorphism, and Encapsulation was evident as they skillfully demonstrated our application in our project’s code structure. Hardik also helped explain how Inheritance allowed for code reusability and extension, how Polymorphism enabled the flexibility of our design, and how Encapsulation helped in safeguarding data integrity and simplifying complexity. Their ability to clearly articulate these abstract concepts and their practical applications played a vital role in both optimizing our code and enhancing the team's understanding of effective object-oriented programming practices.

  • Code & Report Contributions

    Kaung Sithu Hein(Erik) :

  • Backend Development and Data Integration: Erik played a crucial role in the backend development of the Recipe Genius. Their primary responsibility was managing and storing data efficiently in the application. They implemented a robust system using ArrayLists to store various data elements, such as user inputs (including ingredients), and the extensive list of recipes.
  • API Integration and Data Comparison: Another significant contribution was integrating external APIs for recipe suggestions. Erik developed a seamless mechanism to compare user-provided data with the information available through the API. This involved creating algorithms to match ingredients and preferences with the recipes available in the API database, ensuring that the recipe suggestions were accurate and tailored to user inputs.
  • Debugging and Performance Improvement: Erik consistently worked on debugging and improving the backend processes. They ensured that the data storage and retrieval processes were not only accurate but also performed with optimal efficiency, contributing significantly to the overall user experience of the Recipe Generator.

  • May Sabai :

  • Data Structure Optimization: May helped in optimizing the data structures used, ensuring that the ArrayLists were managed efficiently for quick access and manipulation. This optimization was key in enhancing the application's performance, particularly in how quickly it could process user inputs and return recipe suggestions.
  • Collaboration and Documentation: Alongside her technical contributions, May Sabai was actively involved in team meetings, offering insights into backend development strategies and collaborating closely with frontend developers to ensure a cohesive and functional application. She also diligently documented our development process, which greatly assisted in the creation of the final project report.
  • Application Design and User Interface: Beyond the presentation, May also made substantial contributions to the design and user experience aspects of the Recipe Genius. She spearheaded the application's design process, focusing on creating a user-friendly and aesthetically pleasing interface. Her innovative approach to design included choosing color schemes, layout designs, and interactive elements that enhanced the overall user experience.
  • Innovative Features and Usability Enhancements: May was also responsible for conceptualizing and implementing several innovative features within the website. This included the development of a user-friendly delete button, allowing users to effortlessly remove ingredients from their list. Additionally, they played a crucial role in enhancing the visual presentation of recipes, ensuring that they were displayed in an attractive and organized manner within the website. Their focus was on creating an intuitive and aesthetically pleasing layout, which made navigating through recipes not just convenient but also visually engaging. May’s design philosophy was centered around making the Recipe Genius not only functional but also a delight to use, contributing significantly to its overall appeal and user satisfaction.

  • Hardik Gauba :

  • Front-End Development of Home and Ingredients Pages: In the development of the "Recipe Genius" project, Hardik played a role in front-end development, with a specific focus on crafting the Home and Ingredients pages. Hardik was instrumental in designing the user interface, ensuring that the Home page was not only visually appealing but also intuitive and welcoming for users.
  • Responsive Design Implementation: Hardik also excelled in ensuring that these pages were responsive and user-friendly across various devices. They implemented modern web design principles to ensure compatibility and optimal user experience regardless of the device being used.
  • Collaboration with Backend Team: Hardik’s work extended beyond just design; Hardik collaborated closely with the backend team member to integrate the front-end elements with the application's core functionalities. This collaboration was crucial in ensuring a seamless and functional user journey from the Home page to the Ingredients page and then to the Recipe Page.
  • Contribution to Project Report: In the project report, Hardik provided a comprehensive explanation of the front-end development process. Hardik detailed the design choices, the rationale behind the layout of the Home and Ingredients pages, and the technologies used. Hardik’s contribution to the report significantly enhanced the understanding of the project’s front-end architecture and its alignment with the overall project goals.

  • Problem/Issue

      We found the problems for the following features:
    • Reading responses by API
    • Passing data from Ingredient page to Recipe page
    • Adding recipe images

    Previous Works

    Assumptions/Operating Environments/Intended Usage

    • The application assumes a basic level of cooking knowledge from the user.
    • Intended for use in home kitchens with standard cooking equipment.
    • Operating environments could include various platforms like web, mobile, etc., depending on your project's scope.

    Diagrams

    Functionality

    • User can add ingredients in the fridge, and Recipe Genius will find the most appropriate recipes.

    Operations

      User Operations:
    • Input ingredients
    • Specify dietary preferences
    • Browse generated recipes
      Admin Operations:
    • Update recipe database
    • Monitor user feedback
    • Perform system maintenance

    Solutions

    • Used JsonNode to read specific responses from API response
    • Created DataHolder.java class where the ingredientList, generated by IngredientsPageController.java, and called it in RecipesPageController.java
    • Used ImageView

    Steps to Run Your Code

    • Main.java is the main file of the application.
    • Therefore, the program can simply be run by running Main.java.

    Snapshots

    image image image image image

    About

    The group project for CS 151: Object Oriented Design course at San José State University.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published