[go: up one dir, main page]

0% found this document useful (0 votes)
34 views34 pages

Introduction

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views34 pages

Introduction

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 34

JSS MAHAVIDYAPEETHA

Mini Project / Internship


Assessment

Subject Name: Mini project / Internship


Assessment

Subject Code : BCS-554


COURSE: B.Tech.
SEMESTER: V

by
Anmol Singh
2200910100022

Department of Computer Science and Engineering


JSS ACADEMY OF TECHNICAL EDUCATION
C-20/1, SECTOR-62, NOIDA
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

VISION AND MISSION

VISION OF THE INSTITUTE

JSS Academy of Technical Education Noida aims to become an Institution of excellence in


imparting quality Outcome Based Education that empowers the young generation with
Knowledge, Skills, Research, Aptitude and Ethical values to solve Contemporary
Challenging Problems.

MISSION OF THE INSTITUTE

Develop a platform for achieving globally acceptable level of intellectual acumen and
technological competence.

Create an inspiring ambience that raises the motivation level for conducting quality research.

Provide an environment for acquiring ethical values and positive attitude.

VISION OF THE DEPARTMENT

“To spark the imagination of the Computer Science Engineers with values, skills
and creativity to solve the real-world problems.”

MISSION OF THE DEPARTMENT

To inculcate creative thinking and problem-solving skills through effective teaching,


learning and research.
To empower professionals with core competency in the field of Computer Science and
Engineering.
To foster independent and lifelong learning with ethical and social responsibilities.

2
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

PROGRAM OUTCOMES (POs)

Engineering Graduates will be able to:


PO1: Engineering knowledge: Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex engineering
problems.
PO2: Problem analysis: Identify, formulate, review research literature, and analyze
complex engineering problems reaching substantiated conclusions using first principles of
mathematics, natural sciences, and engineering sciences.
PO3: Design/development of solutions: Design solutions for complex engineering
problems and design system components or processes that meet the specified needs with
appropriate consideration for the public health and safety, and the cultural, societal, and
environmental considerations.
PO4: Conduct investigations of complex problems: Use research-
based knowledge and research methods including design of experiments,
analysis and interpretation of data, and synthesis of the information to
provide valid conclusions.

PO5: Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern engineering and IT tools including prediction and modeling to complex engineering
activities with an understanding of the limitations.
PO6: The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice.
PO7: Environment and sustainability: Understand the impact of the professional
engineering solutions in societal and environmental contexts, and demonstrate the
knowledge of, and need for sustainable development.
PO8: Ethics: Apply ethical principles and commit to professional ethics and responsibilities
and norms of the engineering practice.
PO9: Individual and team work: Function effectively as an individual, and as a member or
leader in diverse teams, and in multidisciplinary settings.
PO10: Communication: Communicate effectively on complex engineering activities with
the engineering community and with society at large, such as, being able to comprehend and
write effective reports and design documentation, make effective presentations, and give and
receive clear instructions.
PO11: Project management and finance: Demonstrate knowledge and understanding of
the engineering and management principles and apply these to one’s own work, as a
member and leader in a team, to manage projects and in multidisciplinary environments.
3
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

PO12: Life-long learning: Recognize the need for, and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological change.

PROGRAM EDUCATIONAL OUTCOMES (PEOs)

PEO1: To apply computational skills necessary to analyze, formulate and solve engineering
problems.

PEO2: To establish as entrepreneurs, and work in interdisciplinary research and development


organizations as an individual or in a team.

PEO3: To inculcate ethical values and leadership qualities in students to have a successful
career.

PEO4: To develop analytical thinking that helps them to comprehend and solve real-world
problems and inherit the attitude of lifelong learning for pursuing higher education.

PROGRAM SPECIFIC OUTCOMES (PSOs)

PSO1: Acquiring in depth knowledge of theoretical foundations and issues in Computer


Science to induce learning abilities for developing computational skills.

PSO2: Ability to analyse, design, develop, test and manage complex software system and
applications using advanced tools and techniques.

4
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

COURSE OUTCOMES (COs)

C340.1 Developing a technical artifact requiring new technical skills and effectively
utilizing a new software tool to complete a task.
C340.2 Writing requirements documentation, Selecting appropriate technologies,
identifying and creating appropriate test cases for systems.
C340.3 Demonstrating understanding of professional customs & practices and working
with professional standards.
C340.4 Improving problem-solving, critical thinking skills and report writing.
C340.5 Learning professional skills like exercising leadership, behaving professionally, behaving
ethically, listening effectively, participating as a member of a team, developing
appropriate workplace attitudes.

CO-PO-PSO MAPPING

PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO PO PO PSO PSO
10 11 12 1 2

C340.1 3 3 3 3 2 3 3 3 3 3 2 3 3 3
C340.2 3 3 3 3 3 3 3 3 3 2 3 3 3 3
C340.3 2 2 3 3 3 2 3 3 3 1 2 3 3 3
C340.4 2 2 2 2 2 2 2 2 2 3 2 3 2 2
C340.5 2 2 2 2 2 2 2 2 2 3 2 3 2 2
C340 2.40 2.40 2.60 2.60 2.40 2.40 2.60 2.60 2.60 2.40 2.20 3.00 2.60 2.60

