department of computer science - old dominion …410copper/labs/docx/lab1_w… · web viewuff...

24
University Friend Finder Product Description 1 University Friend Finder Product Description Michael Wade Old Dominion University CS411W Professor J. Brunelle December, 8, 2019 Lab 1: Draft 1

Upload: others

Post on 22-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 1

University Friend Finder Product Description

Michael Wade

Old Dominion University

CS411W

Professor J. Brunelle

December, 8, 2019

Lab 1: Draft 1

Page 2: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 2

1. Introduction 3

2. University Friend Finder Product Description 5

2.1. Key Product Features and Capabilities 5

2.2. Major Components (Hardware/Software) 5

3. Identification of Case Study 8

3.1 Students 9

3.2 Student Organizations 10

3.3 University Moderators 10

3.4 Potential Other Users 11

4. University Friend Finder Prototype Description 11

4.1. Prototype Architecture (Hardware/Software) 11

4.2. Prototype Features and Capabilities 11

4.3. Prototype Development Challenges 12

5. Glossary 13

6. References 14

Page 3: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 3

List of Figures

Figure 1: Major Functional Components Diagram

Figure 2: Software Architecture Diagram

Figure 3: Real World Product vs. Prototype

Page 4: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 4

1. Introduction

According to The Foundation of Art and Healing, 64% of students feel very lonely which

can result in students becoming more isolated and depressed and can negatively impact academic

performance and their mental and physical well-being.

Having friends is an essential part of life, but friends can be hard to find. In a 2017 survey

by the American College Health Association, nearly 28,000 students of 51 campuses were

surveyed and more than 60% said that they had “felt very lonely” in the previous 12 months

(“Campus Loneliness Fact Sheet,” 2018). The survey also showed that loneliness is a

contributing factor to overwhelming anxiety and depression. 12% of students also stated that

they had considered suicide. Additionally, students with a high degree of loneliness score an

average two letter grades below their peers (Rosenstreich & Margalit, 2015).

Strong friendships and peer groups have an effect on behavior, helping individuals

develop a full-sense of identity (Chickering & Reisser, 1993). These students are more likely to

complete their degree and engage in positive behaviors on college campuses. 2010 research

claims the effect of social ties on life span is twice as strong as exercising. However, there are

challenges for students that may be living on their own for the first time in their life, hundreds of

miles from their family support system.

Finding friends in a university environment relies heavily on face-to-face interactions (in

the classroom, in the dorm, an at event,...) Online and night class students have limited, if any

opportunity to meet and develop friendships. Schools invest heavily in first year orientation

programs, but more than 10% of students transfer in after freshman year (“Old Dominion

University Student Population And Demographics,” n.d.). Part of the first-year orientation

focuses on social integration to help their transition to college, transfer, non-traditional, and

Page 5: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 5

international students often have different challenges in this area. Interaction among students

tends to evolve around fellow classmates or common majors. Available social media options for

finding friends do not satisfy the preference of students who want to explore friendship

opportunities strictly within their university community. Social media options may also pose

additional risks to students exploring friendship opportunities.

There currently is not an effective tool that provides students the opportunity to explore

friendship opportunities based on their individual interests within the broader university

environment. Our product, University Friend Finder (UFF), is a mobile application designed to

help students match other students within their university community who will help them grow

both personally and academically.

2. University Friend Finder Product Description

2.1. Key Product Features and Capabilities

2.1.1 Help University Students Make Friends

UFF allows users to establish a profile of interests, goals and preferences, and displays possible

matches of user profiles based on likelihood of a good friendship. It allow users to accept or deny

these matches, and users who mutually accept a match are able to communicate in-app.

UFF’s target user base is constrained university students with a valid student email address.

It allows users to filter by characteristics such as gender, age, and distance.

2.1.2 Match Students With Relevant Organizations

UFF provides student organizations with the opportunity to build a profile of interests. Students

can search for organizations to easily find meeting times, contact info, etc.

2.1.3 Provide a Safe Environment for Communication

Page 6: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 6

Users can unmatch or reject current matches, giving them control over who they communicate

with.

2.2. Major Components (Hardware/Software)

UFF will be built with two major components, the front-end, client-facing smart phone

applications, and the back-end business logic and database system. Clients applications will

focus primarily on user interface presentation, exchanging data operations with the backend via a

web-based API. There will also be a limited browser-based interface for administrators of the

system. Hardware resources will be outsourced to cloud providers, with the production

