Professional Documents
Culture Documents
Proposal
Proposal
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
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
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
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
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
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.
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.
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
This view needs the information from Degreeworks. And of enrolling classes, it should have the
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
This view needs the class history from CUNYfirst and be able to communicate with the
BlackBoard.
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
This view should have the ability to communicate with the CUNYfirst.
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 3: Build the connection module to communicate with the CUNY servers.
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/