5
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

DECLARATION

I hereby declare that this submission is my own work and that, to


the best of my knowledge and belief, it contains no material
previously published or written by another person nor material
which to a substantial extent has been accepted for the award of
any other degree or diploma of the university or other institute of
higher learning, except where due acknowledgment has been made
in the text.

Signature :

Name:

Roll No.:

Date:

6
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

CERTIFICATE

This is to certify that Mini Project/Internship Assessment Report entitled


“…………………….....................................................................................................” which
is submitted by ………………………….... in partial fulfillment of the requirement for the
award of degree B. Tech. in Department of Computer Science and Engineering of Dr. APJ
Abdul Kalam Technical University, Uttar Pradesh, Lucknow is a record of the candidate’s
own work carried out by him/her under my supervision. The matter embodied in this report is
original and has not been submitted for the award of any other degree.

Supervisor
Date

7
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Table of Contents

1. Introduction
1.1 Project Overview
1.2 Project Goals
1.3 Role in the Project
1.4 Background Information
2. Tools & Technology Used
2.1 Kotlin Programming Language
2.2 Firebase Services
2.3 Razorpay Integration
2.4 Room Database
2.5 Android Studio
2.6 Other Tools and Technologies
3. History and Features of the Technology
3.1 History of Kotlin
3.2 Firebase Overview
3.3 Razorpay and Payment Gateways
3.4 Room Database
3.5 Mobile App Development Trends
4. Work Done
4.1 Diagrammatic Representation of the Project
4.2 Use Case Diagram
4.3 Data Flow Diagram (DFD)
4.4 Module Information
4.5 Screenshots and Explanation
5. Conclusions and Future Scope
5.1 Conclusion
5.2 Future Scope
6. References

8
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

CONTENT PAGE NO.

1. INTRODUCTION………………………………………………10

2. Tools & Technology……………………………………………..15

3. History and features of the technology………………………….19

4. Work Done………………………………………………………23

5. Conclusions and Future Scope………………………………….32

6. References……………………………………………………….34

9
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Introduction

The Grocify app is an innovative mobile application designed specifically to cater to the
grocery shopping needs of residents in small cities. The primary objective of the app is to
simplify the process of purchasing groceries and daily essentials by providing an online
platform that allows users to place orders from local grocery stores and have them delivered
to their doorstep. Drawing inspiration from popular grocery delivery apps such as Blinkit,
Grocify adapts this model to meet the unique challenges and demands of small-city living.
In smaller cities, residents often face difficulties accessing a wide variety of groceries,
especially those products that are typically available only in larger markets. This issue is
exacerbated by long queues, limited delivery options, and time constraints. Grocify solves
these problems by offering a solution that is not only convenient but also practical and
affordable.
The Grocify app offers features that allow users to browse grocery categories, make secure
payments, track orders, and receive timely deliveries—all from the comfort of their home.
Additionally, the app integrates location services to ensure delivery accuracy and push
notifications to update users on the status of their orders. The app is built with Firebase for
real-time data storage and Razorpay for seamless payment integration, ensuring a smooth
experience for users from start to finish.

Role in the Project

As a part of the development team, my role in the Grocify app project involved several
aspects of the mobile app development lifecycle. These included:
 User Interface and Experience (UI/UX) Design: I was responsible for designing an
intuitive and engaging user interface that caters to users with varying levels of
technological literacy. The UI had to be simple enough for people who are not
accustomed to using apps regularly, ensuring easy navigation and fast order
placements.
 Location-based Services Integration: One of the key features of the app was the
integration of location tracking for accurate order deliveries. I worked with
the FusedLocationProviderClient to provide real-time location updates and ensure
the user could easily track their order.

10
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Firebase Authentication: I integrated Firebase Authentication into the app, which


allows users to sign in securely via their phone numbers, making the process of
creating an account and logging in simple and quick.
 Backend Development and Database Management: I helped set up and
manage Firebase Realtime Database for real-time data synchronization between
users and vendors. I also integrated Firebase Firestore to handle user profiles and
order data, ensuring that all transactions were logged accurately and efficiently.
 Payment Gateway Integration: I integrated Razorpay to handle payments, allowing
users to securely pay for their orders using a variety of payment methods, including
credit/debit cards, UPI, and wallets. This made the app financially seamless and
trustworthy for users.
 Order Placement and Tracking: I developed features that allowed users to browse
through available grocery items, add them to a cart, place an order, and receive real-
time updates on the status of their delivery. This involved ensuring proper
synchronization between the user's orders and the local vendor's inventory system.
In summary, my involvement in the project covered both frontend and backend development,
ensuring the app was both user-friendly and functionally robust.

Project Background
The Grocify app was born out of the increasing demand for online grocery shopping in
smaller cities and towns. While larger cities often have access to well-established grocery
delivery services, many smaller cities still face challenges in accessing fresh groceries and
household essentials. Traditional grocery shopping involves long queues, limited choices, and
travel time to stores, all of which are inconvenient, particularly for working professionals and
elderly individuals.
The app was conceptualized to bridge this gap, bringing the convenience of online grocery
shopping to small-city residents. By partnering with local grocery stores, Grocify ensures that
users have access to the same variety of products available in larger cities, delivered with
minimal delay. The app is designed to cater to the local market by offering products that are
relevant to the residents of small towns, ranging from daily essentials like fruits, vegetables,
and grains to household items.
Project Goals