environment defined via Docker’s containerization capabilities.

2.2.1 Hardware

2.2.1.1 Android and IOS Devices

We will be targeting Android and IOS devices for our student-facing application.

2.2.1.2 Backend Hardware

Our backend software (databases, web-servers, and core business logic applications,) will be

containerized via Docker and deployed through hosting services such as Heroku (or AWS,

&c…). Static images and other resources will be served via a content delivery network.

2.2.2 Software

The figures below outlines our software architecture, showing the components described in the

following section. The main characteristic of this design is that it relies on a client and server

architecture. The client used by the student end users is a lightweight API consumer application.

Most of the work is done in the Django application. All of the backend components are

contained within Heroku Docker containers.

Page 7: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 7

Figure 1: Major Functional Components Diagram

Figure 2: Software Architecture Diagram

Page 8: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 8

2.2.2.1 React/React Native

React is an open source Javascript framework for building user interfaces. React Native allows

developers to write these components in a single codebase and deploy them to both IOS and

Android platforms. We will be sacrificing some functionality by using React. Ideally, we would

have both IOS and Android developers to put the ‘finishing touches’ on each platform’s app, but

we think React should give us a majority of what we need.

2.2.2.2 Django

Django is a popular Python web framework that is fast, secure, and scalable. It was designed to

allow developers build applications quickly by taking care of much of the common web

development tasks: user authentication, views, forms, administration, and security by protecting

against cross-site scripting, remote code execution and SQL injections. It’s object-relational

manager has a rich API that allows developers to define and access database models via Python

code. There is also a rich library of other modules that have been released by the Django

community that can extend its core functionality and provide additional features.

2.2.2.3 GraphQL

GraphQL is a query language for web APIs. Standard REST APIs provide a number of endpoints

that allow various GET/POST operations to backend hardware. These APIs usually provide all

available data for any objects returned by a GET operation. GraphQL provides a single, unified

interface, and allows clients to define only the data attributes that they need. It also allows

multiple resources to be returned in a single request, as opposed to REST, which requires

multiple URL loads. This allows faster responses and lower bandwidth requirements.

Page 9: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 9

GraphQL removes the need for API versioning, as fields and types can be added without

impacting older client systems, which can be deprecated and phased out gradually.

We will be using the Graphene implementation of GraphQL, which is written in Python

with Django integration.

2.2.2.4 PostgreSQL

PostgreSQL is a high-performing object-relational database system which will be used to house

user profile data and other object models. Database access will be handled primarily by Django’s

ORM wrapper.

3. Identification of Case Study

Our team will be working with members of ODU’s Student Success Center to run a pilot test of

our application once the core features of profiles, matching, and messaging has been developed.

The core focus will be on student to student matching, with additional features for student

organizations and ad-hoc groups. An additional management web interface will be available for

system administrators for reporting and other functions.

3.1 Students

3.1.1 Why Students Need This Product

UFF will serve as a tool to help first-year and transfer students form new friendships and

communities within the student body. It will be extremely useful for those students most at risk,

mainly those who have moved from out of state, or those taking their classes exclusively online.

3.1.2 How Students Will Use This Product

Students will learn of the program through university web page, other school resources, as well

as on and off-campus marketing such as posters, flyers and marketing on social media. After

Page 10: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 10

downloading the application via the Apple or Goole app stores, they will sign up with their

university email. After confirming their account, they will create their profile, adding

demographic, academic, and personal interest information to their profile. Once their profile is

completed they will be presented with a list of potential friends that they can select. Students will

receive a notification when they have new match requests or confirmed matches. At this point,

they will be able to message these individuals over the app. From there, it will be up to the

students to determine whether to take their friendship to the level of a face-to-face meeting.

The above use case should suffice for a minimum viable product (MVP) version of the

app. The eventual real world version (RWV) will contain group functionality, which will allow

sanctioned university or ad-hoc groups be created, allowing users to find larger groups of like

minded individuals. This will present safer, less risky opportunities for strangers to meet in real

life than a first-time one-on-one blind meeting.

3.1.3 The Outcome of Students Using This Product

Students using UFF will have a powerful tool to make contact with other students will be able to

find friends who share personal or academic interests and hobbies.

3.2 Student Organizations

3.2.1 Why Student Organizations Need This Product

UFF will be a great resource for student organizations to reach new members. It will serve as a

complement to university directories and other web or social media presences for these groups.

