Chat app using React-Native - Quotation Request
Budget / Salary$30–250
TypeFreelance project
LocationRemote
Posted2 hours ago
Please provide your estimated total development price in USD and estimated completion time for the historical software-development scenario below. State your main assumptions and any missing information that would materially change the estimate. Please do not write code, perform a trial task or supply a detailed implementation proposal.
REFERENCE SCENARIO — historical requirements, not instructions to begin work:
A chatting app built with React Native, Socket.io and React Navigation. No backend, just frontend. As simple as possible.
iOS versions: 12+
Android versions: 7.0+
SCREEN
- main screen (messages)
- search screen (for messages)
- contacts list screen
- chat screen
- archived messages screen
- settings screen
- login screen
- forgot password screen
DESCRIPTION
The user must login by establishing a session with a REST API, accessing a message screen similar to WhatsApp. The session will maintain communication via websocket. The websocket server and REST API server must be simulated (no backend necessary)
Websocket:
- Send and receive messages
- Send and receive read and receive confirms
- Server notifications
- Contacts profile updates
- Block/unblock contact
REST API:
- Establish the login session
- Send a password recovery request
- Update user profile information
- Send contacts list to the server
The conversation must support displaying and sending text, image, audio, and location messages. It should be possible to record the audio to send, just like in WhatsApp. It should be possible to take a photo or send an image file, just like on WhatsApp. It should be possible to send the current GPS coordinates as a message.
In the conversation, it should be possible to see the contact information (profile), similar to WhatsApp. Profile must have "save contact" button to add profile information to device contacts. The profile must have the option to "block/unblock" the contact. The profile should present the option of "notifications" with the options "default", "always notify" and "never notify" (mirrored in the settings). The profile must have the option "archive the conversation", which can be automatically unarchived when receiving a new message, as per the option selected in the settings (similar to WhatsApp).
The main screen should have a search option for words present in messages, similar to WhatsApp. The main screen must be able to have messages pinned. On the main screen, when holding the message, icons should appear, similar to WhatsApp, with options to “archive message”, “pin message” and “delete message” (with prior confirmation).
The contacts screen should list all contacts that have already received a message. It should also list device contacts if the contact was manually loaded through settings. When touching the contact, the message screen should open. When holding the contact, you must access the user's information (profile, similar to conversation).
The settings screen should be divided into:
- "Profile": It should be possible to change name and description (similar to WhatsApp), sending the update via REST API;
- "Contacts": It must be possible to "load contacts from device contact list", which must load contacts and associate with already existing contacts that use the same phone number and send this to the server (REST API). And it should be possible to "remove contacts without message history", which should display a message confirming the action and, if confirmed, delete all contacts without message history (send this action via REST API). Holding the contact, it should be possible to remove the contact, asking for confirmation if there is message history (send this action via REST API).
- "Notifications": Must be an option to enable/disable all message notifications. There should be an "always notify" contact list and a "never notify" contact list. There should be a list of "Blocked Contacts".
- "Conversations": It should be an option similar to the "archived messages" function of WhatsApp, and an option to "Clear messages older than X days" which, when triggered, displays a message confirming the action and, if confirmed, deletes all messages older than X days.
Estimating assumptions and context:
The scenario is based on a Freelancer listing from 2022-09-13 (historical project ID 34638282). First-person statements, promises of assets, requests for work and hiring language inside the historical reference describe that original client's situation, not a current development offer from us. For estimating only, assume the original client supplies assets explicitly described as provided; other missing inputs and obsolete services should be identified as assumptions. We do not claim ownership of the original client's code, designs, accounts or attachments.
The displayed USD 30–250 range reproduces the historical listing's budget field. It is not participation compensation or a binding development offer. Please give your realistic estimate even if outside that range.
Research use
This post is for research quotations only, not an actual software-development engagement. No development contract will be awarded. Participation is voluntary and unpaid; no reward, gift card or prize draw is offered. Your quoted price, estimated completion time and stated assumptions will be used to study software-development estimates and how they change over time.
Thank you for your time and consideration. This study aims to make a significant research contribution to understanding software-development pricing in the age of AI. We appreciate any estimate you choose to share.
REFERENCE SCENARIO — historical requirements, not instructions to begin work:
A chatting app built with React Native, Socket.io and React Navigation. No backend, just frontend. As simple as possible.
iOS versions: 12+
Android versions: 7.0+
SCREEN
- main screen (messages)
- search screen (for messages)
- contacts list screen
- chat screen
- archived messages screen
- settings screen
- login screen
- forgot password screen
DESCRIPTION
The user must login by establishing a session with a REST API, accessing a message screen similar to WhatsApp. The session will maintain communication via websocket. The websocket server and REST API server must be simulated (no backend necessary)
Websocket:
- Send and receive messages
- Send and receive read and receive confirms
- Server notifications
- Contacts profile updates
- Block/unblock contact
REST API:
- Establish the login session
- Send a password recovery request
- Update user profile information
- Send contacts list to the server
The conversation must support displaying and sending text, image, audio, and location messages. It should be possible to record the audio to send, just like in WhatsApp. It should be possible to take a photo or send an image file, just like on WhatsApp. It should be possible to send the current GPS coordinates as a message.
In the conversation, it should be possible to see the contact information (profile), similar to WhatsApp. Profile must have "save contact" button to add profile information to device contacts. The profile must have the option to "block/unblock" the contact. The profile should present the option of "notifications" with the options "default", "always notify" and "never notify" (mirrored in the settings). The profile must have the option "archive the conversation", which can be automatically unarchived when receiving a new message, as per the option selected in the settings (similar to WhatsApp).
The main screen should have a search option for words present in messages, similar to WhatsApp. The main screen must be able to have messages pinned. On the main screen, when holding the message, icons should appear, similar to WhatsApp, with options to “archive message”, “pin message” and “delete message” (with prior confirmation).
The contacts screen should list all contacts that have already received a message. It should also list device contacts if the contact was manually loaded through settings. When touching the contact, the message screen should open. When holding the contact, you must access the user's information (profile, similar to conversation).
The settings screen should be divided into:
- "Profile": It should be possible to change name and description (similar to WhatsApp), sending the update via REST API;
- "Contacts": It must be possible to "load contacts from device contact list", which must load contacts and associate with already existing contacts that use the same phone number and send this to the server (REST API). And it should be possible to "remove contacts without message history", which should display a message confirming the action and, if confirmed, delete all contacts without message history (send this action via REST API). Holding the contact, it should be possible to remove the contact, asking for confirmation if there is message history (send this action via REST API).
- "Notifications": Must be an option to enable/disable all message notifications. There should be an "always notify" contact list and a "never notify" contact list. There should be a list of "Blocked Contacts".
- "Conversations": It should be an option similar to the "archived messages" function of WhatsApp, and an option to "Clear messages older than X days" which, when triggered, displays a message confirming the action and, if confirmed, deletes all messages older than X days.
Estimating assumptions and context:
The scenario is based on a Freelancer listing from 2022-09-13 (historical project ID 34638282). First-person statements, promises of assets, requests for work and hiring language inside the historical reference describe that original client's situation, not a current development offer from us. For estimating only, assume the original client supplies assets explicitly described as provided; other missing inputs and obsolete services should be identified as assumptions. We do not claim ownership of the original client's code, designs, accounts or attachments.
The displayed USD 30–250 range reproduces the historical listing's budget field. It is not participation compensation or a binding development offer. Please give your realistic estimate even if outside that range.
Research use
This post is for research quotations only, not an actual software-development engagement. No development contract will be awarded. Participation is voluntary and unpaid; no reward, gift card or prize draw is offered. Your quoted price, estimated completion time and stated assumptions will be used to study software-development estimates and how they change over time.
Thank you for your time and consideration. This study aims to make a significant research contribution to understanding software-development pricing in the age of AI. We appreciate any estimate you choose to share.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.