The goals of the Grocify app can be broken down into several key objectives:
1. To provide an online grocery shopping platform for small cities: This goal focuses
on enabling residents of small towns to conveniently shop for groceries through their

11
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

smartphones. The app ensures that they have access to a wide range of products
without needing to leave their homes.
2. To offer reliable, fast, and accurate delivery services: Grocify ensures that products
ordered through the app are delivered promptly and in good condition, meeting
customer expectations for quality and delivery time. Using location-based services, the
app tracks orders to provide customers with real-time updates.

3. To create a seamless payment experience: By integrating secure payment gateways


like Razorpay, Grocify offers customers the flexibility to pay through various
methods such as cards, UPI, or wallets. The app prioritizes transaction security,
ensuring that all payments are processed quickly and safely.
4. To provide users with personalized shopping experiences: The app uses Firebase
Analytics to track user preferences and recommend products based on their previous
shopping history, making the shopping experience more relevant and user-specific.
5. To improve accessibility and convenience for elderly and non-tech-savvy users:
The design and flow of the app are created with the understanding that some users
may not be familiar with technology. Features like voice search and simplified
navigation are incorporated to make the app accessible to all.

Market Opportunity and Problem Statement


In small cities, the process of purchasing groceries is often inefficient and time-consuming.
Unlike larger cities where supermarkets and grocery stores are easily accessible, people in
small towns face several barriers:
1. Limited Availability of Fresh Produce: Many small cities have limited access to
fresh groceries, especially vegetables and fruits. Residents may need to travel long
distances to find these items, leading to inconvenience and wasted time.
2. Long Queues and Overcrowded Stores: Physical grocery stores in smaller cities
tend to be overcrowded, especially during peak hours. This leads to long queues and
unnecessary waiting times, making the shopping experience frustrating.
3. Limited Payment Methods: In many small towns, cash is still the dominant payment
method. This lack of digital payment options further complicates the shopping
process, particularly during the pandemic when contactless transactions became
essential.
4. Delivery Challenges: Though there are a few delivery services available in small
cities, they are often unreliable or operate only in limited areas. This results in
customers either receiving delayed deliveries or being unable to place orders at all.

12
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Grocify aims to address all these challenges by offering an app that allows users to browse
groceries, place orders, and have them delivered directly to their homes in a fast, efficient, and
reliable manner. With easy-to-use features and local vendor partnerships, Grocify fills the gap
in the market and ensures that residents of small towns have access to a modern grocery
shopping experience.
Target Audience
The primary target audience for Grocify includes residents of small towns and cities who are
looking for a more convenient and time-saving way to shop for groceries. However, Grocify
also aims to serve the following specific groups:
1. Elderly Citizens: Many elderly residents of small cities may face challenges in going
out for grocery shopping due to mobility issues. Grocify helps them order groceries
from the comfort of their home, minimizing the need for physical trips to stores.
2. Working Professionals: Busy individuals working long hours may not have the time
to visit the market. Grocify offers an efficient way to shop for groceries online and
receive deliveries at their convenience, saving time and effort.
3. Young Families: Families with young children often find it difficult to manage
grocery shopping while balancing other responsibilities. Grocify simplifies the process
by providing a hassle-free online shopping experience, helping young parents save
time.
4. Students: College students living in small cities often struggle with finding affordable
grocery options. Grocify provides them with access to a wide range of products that
are cost-effective and convenient to order, especially if they are living away from
home.
5. Local Grocery Store Owners: Grocify's platform also benefits local vendors by
giving them a digital presence. Small store owners can expand their customer base and
increase sales by offering their products through the app, helping them compete with
larger retailers and online competitors.
Technological Innovations and Features
One of the main reasons for Grocify's success in small cities lies in its ability to leverage the
power of modern technology. The app utilizes a range of innovative features and technologies
to ensure that users have a seamless and enjoyable shopping experience. Some of the key
technological innovations include:
1. Real-Time Location-Based Services: Using the FusedLocationProviderClient,
Grocify accurately tracks the user's location and ensures that deliveries are made to the
right address. This feature also allows users to track the status of their orders in real-
time.

13
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

2. Firebase Authentication and Security: Grocify employs Firebase


