1 Project Overview
4 In this project, you will be setting up a sample Android App that hosts its backend using Firebase, and Google App
5 Engine. The aim of this project is to get you familiar with the process of Android backend design. A few important
6 things to know before starting this project.
7 • This project involves Google Cloud Resources that incur monetary cost. To cover such costs, I will be
8 providing each of you $50 dollars Cloud Credits that you will be using for this project. (See Section 2.1)
9 Normal spending for this project will be a fractional of the total credits. After finishing this project, you can
10 keep the rest of the credits but only use it in ways that align with Google Cloud Education Agreement. For
11 example, using this credits towards your term project.
12 • This project is due by 10:00pm on Nov. 27 and accounts for 10% of course scores. Given the complexity of
13 this project, and the Thanksgiving break in between, please do start early on this project!
14 • Each student must complete this project individually. However, I do encourage you to share ideas, advice
15 and resources with each other. Please contact me if you have questions about what constitutes appropriate
17 • If you have any questions regarding this project, please post it in the forum with the part you have questions
18 with (using line numbers to the left).
19 2 Project Preparations
20 2.1 Coupons for Google Cloud Credits
21 • Following a separate email instruction I sent out about obtaining a coupon for Google Cloud Credits. To
22 obtain a coupon, you need to use your email address with domain “@wpi.edu” and follow the instruction.
23 • For this course, we only have enough coupons for officially registered students. In order to make sure
24 everyone have access to the credits, I’d like to ask you please do not share the redeem URL with others, and
25 please only request for one coupon.
26 3 Project Requirements
27 3.1 Setup the PlayChat app using Firebase and AppEngine (50 points 35 points)
28 Please follow the instructions from: https://cloud.google.com/solutions/mobile/mobile-firebase-app-engine-flexible
29 all the way until the Section “What’s Next” to setup the PlayChat App.
30 • (10 points) Successfully deploying backend to App Engine. To demonstrate you have reached this step,
31 please include a screenshot similar to Figure 1(a).
32 • (10 points) Successfully running the Android App. To demonstrate you have reached this step, please include
33 a screenshot similar to Figure 1(b). Your screenshot should contain your own name which should appear after
34 you sign in using your Google account.
35 • (15 points) Explain the data stored in Firebase Database. First, use the PlayChat app in your Android device
36 to perform a few tasks. Note down the tasks. Then go to your app’s Firebase database, and take a screenshot
37 similar to Figure 1(c). You should expand all the tab by clicking the “+” sign and take multiple screenshots
38 if necessary. Explain these screenshots by correlating them with the actions your performed earlier. Write
39 down your explanation.
Tian Guo, WPI Page 1 of 3
Figure 1: Screenshots for deploying PlayChat App.
40 3.2 Save Servlet Data into Cloud Storage (50 points)
41 • (10 points) First find out how servlets are saving client data currently. Write down your finding by referencing
42 the servlet code. For example, if a method named save() inside a.java is responsible for the task of saving
43 data. Your writeup solution needs to be specifically point out as such, and explain the application logic of
44 save() method as well. Note: you need to be as specific as possible by referencing the code. However, simply
45 copying and pasting the appropriate code snippets are not enough to earn the full points.
46 • (20 points) Then read about and understand how Google Storage works. A starting point can be found
47 here: https://cloud.google.com/appengine/docs/java/googlecloudstorageclient/setting-up-cloud-storage Ex48 plain the steps you need to take to allow servlets to save data into Google Storage. Write down these steps.
49 • (20 points) Finally, refactor the existing servlet code so that data are saved using Google Storage.
50 3.3 Distributing Workload to Servlets (30 points)
51 • (10 points) First figure out how client-side workload is being distributed to Servlets currently. Write down
52 your findings. Refer to the first bullet point in Section 3.2 for writeup guideline.
53 • Extra Credit (20 points) Then refactor the servlet code to keep track of the average requests per second
54 each servlet is processing. Last, distribute incoming client requests to servlets based on the metric of average
55 requests per second.
56 3.4 (Extra Credit) Implement Your Own Features(30 points)
57 Each extra feature is given a 10 bonus points. For each extra feature you implemented, please briefly describe what
58 the feature is, how you implement it in the writeup, as well as the screenshots if applicable. Note that, the maximum
59 points you can get for this section is capped at 30 points.
60 4 Project Submission (5 points)
61 • Please make sure you have documented your implementation adequately with in-line comments.
Tian Guo, WPI Page 2 of 3
62 • Create a zip file, named cs4518Project3.zip, from a directory that contains your modified Android
63 project code, modified backend code, the screenshot images, and your writeup. Submit cs4518Project3.zip
through Instruct Assist1
Tian Guo, WPI Page 3 of 3