University Friend Finder Product Description Jay …410copper/labs/docx/Lab1_v1...By providing a new...
Transcript of University Friend Finder Product Description Jay …410copper/labs/docx/Lab1_v1...By providing a new...
University Friend Finder Product Description 1
University Friend Finder Product Description
Jay Speidell
Team Copper
Old Dominion University
CS410W
Professor J. Brunelle
December 8th, 2019
Lab 1 - Individual Version 1
University Friend Finder Product Description 2
1. Introduction 4
2. University Friend Finder Product Description 6 2.1. Key Product Features and Capabilities 7
2.1.1 Help University Students Make Friends 7 2.1.2 Match Students With Relevant Organizations 8 2.1.3 Provide a Safe Environment for Communication 8
2.2. Major Components (Hardware/Software) 8 2.2.1 Hardware 9
2.2.1.1 Android or iOS Smartphone 9 2.2.1.2 Back-end Hardware 10
2.2.2 Software 10 2.2.2.1 React Native 10 2.2.2.2 Django 10 2.2.2.3 GraphQL 11 2.2.2.4 PostgreSQL 11 2.2.2.5 Python Data Science Libraries 11
3. Identification of Case Study 11 3.1 Students 12
3.1.1 Why Students Need University Friend Finder 12 3.1.2 How Students Will Use University Friend Finder 12 3.1.3 The Outcome of Students Using University Friend Finder 13
3.2 Student Organizations 13 3.2.1 Why Student Organizations Need University Friend Finder 13 3.2.2 How Student Organizations Will Use University Friend Finder 14 3.2.3 The Outcome of Student Organizations Using University Friend Finder 14
3.3 University Administrators 14 3.3.1 Why University Administrators Need University Friend Finder 14 3.3.2 How University Administrators Will Use University Friend Finder 15 3.3.3 The Outcome of University Administrators Using University Friend Finder 15
3.4 Potential Other Users 15 3.4.1 High Schools 15 3.4.2 Large Organizations 16
4. University Friend Finder Prototype Description 16 4.1. Prototype Architecture (Hardware/Software) 16
University Friend Finder Product Description 3
4.2. Prototype Features and Capabilities 16 4.3. Prototype Development Challenges 17
5. Glossary 17
6. References 18
University Friend Finder Product Description 4
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,
University Friend Finder Product Description 5
either miss these opportunities or struggle to take advantage of them. The bottleneck of these
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
University Friend Finder Product Description 6
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
University Friend Finder Product Description 7
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.
University Friend Finder Product Description 8
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
2.1.3 Provide a Safe Environment for Communication
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.
University Friend Finder Product Description 9
Figure 3: Major Functional Components Diagram
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.
University Friend Finder Product Description 10
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
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.
University Friend Finder Product Description 11
2.2.2.3 GraphQL
GraphQL is a query language that University Friend Finder will use to abstract the
databse 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
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.
University Friend Finder Product Description 12
Figure 4: User Roles
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
University Friend Finder Product Description 13
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.
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,
University Friend Finder Product Description 14
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
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.
University Friend Finder Product Description 15
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.
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.
University Friend Finder Product Description 16
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.
4. University Friend Finder Prototype Description
Provide a top-level description of the CS 411W prototype as it relates to the end product from
CS 410 (i.e., the goal). Are capabilities reduced or eliminated? Simulated – modeled?> Include a
table of comparison between RWP and Prototype either in section 4, 4.1 or 4.2
4.1. Prototype Architecture (Hardware/Software)
How will the prototype be structured to demonstrate key features of the CS 410 product. Provide
describe the Prototype MFCD.
4.2. Prototype Features and Capabilities
What does the prototype demonstrate? Why is that significant in showing how the problem is
solved? How you have demonstrated success? How does the prototype address the CS 410
project risk mitigation? Describe the functional goals and objectives.
University Friend Finder Product Description 17
4.3. Prototype Development Challenges
Describe the expected challenges to be encountered while completing the prototype – e.g.,
knowledge missing, capability missing, supporting technology issues.
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
● 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
University Friend Finder Product Description 18
● 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
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.