Programming Project 03: HUstagram
HUstagram
This is your third assignment, you will receive step-by-step instructions on how to get this app working. We hope that through this assignment you will gain significant knowledge on how to create an interesting Android app for your final project.
Please start early, and read through all the directions before starting
Note that you don't have to follow all the steps exactly, however, you have to implement all the required functionality of the application.
In this assignment, We'll be making a very simple image uploading app. Broadly, a user would be able to take a picture with the phone's camera, have it uploaded to a server, and then view their images on their phone. Each picture will have some metadata associated with it: a comment, and the date it was taken.
MongoDB Storage
you will use https://cloud.mongodb.com/ for data storage.
for this assignmnet you only need one collection, call it image in this collection you need to store image name, comment and date time of image upload.
you don't have to worry about edit and delete, you can do this manually and not through the application.
Camera
you need to use the Android native camera API as discussed in class (if you need more information you can check the Upload Images to Server page)
users can cancel image capture, if so, you need to notify them using a Toast.
image thumbnail is acceptable.
when the image is captured you need to display it to the user as shown in the first activity in the image below.
comment and image are required for server upload.
Server
use FLASK server as an endpoint for all requests and image uploads.
FLASK can also be used as images static file serving, you can identify a static folder as follows in your app.py file, where /images directory is where you need to store your images:
from flask import Flask
app = Flask(__name__,
static_folder='images')
In this project, you also need two activities to show all uploaded images, you can use a 3 X n grid to show images, make sure that the user can navigate back to the mainactivity where they can upload more images.
users can also click on any of the uploaded images and go to another activity to see the full image and the image comment as shown in the last mockup in the image below.

Grading
In general, if you've followed the instructions above, you'll earn the vast majority of the points below.
(35%) Logic - does the app make sense? does it cover all the requirements?
(25%) Storage - is MongoDB and FLASK used correctly? Do bitmaps get correctly encoded and stored on the server?
(20%) Camera - is the camera functionality implemented correctly?
(10%) Design - is the app well designed? Do views overlap?
(10%) Style - are styles or logic duplicated? Is the flow of control intuitive?
Deliverables
Project GitHub link submitted to CANVAS page.
inside the project directory, you need to include your FLASK .py files in another directory called server.
Readme.txt file for more instructions (use this file to describe your application and all extra features you add to your application)
Last updated
Was this helpful?