Authentication for user sign-ins, allowing users to securely log in with their phone
numbers. The app also ensures that personal data is stored securely, with sensitive
information protected through encryption methods provided by Firebase.
3. Push Notifications: The app sends push notifications to keep users informed about the
status of their orders, whether it’s a confirmation, shipping update, or delivery status.
This real-time communication helps users stay engaged and updated throughout the
shopping process.
4. Smart Product Recommendations: Grocify uses Firebase Analytics to track user
preferences and shopping behavior. Based on this data, the app can recommend
products tailored to each user, improving their shopping experience and boosting
conversion rates.
5. Multiple Payment Integration: The app integrates Razorpay as a secure payment
gateway, enabling users to make payments via various methods, such as debit/credit
cards, UPI, wallets, and cash on delivery (COD). This variety ensures that users have
multiple options for completing their transactions, regardless of their payment
preferences.
Competitive Advantage
While several larger e-commerce platforms like Blinkit, BigBasket, and Grofers cater to big
cities, Grocify stands out in the smaller-city market by focusing on local needs and offering
services tailored specifically for the smaller-town population. Some competitive advantages
that Grocify offers include:
 Focus on Small Cities: Unlike major competitors, Grocify is designed specifically to
cater to the underserved population in small towns. This creates a niche market that
larger companies might overlook.
 Affordable and Customizable Services: Grocify offers a flexible pricing structure
and the ability for users to customize their orders based on the local availability of
groceries. Users can choose from a wide range of affordable options.
 Collaborations with Local Vendors: Grocify partners with local grocery stores,
enabling them to reach more customers without the need for expensive infrastructure
or logistics. This ensures that users can get fresh products at competitive prices.
 Enhanced User Experience: With a user-friendly interface and simplified app flow,
Grocify is easy for anyone to use, even those who are not tech-savvy. This makes it an
ideal solution for elderly users or those who are new to online shopping.

14
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Tools & Technology Used

1. Mobile Development Framework


a. Android Studio
 Android Studio is the official Integrated Development Environment (IDE) used for
developing Grocify, built on IntelliJ IDEA. Android Studio is specifically designed for
Android app development, providing powerful tools for coding, debugging,
performance optimization, and user interface design.
 Features: Code completion, interactive layout design, real-time testing, and
integration with Firebase, GitHub, and Google APIs.
 Why Used: Its rich feature set, particularly the Android-specific tooling and
SDK integration, makes it the preferred choice for building Android apps like
Grocify.
b. Kotlin Programming Language
 Kotlin is the primary programming language used in Grocify. Kotlin is officially
supported by Google for Android app development and is fully interoperable with
Java.
 Features: Concise syntax, null safety, coroutines for asynchronous
programming, and modern language features like extension functions and
lambdas.
 Why Used: Kotlin improves development efficiency with its clean and
expressive syntax. It also provides excellent compatibility with Android APIs
and is officially recommended by Google for Android development.

2. Networking & API Integration


a. Retrofit
 Retrofit is a type-safe HTTP client for Android that simplifies the process of
interacting with RESTful APIs, making network requests, and handling responses.
 Features: Supports synchronous and asynchronous network requests,
automatic JSON parsing (with Gson), and customizable error handling.
 Why Used: Retrofit significantly reduces boilerplate code and streamlines the
integration of APIs. In Grocify, Retrofit is used to interact with the backend

15
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

server for fetching product catalogs, order details, and processing user
payments.
b. Gson
 Gson is a JSON library for Kotlin and Java that automatically converts between JSON
and Kotlin objects.
 Features: Automatic mapping of JSON data into Kotlin objects, support for
complex nested structures, and efficient parsing.
 Why Used: Gson is integrated with Retrofit to seamlessly convert JSON
responses from APIs into Kotlin objects, reducing errors and the need for
manual parsing.

3. Location Services
a. Google Play Services – Location API
 FusedLocationProviderClient from Google Play Services is used to get the user’s
location in real-time.
 Features: Offers a combination of GPS, Wi-Fi, and mobile network signals to
determine location with minimal battery consumption.
 Why Used: Location is a crucial feature in Grocify for finding the nearest
stores, optimizing delivery routes, and providing accurate delivery times. The
FusedLocationProviderClient is efficient and reduces power usage.
b. Google Maps API
 Google Maps API is used to display maps, search for locations, and provide route
optimization.
 Features: Customizable maps, real-time location tracking, route finding, and
geolocation capabilities.
 Why Used: It enhances the user experience by providing an interactive and
reliable map interface for tracking orders, locating stores, and determining
delivery paths.

4. Backend and Database Integration


a. Firebase Cloud Firestore

16
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Firebase Cloud Firestore is a NoSQL cloud database that stores data in documents
and collections. It's used to store user data, product information, and order histories in
Grocify.
 Features: Real-time data syncing, offline support, and automatic scaling.
 Why Used: Firebase Firestore provides an easy-to-integrate, real-time database
that automatically syncs across all devices, ensuring Grocify's data is
consistent and up-to-date.
b. Room Database
 Room is the SQLite database library for Android that offers an abstraction layer over
SQLite to allow for more robust database access while leveraging SQLite’s full power.
 Features: ORM-based database access, simple database queries, and
integration with live data updates.
 Why Used: Room is used to persist local data in Grocify, such as user
addresses, order details, and cached product data. It ensures that even when the
user is offline, they can still interact with the app and use certain features.

5. Authentication and Security


a. Firebase Authentication
 Firebase Authentication is used to handle user authentication, including phone
number-based OTP verification, email authentication, and other sign-in methods.
 Features: Simple and secure login, supports multiple authentication providers
(email, phone, Google, etc.), and integrates easily with Firebase services.
 Why Used: Firebase Authentication is quick to integrate, secure, and scalable,
