Write an application to ping servers that are configured by the user. Server configuration is a hostname (or IP address) and a ping interval (fixed at 1s, 5s, 10s, 15s, 20s, 30s, 1m, ... 30m, 1h, 2h, 4h, 6h, 8h, 12h, 24h). It should be possible to add new servers and modify or delete the existing ones. To add servers, use a floating action button in the UI. The modification and deletion options should be available from the action menu in the individual server's history view (see below).
The application should only sends pings when a mobile/Wi-Fi network connection is active. If the network connection is not available, UI should display a bar stating there is no network connection.
The configured servers should be represented by colored squares in a RecyclerView, that should be in an Android Fragment to be reused in the notifications (see below). A square should be gray if the server state is unknown (e.g. just after it is configured), green if ping is ok, and red otherwise. It should be possible to zoom squares in and out using a pinch gesture.
Changes in each server's availability (a history) must be recorded in a DB. E.g. if a server check at 1pm is successful and at 1:05pm is not, a record should be created in the DB for that server with a status = DOWN, last success time = 1pm, first fail time = last fail time = 1:05pm. Last fail time should be updated for subsequent unsuccessful checks, e.g. at 1:10pm. If the server goes up at 1:15pm, the new record should be created with a status = UP, last fail time = 1:10pm, first success time = last success time = 1:15pm. The last success time should be updated for subsequent successful checks. If the server goes down again, the new record should be created, and so on.
It should be possible to view the history for all servers by swiping from the overview tab to the history tab, or open in a new Android activity for individual servers by pressing on the corresponding square. The history item should include the status (UP/DOWN), the IP/hostname of the server, the first fail/success time. The history should be sorted by the first fail/success time in descending order.
The application should work in background by default, and a permanent notification should be shown to the user while it is working in background. Clicking the notification should open the application. There should be an option available to close the application without going into background.
If a server's status changes while the application is in background, the screen should be turned on and the status, server IP/hostname and the first fail/success time should be displayed, along with a fragment displaying an overview of all servers occupying the rest of the screen. If another server's status changes while the previous status is displaying, the same screen should be reused. The view should be dismissed after a timeout (15s, configurable), counted from the last status change.
Hi,
I am confident in developing this app.
Have experience working on fragments, services and receiver.
All these things will be required to get along with this.
Thanks
$150 SGD en 7 días
4,9 (16 comentarios)
4,7
4,7
5 freelancers están ofertando un promedio de $229 SGD por este trabajo
Hi
I am a Mobile App Developer.
I would like to participate in developing your project.
I have already developed many Android and iPhone apps.
You might have read this in my profile.
Please send me private message. We can discuss it.
Of course, I will do my best.
Thanks in advance.
Greetings for the day
We are experts in mobile application development and we can make your application within timeline and your budget.
We read through your requirements and need more details and elaboration on your idea so please contact us so we can make a good business.
Thanks and regards