department of computer science - old dominion …410copper/labs/docx/lab1v2… · web viewmachine...
TRANSCRIPT
Running head: LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 1
Lab 1 - University Friend Finder Product Description
Caden Conner
Old Dominion University
CS411W
Professor James Brunelle
11 December 2019
Lab 1 Version 2
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 2
Table of Contents1. Introduction 4
2. University Friend Finder Product Description 5
2.1. Key Product Features and Capabilities 6
2.2. Major Components (Hardware/Software) 8
3. Identification of Case Study 12
3.1 Students 12
3.2 Student Organizations 13
3.3 University Administrators 14
3.4 Potential Other Use 15
4. University Friend Finder Prototype Description 16
4.1. Prototype Architecture (Hardware/Software) 16
4.2. Prototype Features and Capabilities 16
4.3. Prototype Development Challenges 16
5. Glossary 16
6. References 17
Tables and Figures
Figure 1 - Simplified Timeline Process Flow 5
Figure 2 - Simplified Solution Flow 7
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 3
Figure 3 - MFCD 9
Figure 4 - Software Architecture Overview 11
Table 1 - Competition Matrix 6
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 4
1. Introduction
A study conducted by the American College Health Association in 2017 surveyed over
28,000 college students across 51 campuses and found that over 60% of them had reported
feeling “very lonely” in the past 12 months (Campus Loneliness Fact Sheet, 2019). These
experiences of loneliness may be mitigated if students have meaningful friendships with their
peers. This may not seem like a big deal to some as we all may get lonely sometimes, but these
feelings of loneliness can transcend into more dangerous territories. Two of the territories that
students can find their mental health state in are anxiety and depression which can also
negatively affect academic performance. This is the last thing a university wants from their
students, to be in a negative mental state, as it can lead to their physical health being harmed or
potentially dropping out of school.
This is where University Friend Finder (UFF) comes into play in an attempt to help
reduce the negative mental impact students experience from lack of friendships. UFF will
hopefully make it easier for the student body to develop meaningful friendships by providing an
alternative method to meeting others. Students will be able to find others at their university who
share interests and even classes they may have together through profile matching. This should
save them much more time as they are not limited by face-to-face interactions while adding a
convenience factor as they can use the app whenever they choose.
Old Dominion University (ODU) has a significant amount of distance learning and
synchronous type students who may have not even stepped foot on campus. These types of
students will greatly benefit from this application as they will be provided a new and much better
method for identifying potential friendships by seeing who they share interests with. This
application is not limited to ODU, any university can see benefits to using it, even if they do not
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 5
have a large distance learning population. Being locked to university students with edu emails
provides a sense of security to users knowing they will be meeting with fellow students and not
complete strangers.
2. University Friend Finder Product Description
The purpose of UFF is to provide a mobile application that will help make it easier for
university students to connect and build friendships with their fellow peers. These friendships
should be easier to develop as they will be able to discover other students who share interests
and/or even classes. With the development of UFF, students will be offered an alternative
method to more traditional ones such as face-to-face interactions or nontraditional such as social
media, as shown in figure 1. This proves useful as face-to-face interactions can be very time
consuming and in the end not even work out. While social media is much more difficult to make
friends strictly from the university environment as there’s no dedicated place for it.
Figure 1. Simplified timeline version of the current process flow.
https://www.cs.odu.edu/~410copper/presentations/
Users will first need to create a profile and depending on their selection type will also
need to use an authentication method to verify they are part of the university. When a user
completes this verification they will be able to fill out their profile containing their interests,
classes, and preferences. An algorithm will be used that takes this input of characteristics from a
user profile and calculates a percentage based on how many of these characteristics match up. If
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 6
this match percentage is adequate than the main user will be shown another user then decide if
they would like to match. If they both mutually match, then they will be able to chat in-app and
take it from there. This algorithm may also be tweaked so it has the capability of showing a
student organizations that universities offer that they may be interested in. What benefits and
what makes this UFF unique can be viewed below in the competition matrix in table 1.
Table 1. Competition matrix containing UFF’s features alongside their direct and indirect
competitors. https://www.cs.odu.edu/~410copper/presentations/
2.1. Key Product Features and Capabilities
As you can see from table 1, UFF is unique in the sense that it is locked to only
university students. This provides a sense of security and a blanket to the users as they know the
person they are talking to is a fellow student. Differentiating itself from other applications is the
ability to not just match on common interests but actually the classes the student is taking.
Students can also harness this ability of interest matching to search for student organizations that
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 7
pertain to that interest. This in turn enables student organizations to utilize this application to
promote their organization and activities they host.
2.1.1 Help University Students Make Friends
The biggest goal of this application is for it to help students harness friendships through
their university environment with fellow students. These students will be able to input their
interests and classes into their profile. They will also have preferences pertaining to the age as
well as gender of the potential friends they would like to make. When these factors are all taken
into place then it should show the user other students who UFF would view as good candidates
for potential friends. This method should be able to cut down a lot of the time typically used by a
person trying to make friends. Below in figure 3, you can see some common reasons a student
may find the application useful compared to alternative methods.
Figure 2. Solution part showcasing reasons student may use UFF and general solution flow of
the solution process flow. https://www.cs.odu.edu/~410copper/presentations/
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 8
2.1.2 Match Students With Relevant Organizations
A feature besides profile matching with other students making it capable for students to
also match with student organizations. When a student creates a profile they will have inputted
their interests into it. Besides the algorithm matching them with students, it can also be tweaked
to include those interests or variations of it to compare against student organization names. As an
example, a student that has bike riding as one of their interests can look at the student
organization tab and be recommended a cycling club.
2.1.3 Provide a Safe Environment for Communication
Users should have a sense of security with communicating through UFF as each account
is tied to another student’s school email address. A student can take comfort in the fact that the
person they are communicating with is actually attending the university and is more likely to be
who they say they are. This precaution should help lessen if not remove the amount of people
who think they can freely hide behind anonymous profiles and say inappropriate things to other
users. Compared to other applications that may utilize an email or facebook, but both of those
can have fake profiles created and masquerade as someone they are not.
2.2. Major Components (Hardware/Software)
Hardware requirements for a student and student organization will be a smartphone
running iOS or Android operating system. On the administration side they will need a client that
either has a Windows or Mac operating system. Both of these, smartphone and client, need to be
able to connect to the internet to make use of UFF. Smartphones will need this to use as a mobile
application while on the client-side will need to be able to access a webpage.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 9
On the software requirements side UFF will be utilizing Python, React, Django,
GraphQL, Docker, Postgres and Redis. In the backend development Python will be used for
programming tasks. Students and student organizations will make use of a mobile application for
both iOS and Android that is created through React framework. Django will be used for business
logic and to generate web pages to allow administrators to perform tasks related to reports.
GraphQL related to writing queries that will interact with various APIs. Postgres for the database
to hold all of this information and Redis as a cache for simplifying interactions with the database.
Finally, Docker is used to assemble and organize everything in containers to allow for easier
deployment and development.
Figure 3. Major function components. This diagram illustrates how the components will
interact with one another. https://www.cs.odu.edu/~410copper/presentations/
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 10
2.2.1 Hardware
Hardware specifics are not too difficult and are easily identifiable. Smartphones will be
needed by students and student organizations. Administrators will need a client that can view a
webpage. Workstations on the backend for developers to use throughout the process. Production
infrastructure needs are going to be solved through the use of Heroku hosted dynos.
2.2.1.1 Android or iOS Smartphone
Smartphones containing operating systems of Android or iOS for hardware usage.
2.2.1.2 Backend Hardware
The hardware needed in the backend for servers that will host the databases and other utilities
needed.
2.2.2 Software
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 11
Figure 4. Overview of the software architecture used for UFF. https://www.cs.odu.edu/~410copper/presentations/
2.2.2.1 React Native
React is a Javascript library that is useful for building user interfaces. Front end development
will be based around using React for development of the user interface for Android and iOS.
2.2.2.2 Django
Django is an open-source framework that uses the Python language. It contains many libraries
that will provide extreme usefulness in the development of UFF. The framework will handle pre-
existing needs such as email authentication and password resets, to name a couple.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 12
2.2.2.3 GraphQL
GraphQL is an open-source data query tool for interacting with APIs. Harnessing the use of this
software will make it much easier and faster by reducing the amount of data that is returned from
a query.
2.2.2.4 PostgreSQL
All data and information will be stored in our database using PostgreSQL. This pertains to user
profiles, conversations, webpages, etc. It is a relational database management system that is free
and open-source.
2.2.2.5 Python Data Science Libraries
Data science libraries available to Python will be used to capture metrics. These metrics can be
utilized for seeing which aspects are being used and improvement of UFF.
3. Identification of Case Study
The case study that will initially be used will be through ODU. ODU will provide a great
test case as there is a large diversity of students from type of students (traditional, transfers,
distance learners), their age, race, etc. When a base level prototype is developed we will work
with ODU to develop a test run for reactions and feedback.
3.1 Students
3.1.1 Why Students Need This Product
Students need this product as developing friendships in the university environment can be
difficult. This can be especially true for non-traditional students such as distant learners, transfer,
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 13
or students who take night classes. It was actually found that students who suffered from a high
degree of loneliness received an average of two letter grades below their peers (Rosenstreich, E.,
& Margalit, M., 2015).
3.1.2 How Students Will Use This Product
The use of this product by students will be used similar to other mobile applications for
their purposes. They will need to download UFF through the iOS app store or google store. Then
they will go through the process of profile creation, which will include authentication. Their
profile will contain their interests, classes, and preferences for what they are looking for in a
friend. Students will use UFF if they are looking to develop friendships or seeking for student
organizations that pertain to their interests.
3.1.3 The Outcome of Students Using This Product
Hopefully the outcome of students using UFF will be them developing meaningful
friendships and becoming more active in the university environment through student
organizations. Students will see a net positive of mental health status and engagement through
the use of UFF. In addition students may see an increase in their academic performance through
the use of friendships in specific classes.
3.2 Student Organizations
3.2.1 Why Student Organizations Need This Product
UFF can be incredibly useful as a tool for student organizations to use in expanding their
membership and student engagement with hosted events. Relating to ODU the process for
finding student organizations can be difficult. When that information is finally found there’s a
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 14
chance it may be completely out-of-date or have no relevant information at all. UFF provides a
new way to reach students and disperse up-to-date information directly to students.
3.2.2 Why Student Organizations Will Use This Product
Student organizations who are serious about expanding their membership and having
more student engagement will definitely want to use this product. It’ll be able to streamline
information directly to students interested as well as to those whom already joined the
organization.
3.2.3 The Outcome of Student Organizations Using This Product
Student organizations should see an increase in student membership along with peer engagement
as they are able to interact with current and potential members.
3.3 University Administrators
3.3.1 Why University Administrators Need This Product
The university administrators can use UFF to monitor how students are interacting with
one another. They can also use it to capture metrics of students to use for their goal of increasing
student engagement and retention. These metrics can contain data about which students reacted
positively or negatively to and what common interests students have.
3.3.2 How University Administrators Will Use This Product
University administrators will use UFF through a client that can connect and view
webpages. These webpages will mainly be used to view reports that have come from users about
other student profiles, conversations, or student organizations. The reports will be handled by the
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 15
administrators and the infractions they hand out. This will help keep UFF in a proper and safe
environment for the students to feel comfortable.
3.3.3 The Outcome of University Administrators Using This Product
The outcome of university administrators using this product will be managing the report
system to keep UFF safe from users who are bringing negativity to other’s experiences. Also
they will be able to utilize metrics collected from UFF for use to further student engagement and
retention.
3.4 Potential Other Users
3.4.1 High Schools
High school students may find an option in the future to use UFF for finding potential
friendships with students at universities they may be interested in attending. Making friendships
at a university before even have decided to go, may sway their opinion on which university they
want to attend. It also can give high school students an insight into the university community and
how much it may benefit them.
3.4.2 Large Organizations
There is a possibility that UFF could branch out to larger organizations, but it could not
be “University” Friend Finder any longer. It would need to be tailored to fit the needs of these
organizations. New features and capabilities are going to have to be thought of that moves
towards a general company overview instead of a university. This could be done, but that would
be an idea for the incredibly distant future.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 16
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 backend
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
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 17
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.
● Machine Learning: Method of data analysis that automates analytical model building.
● PostgreSQL:Backend 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 backend application code, with data transmitted via
GraphQL API.
● Student: A person who attends a university/college.
● Student Organization: A group of students in a university/college who share one or
multiple common interests.
● University Administrator: Special user who posses special privileges, such as warning or
banning users, for account management.
● University Friend Finder (UFF): A mobile application that is designed to help students
match with other students within their community to make friendships.
6. References
A successful Git branching model. (n.d.). Retrieved from https://nvie.com/posts/a-
successful-git-branching-model/.
Shape Up v 1.6, 2019 edition. (n.d.). Retrieved from https://basecamp.com/shapeup.
LAB 1 - UNIVERSITY FRIEND FINDER PRODUCT DESCRIPTION 18
Campus Loneliness Fact Sheet. (2019, June 10). Retrieved December 7, 2019, from
https://artandhealing.org/campus-loneliness-fact-sheet/.
Rosenstreich, E., & Margalit, M. (2015). Loneliness, Mindfulness, and Academic
Achievements: A Moderation Effect among First-Year College Students . Retrieved
December 8, 2019, from
https://www.researchgate.net/publication/279273646_Loneliness_Mindfulness_and_Aca
demic_Achievements_A_Moderation_Effect_among_First-Year_College_Students.