ensuring that users' personal data is protected and only authorized users can
access the app.
b. Firebase Security Rules
 Firebase Security Rules govern who can read and write data to the Firebase Firestore
database.
 Features: Role-based access control, data validation, and automatic user
authentication.
 Why Used: Ensures that only authenticated and authorized users can access
sensitive data, such as order details, user profiles, and addresses.

17
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

6. Payment Gateway
a. Razorpay
 Razorpay is integrated as the payment gateway for processing online payments in
Grocify. Razorpay supports multiple payment methods, including debit/credit cards,
UPI, wallets, and cash on delivery.
 Features: Support for multiple payment options, secure and encrypted
transactions, and real-time payment tracking.
 Why Used: Razorpay offers a simple and secure way to process payments. It is
also highly customizable and supports India’s diverse payment ecosystem,
making it ideal for Grocify’s user base.

7. UI/UX Design
a. Android Views and Jetpack Compose
 Jetpack Compose is used to design modern UIs with less boilerplate code and a more
declarative approach to UI design.
 Features: Reusable UI components, seamless integration with Kotlin, and a
declarative UI model.
 Why Used: Jetpack Compose enables faster UI development, with real-time
previews and minimal setup. For Grocify, it provides a responsive and fluid UI,
ensuring an engaging experience for users across different screen sizes and
devices.
b. Facebook Shimmer
 Facebook Shimmer is a library used to implement skeleton loading in Grocify,
providing animated placeholders while content is loading.
 Features: Customizable shimmer effects that mimic the loading state of the
content, improving the app’s overall UX.
 Why Used: Shimmer improves user experience by providing visual feedback
during data loading, which helps in situations where product data or order
details are being fetched from the server.

18
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

History and Features of the Technology

The technologies used in the development of Grocify have evolved significantly over time.
This section delves into the history and features of the key technologies used to build the app,
offering insights into why they were chosen and how they have contributed to the app’s
overall performance and usability.

1. Kotlin Programming Language


a. History of Kotlin
 Kotlin is a statically-typed, cross-platform programming language developed
by JetBrains in 2011. It was designed as a more modern, concise, and safer
alternative to Java for Android development.
 In 2017, Google officially endorsed Kotlin as a first-class language for Android
development, marking a turning point in Android app development. Kotlin provided a
more expressive, type-safe syntax and improved productivity over Java, making it the
preferred language for Android developers.
 Kotlin is now fully interoperable with Java, allowing developers to use existing Java
libraries and frameworks while writing new code in Kotlin.
b. Features of Kotlin
 Conciseness: Kotlin reduces boilerplate code, making it more concise than Java.
Features like type inference and data classes streamline the development process.
 Null Safety: Kotlin eliminates the common pitfalls of null pointer exceptions, thanks
to its null safety system. This feature is crucial in preventing runtime crashes in the
Grocify app.
 Coroutines: Kotlin’s native support for asynchronous programming using coroutines
makes it easier to handle background tasks, such as network requests or data syncing,
in a non-blocking manner.
 Interoperability: Kotlin seamlessly integrates with Java libraries and frameworks,
enabling easy adoption in existing Android projects.
c. Why Kotlin for Grocify
 Kotlin offers a more expressive and efficient syntax, reducing the need for verbose
Java code. Its safety features (like null safety) and support for modern programming

19
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

paradigms made it the ideal choice for Grocify, where maintaining code quality and
performance is crucial.

2. Android Development Framework


a. History of Android
 Android, developed by Android Inc. in 2003 and later acquired by Google in 2005,
was initially a project focused on creating a modern operating system for digital
cameras. By 2007, Android began evolving into a platform for mobile devices.
 The first Android phone, the HTC Dream, was released in 2008, marking the
beginning of the Android ecosystem. Over the years, Android grew to dominate the
global smartphone market due to its open-source nature and flexibility.
 Android SDK (Software Development Kit) and Android Studio, Google's official
IDE for Android development, have continually evolved to support the growing
features and complexities of Android devices.
b. Features of Android
 Open Source: Android is an open-source OS, which allows developers to access its
source code and build custom ROMs or apps for various devices.
 Multitasking: Android supports multitasking, enabling users to run multiple apps
simultaneously. This is especially important for an app like Grocify, where users may
browse products, check out, and track orders concurrently.
 Compatibility: Android supports a wide range of devices, from low-cost phones to
high-end flagship models, making it a perfect choice for Grocify’s target audience in
small cities.
 Google Play Services: Integration with Google Play Services allows apps to use
advanced features like Firebase, Google Maps, Location Services, Push
Notifications, and Google Analytics.
 Jetpack Libraries: Android's Jetpack libraries provide essential tools for building
modern Android apps, such as Navigation, Room Database, LiveData, ViewModel,
and WorkManager.
c. Why Android for Grocify
 Android provides the flexibility needed to support various devices and offer users in
small cities an affordable and user-friendly app. The integration with Google Play
Services and Firebase ensures that Grocify can provide real-time features like user
authentication, push notifications, and analytics without much overhead.

20
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

