Software Design


Our web interface and mobile app feature simple user interfaces and easy navigation, prioritizing a seamless user experience. With a strong focus on user experience and security, our system ensure a smooth and secure shopping journey for customers. Additionally, our web interface collects and analyzes data, providing valuable insights that empower supermarket owners with actionable information.

Technology Stack


Frontend

  • Flutter framework - Flutter is a powerful cross-platform framework that allows us to create beautiful and performant user interfaces for both mobile and web applications.

  • Dart programming language - Provides a concise and efficient syntax, making development smoother and more efficient.

Backend

  • AWS IoT Core:

    - Enables secure communication and management of IoT devices at scale.
    - Facilitates seamless connectivity, control, and interaction with IoT devices.

  • AWS Cognito:

    - Offers user authentication, authorization, and management services.
    - Simplifies the addition of user sign-up and sign-in capabilities.
    - Provides secure user management features.

  • AWS Amplify:

    - A comprehensive development platform for building scalable web and mobile applications.
    - Offers a set of tools and services for app development, including authentication, data storage, and analytics.

  • Firebase Database:

    - A NoSQL database provided by Firebase, a Google Cloud platform.
    - Enables storing and retrieving structured data in real-time.
    - Supports offline data synchronization and real-time updates.
    - Provides secure data storage and access controls.

Two main applications


  • Mobile Application - Shop Wise mobile application for supermarket customers
  • Web Interface - Shop Wise web application for supermarket owners

Mobile Application


UI Design

Web Interface


UI Design

Software Testing

Unit Testing


Unit testing is a fast and isolated software testing method that evaluates individual units of source code to assess their suitability for use. In our project, we employed unit testing to validate the connection between the AWS IoT Core and our mobile app. Additionally, we conducted tests on the individual components of our mobile and web apps to ensure their functionality and reliability. By conducting comprehensive unit testing, we guarantee the quality and performance of our software components.


Widget Testing


Widget testing is a vital aspect of our project, which utilizes the Flutter cross-platform framework. We have implemented widget testing for both our web and mobile apps. This testing approach is crucial as it focuses on testing user components and their functionality. By conducting widget testing, we ensure that the user interface (UI) behaves as intended, validating the behavior and interactions of various UI elements. This meticulous testing ensures a seamless and consistent user experience across both web and mobile platforms.


API Testing


API testing is an essential software testing approach used to evaluate the functionality and reliability of application programming interfaces (APIs). In our project, we employed API testing specifically to test the CRUD (Create, Read, Update, Delete) operations. By conducting API testing, we ensured that the API endpoints for performing CRUD operations were working as expected, enabling seamless data manipulation and management.


Integration Testing


Integration testing is an important software testing approach that we have implemented in our project. It involves combining individual units of source code and testing them as a group. In our case, we have specifically designed integration testing to verify the interaction between the frontend and backend components of our application. This comprehensive testing enables us to ensure that different parts of the app work together seamlessly, as expected. By conducting integration testing, we can identify and resolve any issues or inconsistencies that may arise when integrating the frontend and backend components, ultimately delivering a robust and reliable application.