An Android app to implement a new mode of authentication which will have two modules, (a) user registration, and (b) user verification and integration of the two modules to an authentication server. The mode of authentication is based on users audio.
Functional Flow for user registration module:
a. During the registration, a user should be present with a screen where they need to fill in the username and choose the type of audio recording he/she wants to perform.
b. Once the user chose the type of audio recording they want to perform, the user should be asked to perform the recording n number of times (n samples). n should be a configurable parameter. The user has to record their audio one sample at a time by pressing a start button. Once the audio recording is done the user has to stop the recording. The recorded audio is then sent to the server (audio file). The recorded audio, the associated username, type of audio recording along with date and time should be stored in the database on the server.
However, if the user is not happy with the audio recording, then he should be able to cancel the recording and start again.
c. Once the required n samples are stored on the server, a processing step will run on the server. Once the processing step is successful on the server, the user should get a message saying "Registration done for x type of audio recording for user $username”. The user should then have an option either to perform user verification on the registered type of audio recording or register for other types of audio recording. Depending on the user input, you show him the screen to verify or register for the other type of audio recording.
Point to take care of during the user registration:
a. A user should not be allowed to register for the same type of audio recording type again.
Functional Flow for user verification module:
a. Present a screen and ask the user to enter their username and the type of audio recording they want to perform.
b. Let the user perform the type of audio recording by pressing a start button. The user then stops recording the audio after they have performed the audio recording.
c. The audio recording (sample) goes to the server for verification. A processing step will run on the server.
d. If the result of the computation process on the server is ok, then the user is shown a screen saying “Welcome $username”. Otherwise, the user is shown a screen saying “You are not $username”.
Point to take care of during the user verification:
a. A user should not be allowed to verify the audio recording type for which registration has not been done.
Overall, the project involves writing code for GUI of an Android App which will mainly consist of:
a. recording audio of a person.
b. designing Navigation (screen layouts, buttons, bars, icon, graphics design etc.).
c. sending recorded audio and other attributes to a server over the network.
d. receiving responses from the server over the network.
e. Designing logo for the app.
f. You need to have your own Linux server preferbaly with Ubuntu to test the server side code.
The app has to be integrated with a server back end which will involve:
a. Adding recorded audio and other attributes received over the network to a database.
b. Sending response back to Android App over the network.
The project should be delivered in two phases:
Phase 1: A workable app with bare minimum requirements being implemented within
by 17-18th July, 2017.
Phase 2: A fully finished app with all the requirements being implemented (next 3 weeks).