3. Firebase Platform
a. History of Firebase
 Firebase was founded in 2011 as a Backend-as-a-Service (BaaS) platform. It quickly
gained traction with developers for its simple-to-use services like real-time databases
and user authentication. Google acquired Firebase in 2014 and has since expanded its
offerings significantly.
 Over the years, Firebase grew to include a wide range of products, including Firebase
Authentication, Cloud Firestore, Firebase Cloud Messaging, Firebase Analytics,
and Firebase Crashlytics, making it a comprehensive platform for mobile and web
app development.
b. Features of Firebase
 Real-time Database: Firebase's Realtime Database allows developers to build
applications that can instantly synchronize data across users in real-time. This feature
is particularly useful for Grocify, ensuring real-time updates for product availability
and order status.
 Cloud Firestore: Firestore is Firebase’s scalable NoSQL database. It provides
advanced querying and data modeling capabilities, which help Grocify manage large
datasets like product inventories, user details, and order histories.
 Firebase Authentication: This service simplifies user sign-in and authentication using
various methods, such as SMS, Google, and Facebook authentication. Firebase
Authentication streamlines Grocify's login and registration process, ensuring a
seamless experience for users.
 Firebase Cloud Messaging (FCM): FCM enables sending targeted notifications to
users about promotions, order status, or new product arrivals.
 Crashlytics: Firebase's crash reporting tool helps Grocify track and fix issues that
might affect the user experience.
c. Why Firebase for Grocify
 Firebase provides an all-in-one solution for Grocify, covering databases,
authentication, real-time synchronization, analytics, and crash reporting. This reduces
the complexity of integrating third-party services, streamlining development and
maintenance for Grocify.

4. Retrofit and Gson


a. History of Retrofit

21
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Retrofit is a type-safe HTTP client for Android and Java, developed by Square in
2013. It simplifies network operations by providing a clean API for accessing web
services.
 Retrofit became widely popular for Android app development due to its simplicity,
flexibility, and support for RESTful APIs.
b. Features of Retrofit
 HTTP Requests: Retrofit supports multiple HTTP request types,
including GET, POST, PUT, and DELETE, enabling easy communication between
the app and remote APIs.
 Type Safety: Retrofit ensures that the response from an API call is mapped to a
defined model, ensuring type safety and reducing errors.
 JSON Parsing with Gson: Retrofit integrates seamlessly with Gson, a JSON
serialization/deserialization library, to convert API responses into Kotlin objects and
vice versa.
 Error Handling: Retrofit allows for centralized error handling, which is important for
providing meaningful error messages to the user.
c. Why Retrofit for Grocify
 Retrofit's clean and type-safe approach to network operations makes it an ideal choice
for handling Grocify’s communication with external services like product data APIs,
payment gateways, and location services.

5. Room Database
a. History of Room
 Room is part of Android’s Jetpack libraries, introduced in 2017 to simplify database
management. It acts as an abstraction layer over SQLite, making it easier to work with
databases while providing powerful features like compile-time checks and LiveData
support.
b. Features of Room
 Persistence: Room provides seamless data persistence for local data storage, which is
essential for Grocify's features like saved addresses, cart data, and order history.
 DAO (Data Access Object): Room uses DAOs to define database operations,
ensuring a clean and consistent API for accessing data.

22
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Work Done

The Grocify project involves two distinct applications tailored to meet the needs of different
stakeholders:
1. User App
 Purpose: To serve the customers.
 Features:
 Product Browsing: Customers can view categories, search for items, and
browse available products.
 Order Placement: Facilitates adding products to the cart, applying discounts,
and proceeding with secure payments.
 Real-time Tracking: Allows users to track the status and location of their
deliveries.
 Location Services: Helps users set precise delivery addresses using
geolocation features.
 Notifications: Provides updates about orders, offers, and recommendations.
2. Admin App
 Purpose: Designed for vendors or business administrators.
 Features:

23
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Inventory Management: Admins can update stock levels, add or remove


products, and manage categories.
 Order Processing: Enables viewing, accepting, and tracking customer orders.
 Analytics Dashboard: Displays sales trends, order reports, and revenue
metrics.
 Customer Communication: Allows admins to send notifications or resolve
issues.
 Delivery Coordination: Tracks assigned delivery agents and pending
deliveries.
The two apps work together to streamline grocery shopping and delivery services, ensuring
efficiency and convenience for both customers and administrators.

Authentication

The User App of the Grocify project uses authentication to securely manage user access and
personalize their experience. Here's how it's implemented:
1. Phone Number Authentication:
 Users log in using their phone numbers.
 OTP-based verification is employed to ensure that the phone number is valid
and in use.
 Firebase Authentication seamlessly generates and verifies the OTP.
2. Firebase Integration:
 Firebase Authentication is utilized to manage user accounts without building a
custom authentication backend.
 Persistent sessions are managed through Firebase, ensuring that users stay
signed in unless they log out.
3. Security and Privacy:
 User phone numbers and authentication tokens are securely stored and
transmitted.
 Authentication ensures that only valid users can access app features like
browsing products, placing orders, and tracking deliveries.

24
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

4. Role in User Experience:


 Enhances user trust with secure login.
 Provides a personalized experience by identifying the user after authentication.
