100% found this document useful (1 vote)
219 views

Software Engineering Practical File

This document describes a software engineering project called BeFrend, which is an Android app that allows college students to connect with others who share similar interests and skills. It details the team members, project description, development approach using Agile methodology, software design including DFD and state diagram, technologies used including Kotlin and Firebase, coding structure, testing process, and future scope such as expansion to other colleges.

Uploaded by

Vijendra Vaishya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
219 views

Software Engineering Practical File

This document describes a software engineering project called BeFrend, which is an Android app that allows college students to connect with others who share similar interests and skills. It details the team members, project description, development approach using Agile methodology, software design including DFD and state diagram, technologies used including Kotlin and Firebase, coding structure, testing process, and future scope such as expansion to other colleges.

Uploaded by

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

Jabalpur Engineering College

BeFrend

Software Engineering
Practical File

Submitted by-
Ayush Yadav
0201IT201023
#Team Members:

Team Member 1:
● Ayush Yadav
● 0201IT201023
● Information Technology

Team Member 2:
● Yogendra Manawat
● 0201IT201099
● Information Technology

Team Member 3:
● Vijendra Vaishya
● 0201IT201093
● Information Technology

Team Member 4:
● Anurag Soni
● 0201IT201016
● Information Technology
#Project Description:

BeFrend is a product that was designed to help college students find people from
their college who have similar interests and skills as them. To collaborate, explore
& build the future together.

1. Problems Faced by Students:


● College students find it hard to find students who have similar
interests or skills as them in their college, they are limited by the small
numbers of students they know
● For example if a college student wants to participate in a hackathon,
assuming he knows fronted & he is looking for a backend developer,
there’s no structured path to find such people other than relying on a
small set of people you know.

2. Our Proposed Solution:


● Our solution BeFrend is an android app platform that allows all
college students to explore other students in their college based on
their interests & skills.

3. Features of our project:


● Discover Students Based on Their Interests & Skills
● Send a Request by Swiping Right.
● Accept Requests from other People in the Likes Section
● All connections in one place.
● Take conversations forward with the chat system.
● Express yourself with the help of profile customizations
● Easy-to-use UI
# SDLC Model: ( Agile )

We followed an iterative and incremental development approach, which is one of


the key principles of Agile methodology.

1. Product Backlog
● We started by creating a product backlog, which is a list of features we
wanted to include in BeFrend.
● We used Figma to design the app's UI, to deliver a working product as early
as possible.
2. Sprint-Based Development
● We used a sprint-based approach to development, where we decided to build
one feature at a time during each sprint.
● We used user stories and acceptance criteria to guide our development
efforts and ensure that we were meeting the needs of our users.
3. Continuous Feedback
● After adding each feature, we shared the app with a group of testers on
WhatsApp to get feedback on the usability and functionality.
● We held daily stand-up meetings to discuss progress, identify obstacles, and
plan the next steps.
4. Continuous Integration and Delivery
● We used continuous integration and delivery to ensure that changes were
tested and deployed quickly and efficiently.
5. Final Launch
● Finally, after several iterations, we were able to launch BeFrend on the Play
Store.

By following these Agile practices, we were able to deliver a high-quality app that
met the needs of our users.
#Software Design:
1 DFD
1. State Diagram
#Technology Used:
Client Side Android App: Kotlin, XML

IDE: Android Studio

Server Side: Google Firebase Authentication, Cloud Firestore No-SQL databse

Android Concept implemented:

1. Basics:
● Jetpack Navigation Component
● Fragments
● Kotlin Coroutines
● View Binding
● Shared View Model
2. Google Firebase:
● Firebase Google Authentication.
● Cloud Firestore - Stores both User Login info and User Data
● set, add, delete & snapshots feature of Firebase DB.
● Firebase Storage - to store Images of Users
3. User Interface:
● Recycler View
● Swipeable Card UI
● Lottie Files
4. Abstract Concepts:
● Caching Data -> To Reduce load time
● Models of Each Entity
5. 3rd Party Libraries:
● Glide -> Image Loading
● Volley -> Network Calls
● AsynctaskCoffee /TinderLikeCardStack -> Discover Page Cards UI
6. Image Related Libraries:
● Dimezis /BlurView -> Blur Images
● Shouheng88 /Compressor -> Image Compression
● Dhaval2404 /ImagePicker -> Image Picker
#Coding:

This project is divided into several sections which makes it possible, below is brief
description of them.

1. Presentation Layer: These are screens of our android app


