You are on page 1of 9

To: Professor Vint

From: Leji Li
Subject: Building an Android app to provide better experience of CUNY online services
Date: December 5, 2019
Summary

CUNYfirst, BlackBoard and Degreeworks are the three CUNY online services that CUNY

students use the most. These services deeply connect with CUNY students’ academic life. But

because of the outdated design, CUNY students weren’t satisfied with the experience of these

three services on phone. Even though the CUNY provides serval mobile applications for these

three services, each of these mobile applications is just serving for one specific service platform.

My purpose is to build a mobile application to display the information of these three platforms,

so that the user doesn’t need to install three different apps or open three different web tabs on

browser to get access to the information from these three services. The application bases on

Android platform and is built using Kotlin language. Because CUNY didn’t provide any API

(Application Programming Interface) to let developer get information from its services, scraping

technology is used to grab the information from a service’s web pages.

Introduction

According to the survey, among 50 students who used CUNYfirst more than sometimes, 22 of

them were not satisfied with the experience on phone, which counts 44%. There are 57 students

used BlackBoard more than sometimes and 17 of the felt unsatisfied with the experience on

phone, which occupies 29.82%. The unsatisfied rate of BlackBoard experience is much lower

than the CUNYfirst’s one. The gap exists because the BlackBoard has an updated UI for mobile

platform with can adapt to the small screen. In general, among the 45 response on question when

asks the student their opinion on the BlackBoard experience on phone, 8 responders have the
positive feedback, and this is the only open questions that receipt positive responses. There

responses and the gap indicate that the mobile application works. In fact, when asking to

combine these three services into one uniform entrance, only 58.2% of the students made

positive response, which occupied more than half of the students. This data shows that CUNY

students thought integrating fragmented information of the CUNY online services is necessary.

Thus, the solution of this problem should be phone-capable and have the ability to let the user

access to all the information from these three services with one login in one window. In this case,

a mobile app is a suitable solution. A mobile app runs on mobile platform, which means it can

natively adapt to the small phone screen, grab data through internet and process the raw data.

Since the CUNY doesn’t provide any APIs, to get the information from the service, I need to use

the scraping technology.

Proposed Solution

The Android app view takes the part of displaying information and handle user’s input. The

scraping technology grabs the information from the CUNY’s services and provides to the

Android app view.

1. Android app design

a. Login view

The Login view accepts the CUNYfirst id and password to let the user get into dashboard view.

This view uses the same idea as the regular web page login. But the app will save the username

and password to local storage, so that the user doesn’t need to type in the login information when

opening this app, unless the user logout manually.


Figure 1 Login view Figure 2 Dashboard view

b. Dashboard view

The Dashboard view displays current day’s classes schedule, ordering by starting time in

increasing order, which means, the top of the list displayed is the first class of that day, and the

end of the list shows the last class of that day. User can select any day by clicking the date on the

app bar. The user can access to the menu by clicking the triple dash. When the user clicks a class

item, the app will route the user to the BlackBoard view of the corresponding class.

This view needs the class schedule information from the CUNYfirst.
Figure 3 Side menu Figure 4 BlackBoard view

c. Side menu

The side menu can let users accesses to other view so that the user can use other services. Users

can open the side by clicking the triple dash on the app bar of the Dashboard view. Users can

collapse the side menu by clicking the light gray area.

d. BlackBoard view

Users click the class item on the Dashboard view can get into the Blackboard view. Users can

exist the Blackboard view and return to the Dashboard view by clicking the return arrow on the

Blackboard view’s app bar. The Blackboard view’s app bar shows the class code information

and the name of the class. On the main view of the Blackboard view, it shows the grade of a

student earned, the assignment of this class, the recourses links that the web base blackboard has
and the instructor information. Users have quick access to the latest assignment on the main

view. Users click the “All Assignment” tap can get into a new view that holds all the

assignments of this class. The materials section is similar to what the web base BlackBoard has.

The instructor section shows the contact information of the class instructor.

This view needs the information from BlackBoard.

Figure 5 Financial view Figure 6 Degreeworks view

e. Financial aid view

The Financial view display users’ financial records of all semesters. Users can exist the Financial

view and return to the Dashboard view by clicking the back arrow on the Financial view’s app

bar.

This view needs information from CUNYfirst

f. Degreeworks view
Degreeworks view works similarly to the web base Degreeworks. It shows the credits

information of a student. The top of the main view is a student’s GPA, total applied credits and

total required credits. In the below is the no complete classes with light red background. The

section with light blue background holds the classes in progress, which are the classes that a

student is taking or schedules for next semester. The section with light yellow hosts the classes

that a student finished. These classes will have the GPA information. For the no complete

classes, if the student clicks the item, a new view will show up and can guide the student the

Enroll class view.

This view needs the information from Degreeworks. And of enrolling classes, it should have the

ability to communicate with the CUNYfirst.

Figure 7 Enroll class view Figure 8 Classes history view


g. Class history view

Class history view hosts all the classes that a student have grouped by semester. The class item

has the class code, class name, credit and grade. The student clicks the class item will be routed

to the Blackboard view of this class.

This view needs the class history from CUNYfirst and be able to communicate with the

BlackBoard.

h. Enroll classes view

Enroll classes view provides the similar operation of enrolling, swapping and dropping classes as

the operation that the web base CUNYfirst provides. Users can use the drop-down to select the

class and fill the 5-digit on the input field. After adding a class to the cart, users can hit the

submit button to finish the enrolling process.

This view should have the ability to communicate with the CUNYfirst.

2. Analyzing the URL connection to the CUNY servers.

As we can see that a view needs interact with at least one CUNY server. Without having the

official APIs, developers can simulate the URL connection to get raw information from the

server and send data to the server. This step is to analysis what URLs are needed to get the

demanded information. I need to find out the header setup, such as the cookies and authorization,

as well as the pattern body which contains the information should be sent to the server.

Schedule

Week 1-2: analysis the URL connections.

Week 3: Build the connection module to communicate with the CUNY servers.

Week 4: Build the Android app using simulated data.

Week 5: Connect the Android app and the connection module.


Budget

This proposal is to build an Android app, which will cost $10,000 for me to fully work on it.
Citation

Sejpal, S. (2017). Yudiz. Data scraping in Android using Jsoup (Java HTML parser).

https://www.yudiz.com/data-scraping-in-android-using-jsoupjava-html-parser/

You might also like