This approach ensures both security and simplicity, allowing users in small cities to easily
interact with the app.

Address Management in the User App


The User App includes a robust address management system essential for ensuring accurate
order delivery. Key features include:
1. Location Detection:
 Uses the Fused Location Provider API to fetch the user's current location.
 Reverse geocoding translates latitude and longitude into a readable address.
25
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

2. Manual Entry:
 Users can manually input addresses with details like landmarks and labels
(e.g., Home, Office).
This system ensures seamless order placement and delivery, catering specifically to small
cities with unique addressing needs.

Firebase Integration in the User App


The User App leverages Firebase services for a seamless backend experience, providing
efficient data storage, user authentication, and real-time updates. Below are the key Firebase
components used and their roles:

1. Firebase Authentication
 Purpose: Facilitates secure user login and authentication via OTP-based phone
number verification.
 Implementation:
 Users verify their phone numbers through OTP, ensuring secure and reliable
login.

26
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Authentication handles user sessions and verifies access rights before allowing
actions like placing orders or updating addresses.
 Advantage: Simple integration with enhanced security and user convenience.

2. Firebase Realtime Database


 Purpose: Stores and retrieves structured data in real time for the app.
 Usage:
 User data, including names, contact information, and addresses, is stored in a
hierarchical format.
 Live updates for order statuses are pushed to users instantly.

3. Firebase Cloud Storage


 Purpose: Manages and stores large files, such as product images or user profile
pictures.
 Usage:
 Product images uploaded by the admin are accessible to users in real time.
 The app fetches and displays images without additional server-side storage
management.

27
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Room Database Integration in the User App


The Room Database is used in the User App to provide local storage for persistent data. It
offers an abstraction layer over SQLite, making it easier to work with databases in Android
while ensuring strong performance and reliability.
Purpose of Room Database
 Local Data Storage: Room allows storing data locally on the device, ensuring that the
app can function even when offline. For example, user addresses, cart items, and order
histories are stored locally.
 Persistence: Data like user addresses and order history can be persisted across app
sessions, improving user experience and app performance.

Core Components of Room Database


1. Entity: Represents the data model.
 In the case of the Grocify app, an Address entity is created to store user
addresses.
 Room uses annotations to define the schema for the database.
2. DAO (Data Access Object): Provides methods for interacting with the database.
 DAOs define query methods like insert, delete, and update.
 They allow access to the database in a structured and clean way, handling all
the SQL queries behind the scenes.
3. Database: This is the Room database instance that connects the entity and DAO.
 It holds the database schema and provides access to DAOs.

Implementation Example for User Addresses


1. Entity - Address
In the Grocify app, we store user addresses in the Room database using the Address entity.
 @Entity annotation defines this class as a Room database table.
 @PrimaryKey is used to specify the primary key for the table (auto-generated in this
case).
 The other fields represent different parts of a user's address.
2. DAO (Data Access Object)

28
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

Implementation of Cart Using Room Database


The Cart in your Grocify app is a critical component of the shopping experience for users. It
allows users to select and review the items they wish to purchase before proceeding to
checkout. Here's how you can structure and work with the cart in your app:
Cart Functionality
1. Add Items to Cart:
 Users can browse through available products (like groceries) and add items to
their cart.
 Each item will have a quantity associated with it, and the user can adjust the
quantity (e.g., adding more than one of an item).
2. View Cart:
 Users can access a "Cart" screen where they can see a list of all items they
have added, with details such as:
 Product name
 Quantity
 Price

29
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Total cost for each item


 Users can also remove items from the cart or update quantities.
3. Update Cart:
 The cart should dynamically update whenever the user adds or removes items,
or changes the quantity of a particular item.
 Ensure that the total price is updated accordingly as users make these changes.
4. Proceed to Checkout:
 Once the user is satisfied with their cart, they can proceed to checkout, where
they will enter their delivery address, payment details, and confirm the order.
5. Saving Cart Items:
 You can use a local database like Room to save the items in the cart so that if
the user closes the app or logs out, the items can still be retrieved later.

Razorpay Payment Integration


To integrate Razorpay payment in the Grocify app, follow these steps:
1. Add Razorpay SDK: Include the Razorpay SDK in your build.gradle.kts file. This
enables your app to interact with Razorpay’s services.
2. API Key: Obtain the API Key ID from the Razorpay Dashboard. This key is used to
authenticate your app's requests with Razorpay.
3. Payment Activity: Create a new activity that will handle the payment process. In this
activity, you'll initialize the Razorpay Checkout library with your API key and
configure the payment options.
4. Payment Request: Set the necessary details for the payment, such as the amount,
currency, and any additional user or order information. These details are then passed to
Razorpay when initiating the payment.
5. Handle Payment Response: After the user completes the payment, handle the success
or failure response by checking the payment status. Razorpay sends back a response
indicating whether the transaction was successful or failed.
6. Server-Side Payment Verification (Optional): For added security, verify the payment
on your server by sending the payment ID to Razorpay's server API. This step ensures
that the payment was successful and has not been tampered with.
Security Considerations:
30
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

 Use HTTPS to securely transmit payment details.


 Never store sensitive information, such as credit card details, in your app.
