Android Chat App

In Progress

**Project Overview**

This project is for a chat app for android. The API and server portion of this app are both completed. The worker will follow the design guidelines and API documentation attached to this project. The app features realtime chatrooms, realtime private messaging, user profiles, image uploading from the app, as well as many more features, described throughout the details below.

1. App must be compatible with all android phones running 2.1 and above.

2. App requires both landscape and portrait versions of each screen (already designed)

3. App must be written in native android java. No using third party development SDKs (appcelerator titanium, corona mobile, etc)

4. When the app is not in the foreground, the app must continue polling for new private messages. If new private messages are received, it will display a notification in the standard android notification drawer. If the user clicks on that notification, it will bring the user directly to the private message inbox screen.

5. If the user exits the app, the app must still continue polling for new private messages according to their settings (every 15 minutes is the default)

## Deliverables

**FULL APP DOCUMENTATION IS AVAILABLE IN THE ATTACHED PROJECT FILE.**

**Project Overview**

This project is for a chat app for android. The API and server portion of this app are both completed. The worker will follow the design guidelines and API documentation attached to this project. The app features realtime chatrooms, realtime private messaging, user profiles, image uploading from the app, as well as many more features, described throughout the details below.

1. App must be compatible with all android phones running 2.1 and above.

2. App requires both landscape and portrait versions of each screen (already designed)

3. App must be written in native android java. No using third party development SDKs (appcelerator titanium, corona mobile, etc)

4. When the app is not in the foreground, the app must continue polling for new private messages. If new private messages are received, it will display a notification in the standard android notification drawer. If the user clicks on that notification, it will bring the user directly to the private message inbox screen.

5. If the user exits the app, the app must still continue polling for new private messages according to their settings (every 15 minutes is the default)

**API Overview**

The API portion and server for this app are both complete and will not be worked on by the chosen worker of this project. You will need to follow the API documentation attached to this project for the full list of commands, values, and description of what each command does. I wrote the API myself, so I of course am free to help walk you through using it, answer any questions, or even improve upon it if needed.

1. All commands are sent via POST calls to my server.

2. All data is returned in JSON format

3. The app will also poll the API every 2 seconds (when the app is open) for new private messages and chatroom messages (if the user is logged into a chatroom)

**Design Overview**

The design for the app is also completed. You must follow the attached design files.

1. The app will have a static toolbar. This must not transition from screen to screen and appear static the entire time the app is open.

2. Many screens will contain several photos and a lot of data. All of these screens must scroll very smoothly

3. Screen to screen transitions must be very fast