a. Activities ( kotlin )
i. FragmentHomeActivity - Activity that holds all the UI
Fragments.
ii. LoginEmailActivity - Activity responsible for login with email.
iii. SignInActivity - Activity responsible for sign in with Google
account.
iv. SignUpEmailActivity - Activity responsible for sign up with
email id.
b. Fragments ( kotlin )
i. DiscoverFragment - Discover page screen where users is shown
other users.
ii. ConnectionsFragmnet - Connection page where users is shown
all their connections, they also have option to unmatch.
iii. LikesFragment - Likes page where users is shown the likes they
got from other users.
iv. LikesRequestFragment - LikesRequest page where users can
see the likes they sent to other users & cancel them.
v. ProfileFragment - here users can see their profile details & edit
them.
vi. ChatFragment - user is navigated to this screen from connection
screen to chat with them
vii. FullScreenFragment - this screen schows full details of a user if
you click on expand.
c. Layout Files ( XML ): For each screen in the UI Layer layout files are
created.
d. Adapters: For each scrollable List we need to setup adapters, various
adapter used.
i. ChatAdapter
ii. ConnectionsAdpater
iii. LikeRequestsAdapter
iv. PeopleLikesAdapter
v. UserCardAdapter
2. Business Logic Layer:
a. Models:
i. UserModel: It’s a kotlin data class to hold properties of a user
such as name, email id etc.
ii. ShareViewModel: It’s a shared kotlin data class to share data
among various fragments.
b. Helper Classes:
i. DateClass: This class is used to manage date within the app
ii. UtilityClass: This class is used to manage miscellaneous tasks
in app
3. Navigation: The navigation inside the app from one screen to other is made
possible by Jetpack Navigation.
4. Data Access Layer: This layer consists of the Firebase Cloud Firestore
database, which is used to manage data storage and manipulation.
5. External Services Layer: This layer consists of Firebase Authentication,
which is used for email and Google sign-in into the app.
#Testing:
As the BeFrend team, we followed a comprehensive testing approach to ensure the
quality of our app. We started with alpha testing, which involves testing the app
internally by our team members. During this phase, we checked the app for any
defects or issues that could impact its functionality or user experience. We tested
each feature of the app, including the discover section, likes section, connection
section, and profile section.

After alpha testing, we moved on to beta testing, which involved releasing the app
to a small group of external users. We shared the app with our friends to get
feedback on the app's usability and functionality. We encouraged them to use the
app as they normally would and asked them to report any issues they encountered.
We also took note of any suggestions for improvement they provided.

During the testing phase, we used both black box and white box testing techniques.
Black box testing involved testing the app's functionality without knowing the
internal workings of the app. We tested the app's input and output by using
different inputs and checking the corresponding outputs. In contrast, white box
testing involved testing the app with knowledge of its internal workings. We tested
the app's code to ensure that it was working correctly and that there were no logical
errors.

We performed each type of testing at different stages of the software development


life cycle (SDLC). Alpha testing was performed during the development phase,
while beta testing was performed during the testing phase.

We continue to monitor the app for any defects or issues and address them in a
timely manner to ensure that our users have a seamless experience on the app.
#Future Scope
● Expansion to other colleges and universities: Initially, the
BeFrend app could be limited to a single college or university.
However, once the app is successful, it could be expanded to
other institutions, potentially nationwide or even globally.

● Integration with other social media platforms: The BeFrend


app could be integrated with other social media platforms, such
as Facebook or LinkedIn, to make it easier for users to find and
connect with others who share similar interests and skills.

● Collaboration with companies and organizations: The BeFrend


app could collaborate with companies and organizations to
provide opportunities for users to work on real-world projects
and gain valuable experience and skills.

● Monetization through premium features: The BeFrend app


could offer premium features or a subscription model to
generate revenue and sustain the app's development and
growth.

● Integration of AI-based matching algorithms: The BeFrend app


could integrate AI-based algorithms to match users more
accurately based on their interests, skills, and other factors,
thereby enhancing the user experience.
#Conclusion

In conclusion, the development of BeFrend was a challenging but rewarding


process that involved careful planning, design, implementation, and testing. The
software engineering practices used in the project, including agile development,
iterative design, and comprehensive testing, contributed to the successful launch of
the app on the Play Store. However, there is always room for improvement, and
continued efforts will be made to enhance the user experience and add new features
to the app in the future. Overall, the development of BeFrend demonstrated the
importance of following a rigorous software engineering process to create a
high-quality and user-friendly application.

You might also like