department of computer science - old dominion …410copper/labs/docx/lab1_w… · web viewuff...
Post on 22-May-2020
1 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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.
University Friend Finder Product Description 7
Figure 1: Major Functional Components Diagram
Figure 2: Software Architecture Diagram
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.
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
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
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.
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.
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.
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.
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
top related