4. If the user receives a private message while the app is open, the toolbar will show an alert on the private message button, as well as make a sound and vibrate (according to the user's options)

5. The toolbar will also have a drop down menu when the setting button is clicked (far right) This drop down will contain links to all sections of the app for quick access.

**Advertisements**

Every screen will contain an ad on it. These ads are provided by the millennial media SDK. Each ad will refresh when the screen is opened, as well as every 30 seconds if the user remains on that screen for that long. The ads are NOT shown in the design files. The location of each ad will be described in the screen overview below. The documentation millennial media SDK can be found here: <[url removed, login to view]> The download can be found here: <[url removed, login to view]> . The user values that are sent with each ad request are returned as a JSON object when the user successfully logs in.

**Communication**

I would prefer the worker use an instant messenger for quick communication, I typically use skype and gchat, but am willing to use whatever the worker wants. I am available for answering questions most of the day and am VERY happy to answer them quickly so work can progress easily for both of us.

**Future Projects**

I would prefer to work with someone who can also develop iPhone applications. I plan on bring this app to the iOS platform as well and would like to work with the same person. I also have many ideas for improving upon this app and would like the worker to be available for improvements.

**Screen Overview**

**Login**

Design Folder: login

Advertisement Location: No Advertisement Shown

Description: The login screen is the first screen the user will see. It is where they enter their username and password, register a new account, or use the forgot password system.

Required Functions:

1. Has option for saving username and password

2. Has option for logging in automatically when the app is opened

3. Has buttons to get to the register and forgot password screens

4. The "By logging in you agree to our terms of use" text will open a browser to the terms of use page

**Register**

Design Folder: register

Advertisement Location: No Advertisement Shown

Description: Screen is used for registering a new account for the app

Required Functions:

1. The API will send back errors, these will need to be displayed easily for the user to see

2. After a successful registration, the app will automatically log the user in

**Forgot Password**

Design Folder: forgotpassword

Advertisement Location: No Advertisement Shown

Description: Screen is used for requesting a password reset code, or setting a new password using a reset code

Required Functions:

1. After successful password reset, the app will save the new password on the user's app.

2. After successful password reset, app will automatically log user in

**Home**

Design Folder: homeScreen

Advertisement Location: Bottom of screen

Description: Screen displays several buttons for navigating the app, as well as basic information.

Required Functions:

1. If the user has unread messages, the number of unread messages will be displayed on top of the messaging button.

2. On top of the online user's button, 3 random user's photos will be displayed as well as the number of online users

3. All of this information is returned to the app via the openHomescreen API call

**Messaging Inbox**

Design Folder: messagingInbox

Advertisement Location: Directly under toolbar

Description: This displays a list of all of the user's the user has sent or received private messages from.

Required Functions:

1. Displays the last message received or sent

2. Displays an arrow indicating if the message was sent or received

3. Clicking on a user's photo will open their profile

4. Clicking on the X on the right will delete the thread of messages

5. Clicking anywhere else in a message box will open the message thread between that user

**Message Thread**

Design Folder: openMessageThread

Advertisement Location: Above text entry box

Description: This screen is where a user can send and view private messages with another user

Required Functions:

1. Clicking on user's photo will open their profile

2. Entering a message and pressing the arrow or pressing enter on the keyboard will send a message to another user

3. Clicking on the paper clip will bring up a list of the user's photos for sending a picture message. If the user clicks on a photo, it will send the picture as a message

**Friends List**

Design Folder: friendsList

Advertisement Location: Directly under toolbar

Description: Shows a list of the user's confirmed friends

Required Functions:

1. Clicking anywhere on a friend box will bring up the user's profile

2. The Green/Red indicator will show if the friend is online or offline

**Chatroom List**

Design Folder: chatroomList

Advertisement Location: Directly under toolbar

Description: Shows a list of available chatrooms for joining

Required Functions:

1. Clicking anywhere on a chatroom will join the chatroom

2. Clicking on Regular or User Created will re-request the list of chatrooms while sending the appropriate call to the API (1 or 2, depending on the user's selection

3. The Create Room button will open dialog to create a chatroom

**Open Chatroom**

Design Folder: openChatroom

Advertisement Location: Above text entry box

Description: Realtime chatroom

Required Functions:

1. Clicking anywhere on a message box will bring up the user's profile

2. Entering a message and pushing the arrow or enter on the keyboard will send a message to the chatroom

3. Clicking on the user count on the top right will open the user list

**Edit Profile**

Design Folder: profileEditor

Advertisement Location: Bottom of screen

Description: Screen for editing the user's profile

Required Functions:

1. If the user clicks on the change button, it will bring up a full list of their uploaded photos.

2. If a user clicks on a picture, it will change their profile image

**Edit Photos**

Design Folder: photosEditor

Advertisement Location: Bottom of screen

Description: This screen allows the user to edit, delete, and upload their photos

Required Functions:

1. Clicking on the settings button on a photo will bring up a screen to change the image's privacy type.

2. Clicking on the X will delete the photo

3. Clicking on Public, Friends, and Private will change the list of images show

4. Upload new photo will bring up the user's on device photos. From here, the user can choose to upload a new photo

**User Search Options**

Design Folder: None

Advertisement Location: Bottom of screen

Description: This screen allows the user to search for other users using a variety of filters.

Required Functions:

1. Allows the user to select from Male, Female, Online, Only with Photos

2. Allows the user to search by distance from the user (only if the searching user has entered their location in their profile

3. Also allows the user to search by username

**User Search Results**

Design Folder: userSearchResults

Advertisement Location: Bottom of screen

Description: Shows the results of a user search

Required Functions:

1. Clicking anywhere on a search result box will open the user's profile

**Online Users**

Design Folder: None

Advertisement Location: Directly under toolbar

Description: Shows a random selection of online users

Required Functions:

1. Allows the user to filter between Male, Female, and Both

2. Clicking on a user's photo will bring up their profile

**Options**

Design Folder: options

Advertisement Location: No Advertisement Shown

Description: Shows the available options for the app

Required Functions:

1. Will use the API to grab the picture message privacy setting

2. Allows the user to change the font size for private messages and chatrooms

3. Not shown in Design: Messaging notification must also have a sound option

4. Not shown in Design: Background polling time (15 min default)

**Ignore List**

Design Folder: ignoreList

Advertisement Location: Directly under toolbar

Description: Shows a list of the user's someone has ignored

Required Functions:

1. Displays an X next to each user box. If a user clicks on the X it will removeIgnore

2. Clicking anywhere else on an ignore box will open the user's profile

**View Profile**

Design Folder: openProfile

Advertisement Location: Directly under user's main photo

Description: Shows another user's profile and options for interacting with that user

Required Functions:

1. Clicking on the message button will open a private message thread with the user

2. Clicking on the Friends button will either Send a friends request, Accept a pending friends request, or remove the friend, depending on the current status of the friend. The icon will also change from a + or X depending on the status

3. Refresh will refresh the user's profile

4. Report will bring up a list of the user's photos for reporting them

5. ignore will toggle adding and removing an ignore. The icon will change between + and X depending on the current status

6. Clicking on the show all button will show a list of the user's photos

7. Clicking on any photo will bring up that photo in full screen

**View Other User's Available Photos**

Design Folder: openPhotoList

Advertisement Location: Bottom of screen

Description: Shows a list of a user's photo, organized in blocks with a shield icon on each photo. The shield icon shown in the design is to big and must be smaller on each photo.

Required Functions:

1. Clicking on the shield icon will report the photo for breaking the terms of user

2. Clicking anywhere else on a photo will bring up the photo in full screen mode

**Full Screen Photo**

Design Folder: None

Advertisement Location: No Advertisement Shown

Description: Shows a photo in full screen. Hides the toolbar.

Required Functions:

1. Will have a shield icon in the lower right corner, if clicked, it will report the photo

2. Allows the user to pinch and zoom and double tap to zoom on the photo (standard mobile photo controls)

Skills: Android, Java, Mobile Phone

See more: written report guidelines, work online from home for free data entry, work on java projects online, work from home phones, work from home online ideas, work from home online chat, work from home ideas free, work from home editing images, work from home data entry free registration, work from home chat, work from home answering calls, wiki online, wiki icon, wiki android, where's my android, where can i get free app design help, when to work mobile app download, what will i need to develop an iphone app, what is offline data entry, what is ios device, what is ios 7, what is an ios device, what is android sdk, what is an android device, what does an advertisement need

Project ID: #2671656

Awarded to:

Kaballo

See private message.

$2353 USD in 62 days
(56 Reviews)
6.4

14 freelancers are bidding on average $1796 for this job

ransika

See private message.

$1600.55 USD in 62 days
(57 Reviews)
7.0
JoltaTech

See private message.

$2100.35 USD in 62 days
(23 Reviews)
6.2
linoagli

See private message.

$1750.15 USD in 62 days
(26 Reviews)
5.7
asfdfdfd

See private message.

$2000.05 USD in 62 days
(26 Reviews)
4.9
bbahrami

See private message.

$1700 USD in 62 days
(7 Reviews)
4.1
basilkeldhose

See private message.

$1997.5 USD in 62 days
(1 Review)
2.6
ahmedgamil2

See private message.

$2120.75 USD in 62 days
(23 Reviews)
2.5
swsDreams

See private message.

$1500.25 USD in 62 days
(1 Review)
0.8
incredibled

See private message.

$1700 USD in 62 days
(0 Reviews)
0.0
dilchau26

See private message.

$2125 USD in 62 days
(0 Reviews)
0.0
openfreelance4u

See private message.

$1800 USD in 62 days
(0 Reviews)
0.0
fcomputer

See private message.

$1000.45 USD in 62 days
(0 Reviews)
0.0
SumantAnand

See private message.

$1500.25 USD in 62 days
(0 Reviews)
0.0
ankitkatiyar28

See private message.

$2000.05 USD in 62 days
(0 Reviews)
0.0