This is an old revision of the document!
Assignment
The assignment is an individual project in which you will apply what you have learned at the laboratories (Android programming and security guidelines) to develop a secure Android application.
Create an application which has the following components and functionalities:
At least 2 activities - 1p
At least 1 service - 2p
At least 1 broadcast receiver - 1p
Integration with at least 1
API, for example:
3p
-
-
-
1 Settings Activity (can be included in the minimum of 2 activities required for the project) and the use of Shared Preferences 1p (settings activity 0.5p and shared preferences 0.5p)
Respect the security guidelines presented throughout the lectures and labs
2p
Security guidelines
all services should not be exported if they are not meant to be used by other apps
use a local broadcast manager if necessary
declare only the necessary permissions in the manifest
check/request permissions in the activity/other component
always use https and, if necessary, validate the digital certificate if a custom one is used
always use internal storage
sensitive information to be encrypted (authentication tokens, passwords) using
EncryptedFile or
EncryptedSharedPreferences. For more information you can check
here
encrypt the data for sensitive communication (e.g. over Bluetooth)
In order to receive bonus points, the project must also have the main components and functionalities.
Bonus points can be obtained for including:
Input sanitization for storage db (to prevent SQLite injection) 1p
special UI design 1p
unit testing. 1-2p (depends on the unit tests)
code readability, modularization, clean code 1p
integration with an
API which belongs to a custom server written by you
1p
Timeline
Choose a topic for your app: 8-22 March 2020
discuss your idea with your teaching assistant (at the lab or by email)
submit a description of your app on Moodle (
SAS,
SRIC)
the TA will provide feedback, suggestions on Moodle for your idea
Intermediary project presentation: 6-7 May 2020, 20-22
Presentation will be a discussion with the TA, during the lab, about the progress you made on your project
There will be 4 slots on both 6 and 7 May in which you can present
Each presentation will take at most 10 minutes
Project presentations: 21 May 2020, 18-22
Grading
3 points for a complete assignment
Penalties:
0.3 points - for not submitting the project topic in time
0.5 points - for not presenting the intermediary project presentation
No points will be given if the project is not functional and doesn't respect the assignment requirements