Post on 28-May-2020
Running Head: Lab 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 1
University Friend Finder Product Description
Jay Speidell
Old Dominion University
CS410W
Professor J. Brunelle
December 11th, 2019
Lab 1 - Individual Version 2
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 2
Table of Contents
1. Introduction 5
2. University Friend Finder Product Description 7 2.1. Key Product Features and Capabilities 8 2.1.1 Help University Students Make Friends 8 2.1.2 Match Students With Relevant Organizations 9 2.1.3 Provide a Safe Environment for Communication 9 2.2. Major Components (Hardware/Software) 10 2.2.1 Hardware 11 2.2.1.1 Android or iOS Smartphone 11 2.2.1.2 Back-end Hardware 11 2.2.2 Software 11 2.2.2.1 React Native 11 2.2.2.2 Django 12 2.2.2.3 GraphQL 12 2.2.2.4 PostgreSQL 12 2.2.2.5 Python Data Science Libraries 12
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 3
3. Identification of Case Study 13 3.1 Students 14 3.1.1 Why Students Need University Friend Finder 14 3.1.2 How Students Will Use University Friend Finder 14 3.1.3 The Outcome of Students Using University Friend Finder 15 3.2 Student Organizations 15 3.2.1 Why Student Organizations Need University Friend Finder 15 3.2.2 How Student Organizations Will Use University Friend Finder 15 3.2.3 The Outcome of Student Organizations Using University Friend Finder 16 3.3 University Administrators 16 3.3.1 Why University Administrators Need University Friend Finder 16 3.3.2 How University Administrators Will Use University Friend Finder 16 3.3.3 The Outcome of University Administrators Using University Friend Finder 17 3.4 Potential Other Users 17 3.4.1 High Schools 17 3.4.2 Large Organizations 17
4. University Friend Finder Prototype Description 18 4.1. Prototype Architecture (Hardware/Software) 18
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 4
4.1.1 Hardware 18 4.1.2 Software 18 4.2. Prototype Features and Capabilities 18 4.3. Prototype Development Challenges 18 4.3.1 Customer Risks 18 4.3.2 Technical Risks 18
5. Glossary 18
6. References 19
Tables and Figures
Figure 1: Current Process Flow 6
Figure 2: Current Process Flow 7
Figure 3: Major Functional Components Diagram 10
Figure 4: User Roles 13
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 5
1. Introduction
Making friends in college is critical to both mental and physical health as well as
academic success, but the college environment presents significant challenges to making friends
for many students. The problem is widespread, to the point where a survey of fifty-one college
campuses resulted in 60% of students reporting feeling “very lonely” in the previous year
(Hoban, 2017). This loneliness leads to depression and anxiety, and the same survey reported
that an alarming 12% of students reported having considering suicide in the past year. There is
also a scientific consensus that having friends has a major impact on physical wellbeing, with
people reporting strong social relationships a third less likely to die in a given time period than
the average person (Rettner, 2010). These effects of loneliness have been shown to have a
measurable impact on academic performance, with one study reporting students with a high
degree of loneliness scoring two full letter grades below their peers (Rosenstreich, 2015). This
problem also impacts another key stakeholder, college administrators. Student engagement and
retention are key performance indicators for an academic program, and loneliness and its effects
lead to lower engagement and retention rates. The cumulative impact of loneliness among
college students presents a real problem for both students and college administrators.
Both students and the universities they attend have a need for a solution to this problem, a
solution that assists students in the process of making friends and bypasses barriers that they may
face. Colleges provide many opportunities for students to meet, from freshman orientation to
physical classrooms where students run into each other. But many students, especially
non-traditional students such as transfer students, distance learning students, and introverts,
either miss these opportunities or struggle to take advantage of them. The bottleneck of these
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 6
face-to-face interactions can be seen in the Current Process Flow diagram in Figure 1. The
solution must be universally accessible and designed to help students establish conversations
with people who they are likely to form friendships with. It should do this by matching students
with peers who have common interests and facilitate conversations between them.
Figure 1: Current Process Flow
University Friend Finder is designed as that solution. It is a smartphone application
available to any student at a given school that allows students to create a profile and then
matches students with each other based on common interests, allowing them to message each
other after a match has been mutually established. As seen in the Solution Process Flow in
Figure 2, this provides another option to establish initial connections and begin the process of
making a friend. By providing a new way for students to meet each other, University Friend
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 7
Finder gives students more opportunities to make friends, combat loneliness, and succeed both
personally and academically and helps administrators boost student engagement.
Figure 2: Solution Process Flow
2. University Friend Finder Product Description
University Friend Finder (UFF) is a mobile application designed to help students make
friends at their school who will help them grow both personally and academically. The system
will require a valid school email address for registration. After registration, UFF will give
students the opportunity to fill out a profile, including attributes about themselves, a personal
description, and a selection of their interests from a list of possible interests. The primary
functionality of this application is the matching system. Within a matching interface, students
will be shown profiles of their peers containing their interests and personal description. Students
will be able to either accept or reject these matches. Upon mutual acceptance, matched students
will each receive a notification for the match and presented with an opportunity to chat. From
here, students have the opportunity to talk and get to know each other. Real-world contact
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 8
information is shared at their discretion, and they retain the ability to revoke the match
acceptance at any time and end the conversation. The goal of this process is to provide students
with new opportunities to begin friendships.
The application will also allow students involved in student organizations to create
profiles for their organizations. They will select interests related to their organizations, and
students will be able to see recommended organizations based on their own interests and connect
with them. Student organization users will be able to send notifications to connected students
regarding events and other information. By encouraging engagement in campus organizations
and activities, the goal of University Friend Finder is to help students find more opportunities to
meet potential friends.
The business logic and matching algorithm will be provided by a server back-end, which
will also provide a web-based administrator interface for reviewing user reports and taking
action against users who break the rules.
2.1. Key Product Features and Capabilities
2.1.1 Help University Students Make Friends
The major differentiating feature of University Friend Finder is that it helps college
students specifically make friends. Unlike competing applications, which match friends within
the general population, UFF is a solution specifically tailored to students in an academic
environment going through the shared experience of attending college. Interests that students can
select for their profiles will not only include things like hobbies and extracurricular activities, but
also academic major, courses, career goals, and more.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 9
The matching algorithm with use a model that uses these interests to predict the
likelihood of users being good candidates for a friendship, and will recommend a user the
profiles of their peers above a certain threshold in order of the best match. These matches will be
calculated on the server side while the mobile application simply displays the user interface.
Once two students mutually accept a match, they will both receive notifications and a
private, encrypted message thread will be established. These students will then be able to have
private conversations where they can get to know each other.
2.1.2 Match Students With Relevant Organizations
Student organizations provide a great opportunity for students to engage with the
community at their school and meet people, but it is often difficult for students to gain an
awareness of relevant organizations. To solve this, University Friend Finder will allow student
organizations to create profiles with a set of interests, and these profiles will be recommended to
students with matching interests. Student organizations will be able to share information and
events with students who connect.
2.1.3 Provide a Safe Environment for Communication
Security is a high priority for University Friend Finder, and the application will provide
users with a way to report inappropriate messages and content. Moderators will review these
reports and have the option of warning or banning students from the platform, as well as
downloading the data to share with police and campus security.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 10
2.2. Major Components (Hardware/Software)
The structure of University Friend Finder is illustrated in the Major Functional
Components Diagram seen in Figure 1. The application consists of a front-end mobile
application and a back-end server running the business logic, hosting the database, and providing
an API. A student will open the application on their phone, and which will draw the GUI based
on information obtained from the back-end API. The server will perform the business logic, run
the matching algorithm, and maintain a database.
Figure 3: Major Functional Components Diagram
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 11
2.2.1 Hardware
2.2.1.1 Android or iOS Smartphone
University Friend Finder’s mobile application will run on any Android or iOS device
running supported versions of their respective operating systems with access to the internet. The
software will be developed with the React Native framework, which allows developers to
develop the application one time using a Javascript-based language and deploy it on both
Android and iOS. The smartphone application will only draw the GUI and make API calls while
the server performs the business logic and provides data.
2.2.1.2 Back-end Hardware
The back-end will be a Linux environment hosting Docker containers to standardize the
development and deployment environments. The development and prototyping will take place on
ODU Computer Science Department servers, and developers will also perform work on their
personal machines. In production, scaling will be facilitated by scalable cloud resources such as
Amazon Web Services or Google Compute Engine as well as Docker Swarm.
2.2.2 Software
The following software will be used to support University Friend Finder.
2.2.2.1 React Native
React Native is an innovative “write once, deploy everywhere” framework that allows
flexible mobile development and rapid prototyping. It will allow one mobile development team
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 12
working in one language, a version of Javascript, to develop native applications for both iOS and
Android with a single codebase to maintain. The performance and appearance are very similar to
native apps written using platform specific languages and SDKs.
2.2.2.2 Django
We will use Django as our server-side application framework. It will provide the API for
the front-end, perform business logic, manage the database, and call machine learning models. It
is a widely used Python web application framework using Python that offers flexibility,
efficiency, and reliability, as well as the abstraction of many basic functions of University Friend
Finder including account registration and user authentication.
2.2.2.3 GraphQL
GraphQL is a query language that University Friend Finder will use to abstract the
database API. This will allow the UFF development team to write more efficient, readable code
that only queries the necessary data. It integrates effectvily into Django.
2.2.2.4 PostgreSQL
We’ve selected PostgreSQL for our database because it is an object-relational database
that effectively integrates into Django and GraphQL. The object oriented model better supports
our data models and will allow for more efficient queries.
2.2.2.5 Python Data Science Libraries
The matching algorithm will use machine learning models, which will need to be backed
by efficient linear algebra and machine learning libraries. During model development, we will
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 13
use multiple libraries including Numpy, Scikit-Learn, and Tensorflow, testing their functionality
and performance against the requirements of the friend matching algorithm, and making an
informed selection based on the results. These Python libraries are written in low-level languages
such as C and Fortran, offering both high performance and easy integration into Django.
3. Identification of Case Study
University Friend Finder is being developed for college students, student organizations,
and university administrators, but there are also potential opportunities for expansion into other
user groups. These user roles are illustrated in Figure 4.
Figure 4: User Roles
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 14
3.1 Students
3.1.1 Why Students Need University Friend Finder
As laid out in sections 1 and 2, loneliness among students on college campuses is a major
issue. This drives the need for University Friend Finder, which will make it easier for them to
meet their peers and form friendships.
3.1.2 How Students Will Use University Friend Finder
A student using University Friend Finder will start their journey by creating a profile.
This profile will attempt to capture who they are and what they are looking for in a friendship.
They will select their interests, their goals, and their preferences. This could be their hobbies,
career aspirations, and whether they want to make friends of the same gender, age group, and
general location or meet people from the student body as a whole.
University Friend Finder will use the data in these profiles to match students with their
peers attending the same school based on the likelihood of a good friendship forming between
them. When a match happens, each student will be able to review the other’s profile and accept
the match before communication begins. Initial conversations happen in-app, and only after users
have mutually accepted a match. Real-world contact information is only shared at the discretion
of users. At any point students can choose to un-match and end the interaction.
University Friend Finder will also give students further opportunities to meet other
students by connecting them with student organizations and giving them opportunities to engage
and find events to attend.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 15
3.1.3 The Outcome of Students Using University Friend Finder
Students using this product will find more opportunities for meeting friends, both through
profile matches with their peers as well as engagement with student organizations. Increasing the
volume of connections will also increase the likelihood of students meeting people with whom
they’ll form friendships with. Because loneliness is linked to lower test scores and poorer mental
health, better academic performance and mental health are potential outcomes of students using
University Friend Finder.
3.2 Student Organizations
3.2.1 Why Student Organizations Need University Friend Finder
Student organizations struggle to recruit new students for the same reason it’s hard for
students to meet new friends. They simply don’t collide with students often. To solve this,
student organizations need as much visibility as possible in the places and platforms that students
are using and they need to be seen by the students most likely to be interested.
3.2.2 How Student Organizations Will Use University Friend Finder
Student organizations will be represented by students who have a University Friend
Finder account. Students will, at the approval of administrators, register student organization
profiles and fill them out with details including interests. These interests will make it easy for
students to find relevant organizations, much like they help students make better matches with
their peers. Students will be able to connect with organizations, and student organizations will be
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 16
able to share updates, events, and more with students. These may be delivered via push
notification with student consent.
3.2.3 The Outcome of Student Organizations Using University Friend Finder
The outcome of student organizations using University Friend Finder is higher student
engagement and membership growth.
3.3 University Administrators
3.3.1 Why University Administrators Need University Friend Finder
University administrators are under constant pressure to increase student engagement.
Student engagement leads to better academic performance and retention, and overall a healthier
student body. A platform that presents an opportunity to organically boost student engagement
could deliver a major win for a university.
3.3.2 How University Administrators Will Use University Friend Finder
University administrators can sponsor University Friend Finder to bring it to their campus
and student body. Their role up-front will be to work with the UFF development team to add
logos and branding, as well as to set a content moderation and reporting policy appropriate to
that organization. Once deployed, university administrators will promote University Friend
Finder and provide moderation via an administrative dashboard.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 17
3.3.3 The Outcome of University Administrators Using University Friend Finder
The ideal outcome for university administrators is that the application is accepted by the
student body and sees widespread use, resulting in more students forming friendships, improving
their mental health, and engaging with their peers, student organizations, and academics at a
higher level.
3.4 Potential Other Users
3.4.1 High Schools
High schools don’t have the same issues that colleges do with students not attending
classes or not having free time, but many other barriers to students forming friendships are still
present. This might present an opportunity for the University Friend Finder team to research this
new vertical and develop an alternate version of the app geared towards high school students.
3.4.2 Large Organizations
Zappos measures the success of their workplace in the number of collisions between
employees outside fo their working teams, and it’s a popular metric in workplace design to boost
innovation. But with more remote workers and bigger and bigger buildings, it becomes difficult
to make these collisions happen on a regular basis. If University Friend Finder were adapted for
a corporate environment, it could have a major impact on employee engagement and innovation.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 18
4. University Friend Finder Prototype Description
4.1. Prototype Architecture (Hardware/Software)
4.1.1 Hardware
4.1.2 Software
4.2. Prototype Features and Capabilities
4.3. Prototype Development Challenges
4.3.1 Customer Risks
4.3.2 Technical Risks
5. Glossary
● Application programming interface (API): programming interface between the back-end
business logic
● Django: High level Python Web Framework. Handles user authentication and permission,
database object models via object-relational mapper (ORM). The admin interface will be
built using Django’s form templates.
● Docker: Lightweight virtual machine platform that allows ‘containerization’ of
applications from development and deployment
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 19
● Gitlab: Git repository with integrated continuous integration deployment pipelines
● GraphQL: A declarative and typed query language for APIs which allows evolutionary
schema design. GraphQL allows clients to customize what data is returned, providing
minimal HTTP traffic and payloads.We will use the Graphene Library, which has been
integrated with Django, to define our schema using Python.
● Google Cloud Vision (GCV): A machine learning API that is able to inspect inputted
images for violent, adult, spoof, medical, or racy content.
● GUI: Graphical User Interface
● PostgreSQL:back-end database preferred for use with Django, which will abstract most
of the query and data modeling for us.
● React Native: A framework for building native apps (for Android and IOS) using React
JS library. Our apps will be lightweight, focused on presentation and caching. Business
logic will be contained within back-end application code, with data transmitted via
GraphQL API.
● UFF: An abbreviation for University Friend Finder
6. References
A successful Git branching model. (n.d.). Retrieved from
https://nvie.com/posts/a-successful-git-branching-model/.
Hoban, M., & Leino, E. V. (2017). National College Health Assessment Fall 2017 . American
College Health Association. Retrieved from
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 20
https://www.acha.org/documents/ncha/NCHA-II_FALL_2017_REFERENCE_GROUP_
EXECUTIVE_SUMMARY.pdf
Rettner, R. (2010, July 27). Want to Live Longer? Get Some Friends. Retrieved from
https://www.livescience.com/6769-live-longer-friends.html.
Rosenstreich, Eyal & Margalit, Malka. (2015). Loneliness, Mindfulness, and Academic
Achievements: A Moderation Effect among First-Year College Students. The Open
Psychology Journal. 8. 138-145. 10.2174/1874350101508010138.
Shape Up v 1.6, 2019 edition. (n.d.). Retrieved from https://basecamp.com/shapeup.