This integration allows users to make secure payments within the Grocify app, using
Razorpay’s reliable and secure payment gateway.

31
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

5. Conclusions and Future Scope

The Grocify app has been developed as a grocery delivery platform for small cities, aiming
to provide users with a seamless shopping experience similar to large-scale grocery platforms
like Blinkit. By leveraging modern technologies such as Android development, Firebase for
backend services, Room Database for local storage, and Razorpay for payment processing,
the app is able to cater to the unique needs of small cities, ensuring users can conveniently
place orders, track their deliveries, and make payments securely.
The learned technologies, tools, and frameworks such as Kotlin, Firebase
Authentication, Firestore, Room Database, Razorpay, and Android UI frameworks will
be highly applicable in my final year major project, where I plan to build a similar
application, but with a broader scope. The skills and experience gained while developing
Grocify will assist in creating more scalable and robust applications, making them suitable for
both urban and rural areas.
Industrial Relevance:
The technology and tools used in Grocify have significant industrial relevance. The
development of mobile applications using Kotlin is becoming a norm in the industry due to
its efficiency and ease of use. Firebase is widely used for scalable backend infrastructure,
especially in startups, because of its real-time database, authentication, and hosting services,
which provide seamless and secure solutions with minimal configuration.
Furthermore, Razorpay's payment gateway is a key component in facilitating online
payments in India, where cashless transactions are becoming more prevalent. The use
of Room Database to manage local storage ensures that the app can function without
constant internet connectivity, which is crucial for markets with inconsistent internet access.
The project is highly aligned with the current industrial trends of building robust, scalable,
and efficient mobile solutions, offering businesses a chance to reach customers even in remote
areas.
Societal Relevance and Impact:
Grocify aims to positively impact society by making grocery shopping easier and more
accessible in smaller cities. In such regions, the traditional way of grocery shopping is time-
consuming, often requiring travel to distant markets. Grocify aims to bridge this gap by
offering a fast and reliable delivery service for daily essentials, improving the convenience of
shopping for busy individuals and families.
Additionally, the app supports local vendors, providing them with an online platform to sell
their products, thus boosting their visibility and enabling them to reach a larger customer

32
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

base. This, in turn, creates more economic opportunities for small businesses and contributes
to the growth of the local economy.
With the increasing adoption of smartphones and internet connectivity, especially in smaller
cities, Grocify can empower individuals by simplifying their access to essential products,
contributing to the growth of digital India.
Future Scope of the Project:
1. Expansion to Larger Markets: The app's scope can be expanded to larger cities and
regions, offering a more diverse range of products and services. This would include
introducing advanced features such as subscription services for regular grocery
deliveries, which could be tailored to individual user preferences.
2. AI and Machine Learning: In the future, we can integrate AI to personalize the
shopping experience. Machine learning algorithms can predict customer preferences
based on purchase history, improving the recommendation system and offering
dynamic pricing and discounts.
3. Real-Time Delivery Tracking: The addition of real-time delivery tracking can
improve the user experience, enabling customers to track their orders in real-time.
This would be a great way to enhance customer satisfaction and increase trust in the
service.
4. Integration with Voice Assistants: As voice assistants like Alexa and Google
Assistant become more prevalent, Grocify can incorporate voice-based order
placement to make it even more user-friendly. This feature would allow users to place
orders hands-free and improve accessibility for elderly or visually impaired users.
5. Sustainability Features: The app can introduce eco-friendly practices such as
offering users the option to choose environmentally friendly packaging or delivery
methods, contributing to sustainability goals.
6. Localization and Multilingual Support: As Grocify expands, adding support for
multiple languages will help cater to a broader audience, especially in regions with
diverse linguistic preferences.

33
JSS Academy of Technical Education –
NOIDA
Mini Project/Internship Assessment (BCS-554) (CSE

9. References
The following sources were referred to during the development of the Grocify App and
preparation of this report:
1. Google Developers. "Kotlin Programming Language." Retrieved
from https://developer.android.com/kotlin
2. Firebase Documentation. "Firebase Authentication." Retrieved
from https://firebase.google.com/docs/auth
3. Firebase Documentation. "Firebase Firestore." Retrieved
from https://firebase.google.com/docs/firestore
4. Razorpay Documentation. "Razorpay Payment Gateway." Retrieved
from https://razorpay.com/docs/
5. Android Developers. "Room Database." Retrieved
from https://developer.android.com/training/data-storage/room
6. Google Developers. "Firebase Realtime Database." Retrieved
from https://firebase.google.com/docs/database
7. Android Developers. "Android User Interface." Retrieved
from https://developer.android.com/guide/topics/ui
8. Stack Overflow. "Kotlin Programming Tips and Best Practices." Retrieved
from https://stackoverflow.com/questions/tagged/kotlin
9. YouTube. "Android App Development Tutorials." Retrieved from
https://www.youtube.com/results?search_query=android+app+development

These resources were critical for understanding the technologies and frameworks used in the
development of the Grocify App, and for ensuring that the app's functionality meets industry
standards.

34

You might also like