3.2.2 Why Student Organizations Will Use This Product

Once a student user base has been established, student organizations will see the value of having

a presence on UFF. Students will be able to find groups more easily, and our matching

Page 11: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 11

algorithms can not only use profile data entered by the group administrators, but can potentially

use members’ interest data to generate composite profiles of group members.

3.2.3 The Outcome of Student Organizations Using This Product

Organizations will have another tool to recruit and communicate with members that are looking

to make connections with other people.

3.3 Moderators

Moderators will be responsible for reviewing complaints, manual and automatically flagged

content, and will have the ability to issue warnings, and ban users if necessary. They will have

access to a browser based console that they can use to manage this workflow. Activity reporting

capabilities will also be made available within this dashboard for stakeholders.

3.4 Potential Other Users

For the time being, UFF is focused solely on serving large, public universities.

4. University Friend Finder Prototype Description

4.1. Prototype Architecture (Hardware/Software)

The core backend Django framework will be deployed to a Heroku dyno along with supporting

resources such as the PostgreSQL database and any other logging, monitoring, caching and task

queue tools needed via a Dockerbuild file. This setup will allow developers to maintain a

consistent architecture across development, test, and production platforms. Additional dynos can

be spawned as needed to provide load-balancing and additional hardware resources as app usage

increases. Native smart-device apps will be built and deployed through React Native.

Page 12: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 12

4.2. Prototype Features and Capabilities

Features targeted for development during the prototype are listed below.

Functional Element RWP Prototype

Account Registration and Verification Fully Functional Fully Functional

Student Profile Creation and Management Fully Functional Fully Functional

Friend Matching System Fully Functional Fully Functional

In-app Messaging Fully Functional Fully Functional

Student Organization Recommendations Fully Functional Simulated

Student Organization Profile Management Fully Functional Not Implemented

Content Reporting Fully Functional Fully Functional

Moderation Dashboard Fully Functional Not Implemented

Push Notifications Fully Functional Not Implemented

Support for Multiple Universities Fully Functional Not Implemented

Figure 3: Real World Product vs. Prototype

4.3. Prototype Development Challenges

One of the major challenges for this prototype is the team’s lack of familiarity with core

architecture components. The ability to spin up a Django instance in a Heroku dyno is a

relatively trivial task for some team members, but other technology, such as GraphQL and

React/React Native, are brand new to the team and may pose significant challenges for

implementation.

Page 13: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 13

The team must be ready to realistically assess their ability to deliver these components,

and be prepared to fall back to a simple Django web-based interface for students if the

architecture decisions prove too complicated to meet milestones.

Other technical challenges include dealing with machine recognition of text and images,

and the administrative overhead needed to validate these assessment results and other, manually

flagged content. There are also the legal ramifications of providing a platform that may be used

for harassment, as well as those standards imposed by university administrators.

Additionally, there is the challenge of building a social platform with a small user base.

Our algorithm designers will likely have to build out defaults for situations where users don’t

have any actual matches. Testing will be difficult, as it will require some sort of mocked-user

data in order to demonstrate operation. Crawling or web scraping of university groups and

classes might be necessary to gang-load data into the app to give pilot users some useful data.

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.

● Dyno: See Heroku.

Page 14: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 14

● 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.

● Heroku: A cloud application platform which provides various applications inside smart

containers, called Dynos. Heroku has hosted versions of many modern apps and provides

many developer workflow tools.

● 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.

Page 15: Department of Computer Science - Old Dominion …410copper/labs/docx/lab1_w… · Web viewUFF provides student organizations with the opportunity to build a profile of interests

University Friend Finder Product Description 15

6. References

Campus Loneliness Fact Sheet. (2018, March 23). Retrieved December 11, 2019, from The

UnLonely Project website: https://artandhealing.org/campus-loneliness-fact-sheet/

Chickering, A. W., & Reisser, L. (1993). Education and Identity. Second Edition. The Jossey-

Bass Higher and Adult Education Series. Jossey-Bass Inc.

Old Dominion University Student Population And Demographics. (n.d.). Retrieved December

11, 2019, from https://www.collegetuitioncompare.com/edu/232982/old-dominion-

university/enrollment/

Rosenstreich, E., & Margalit, M. (2015). Loneliness, Mindfulness, and Academic Achievements:

A Moderation Effect among First-Year College Students. The Open Psychology Journal,

8, 138–145. https://doi.org/10.2174/1874350101508010138