Android app type to do list
Budget: $30 – $250 USD
I am looking to create an Android to-do list application called EUROBASGAZ. This application will be used by the Master USER to input orders received from clients. Basuc is the Master user, while Stefan, Alin, Ionut, Petrica, and Cristi will be normal users.
1. The application will run on a fresh VPS server that needs to be configured.
2. Set the users and passwords as follows:
• Basuc: 8C@aractere
• Stefan: nastas@
• Alin: mog@
• Ionut: b@diu
• Petrica: c1rnu
• Cristi: com@n
3. Clients will be called from the application using Twilio.
‼️ Normal users must not see the clients’ phone numbers.
3. Upon starting the application, there should be two text input fields: one labeled ‘Name’ for entering the username and the other labeled ‘Password’ for entering the password. Below these two text fields, there should be a button called ‘START’. The text fields and button should be positioned at the bottom of the screen.
4. Once the START button is pressed, the authentication to the server should occur, and a new page called start1 should open.
5. On the start1 page, there should be three buttons named as follows: CONTRACTS and ORDERS. The buttons should be rectangular with rounded corners, arranged vertically, one in the upper half of the screen, one in the middle, and one in the lower half. The buttons should be large rectangular buttons with dimensions of 4cmx2cm.
6. Upon pressing the PARKING button, a page called parking1 should open.
6.1 On the parking1 page, there should be four empty boxes named as follows: VN18BSC, VN28BSC, VN38BSC, and VN58BSC. These represent four actual tankers.
6.2 These four boxes should be placed in the upper half of the screen, and they should progressively fill with dark yellow color based on the amount in the tank. The maximum capacity of the tanks is as follows: VN18BSC - 13,300 liters, VN28BSC - 18,800 liters, VN38BSC - 20,700 liters, VN58BSC - 37,500 liters. These values should not be displayed. Only the current amount in the tank should be displayed.
6.3 In the lower part of the parking1 page, there should be three buttons named as follows: 1. SOLD, 2. TRANSFER, 3. LOAD, and a text input field named textparking.
6.4 Regardless of the user, when they want to decrease the quantity in a tank on the parking1 page, they should enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered in the text field, the tank has been selected, and the blinking confirms this. They should then press the SOLD button, which will deduct the entered amount from the tank. Once this operation is complete, the text field should be cleared, and the tank/box should stop blinking.
6.5 When the user wants to increase the amount in a tank/box, they should do the following: enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered in the text field, and the tank has been selected. They should then press the LOAD button, and the amount in the tank will increase by the entered value. Once this operation is complete, the text field should be cleared, and the tank/box should stop blinking.
6.6 For the TRANSFER operation, the user will enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered, and the tank has been selected. The blinking confirms this. Now, when the user presses the TRANSFER button, the selected tank/box will become fogged, indicating that it can no longer be selected. The user will then have only three tanks available. Upon tapping one of these three tanks, the transfer operation will take place, which consists of deducting the entered amount from the initially selected tank and adding it to the second selected tank. For safety, when tapping the second tank, the user should be asked via a message if they want to transfer the amount of X liters from the first selected tank to the second selected tank.
7. Depending on the authenticated user, when pressing the ORDERS button, it should open a page called orders1 for the master user BASUC, and for any normal user, it should open the orders2 page.
7.1 On the orders1 page, accessible only by Basuc, the top half of the screen should display a list of entered and unfinished orders, and in the bottom half, there should be two buttons. Button 1 named ADD and button 2 named ASSIGN, along with four text fields labeled as follows: 1. City; 2. Phone; 3. Price; 4. Location.
7.2 Only the master user can add an order to the list by entering the city name in the text field labeled City (without an entered value in this field, the order cannot be added), entering the phone number in the Phone field (the phone number should only be visible to the master user; normal users should not see it), entering the price in the Price field (the application should automatically fill this field with the last entered price from the previous order; currently, the price is set to 3.5 lei), and in the Location field, the master user should be able to enter the location.
7.3 After completing all the fields as described in point 7.2, the master user should press the ADD button, and the order should be displayed in the top half of the screen. Each order should display only the city name and have two buttons: the first button named FINALIZE and the second button named ASSIGN.
7.4 When the FINALIZE button is pressed, the order should be removed from all lists.
7.5 When the ASSIGN button is pressed, a dropdown list with the names of normal users should appear. The action consists of assigning the order to the selected normal user, and once assigned, it should be marked on the order so that the master user cannot assign it to someone else.
8. When a normal user is authenticated, and on the start1 page, when pressing the ORDERS button, the orders2 page should open.
8.1 On the orders2 page, all existing orders should be displayed in the top half of the screen, showing only the city name and nothing else, with no buttons.
8.2 In the bottom half of the orders2 page, the orders assigned to the authenticated user by the master user should be displayed.
8.3 For assigned orders, the city name, price, and a Google Maps icon should be displayed when a location is entered, along with two buttons: FINALIZE and CALL.
8.4 The city name and price should not be editable by normal users, and when the order has a location, if the normal user clicks on the location icon, the default navigation app should open.
8.5 The buttons displayed on assigned orders, as mentioned in point 8.3, have the following functions: when pressing the FINALIZE button, the order should be removed from all lists, and when pressing the CALL button, a call should be initiated using Twilio.
9. Users should be able to finalize contracts by entering the data on their phones. When any user is authenticated, pressing the CONTRACT button on the start1 page should open the contracts1 page.
9.1 On this page, there should be a simple form where users can enter the following details:
• Name
• CNP
• CI Series
• CI Number
• Phone
• Street
• Number
• City
• County
• Capacity
• Price
And there should be two buttons: one named SIGNATURE and another named FINALIZE.
9.2 When pressing the SIGNATURE button, the screen should display a full-screen signature pad or canvas where the client can sign with their finger.
9.3 After the client signs with their finger, the user should be able to close the signature screen.
9.4 After the signature is included and saved, pressing the FINALIZE button should generate a PDF with the entered data using PDFBox or iText.
9.5 Before the PDF is generated, the application should retrieve the Plus Code from Google Maps and save it in the contract under the location field.
For any further details, feel free to reach out.
1. The application will run on a fresh VPS server that needs to be configured.
2. Set the users and passwords as follows:
• Basuc: 8C@aractere
• Stefan: nastas@
• Alin: mog@
• Ionut: b@diu
• Petrica: c1rnu
• Cristi: com@n
3. Clients will be called from the application using Twilio.
‼️ Normal users must not see the clients’ phone numbers.
3. Upon starting the application, there should be two text input fields: one labeled ‘Name’ for entering the username and the other labeled ‘Password’ for entering the password. Below these two text fields, there should be a button called ‘START’. The text fields and button should be positioned at the bottom of the screen.
4. Once the START button is pressed, the authentication to the server should occur, and a new page called start1 should open.
5. On the start1 page, there should be three buttons named as follows: CONTRACTS and ORDERS. The buttons should be rectangular with rounded corners, arranged vertically, one in the upper half of the screen, one in the middle, and one in the lower half. The buttons should be large rectangular buttons with dimensions of 4cmx2cm.
6. Upon pressing the PARKING button, a page called parking1 should open.
6.1 On the parking1 page, there should be four empty boxes named as follows: VN18BSC, VN28BSC, VN38BSC, and VN58BSC. These represent four actual tankers.
6.2 These four boxes should be placed in the upper half of the screen, and they should progressively fill with dark yellow color based on the amount in the tank. The maximum capacity of the tanks is as follows: VN18BSC - 13,300 liters, VN28BSC - 18,800 liters, VN38BSC - 20,700 liters, VN58BSC - 37,500 liters. These values should not be displayed. Only the current amount in the tank should be displayed.
6.3 In the lower part of the parking1 page, there should be three buttons named as follows: 1. SOLD, 2. TRANSFER, 3. LOAD, and a text input field named textparking.
6.4 Regardless of the user, when they want to decrease the quantity in a tank on the parking1 page, they should enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered in the text field, the tank has been selected, and the blinking confirms this. They should then press the SOLD button, which will deduct the entered amount from the tank. Once this operation is complete, the text field should be cleared, and the tank/box should stop blinking.
6.5 When the user wants to increase the amount in a tank/box, they should do the following: enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered in the text field, and the tank has been selected. They should then press the LOAD button, and the amount in the tank will increase by the entered value. Once this operation is complete, the text field should be cleared, and the tank/box should stop blinking.
6.6 For the TRANSFER operation, the user will enter the amount in the text field named textparking, tap on the desired tank/box, and once tapped, the box should start blinking, indicating that the value has been entered, and the tank has been selected. The blinking confirms this. Now, when the user presses the TRANSFER button, the selected tank/box will become fogged, indicating that it can no longer be selected. The user will then have only three tanks available. Upon tapping one of these three tanks, the transfer operation will take place, which consists of deducting the entered amount from the initially selected tank and adding it to the second selected tank. For safety, when tapping the second tank, the user should be asked via a message if they want to transfer the amount of X liters from the first selected tank to the second selected tank.
7. Depending on the authenticated user, when pressing the ORDERS button, it should open a page called orders1 for the master user BASUC, and for any normal user, it should open the orders2 page.
7.1 On the orders1 page, accessible only by Basuc, the top half of the screen should display a list of entered and unfinished orders, and in the bottom half, there should be two buttons. Button 1 named ADD and button 2 named ASSIGN, along with four text fields labeled as follows: 1. City; 2. Phone; 3. Price; 4. Location.
7.2 Only the master user can add an order to the list by entering the city name in the text field labeled City (without an entered value in this field, the order cannot be added), entering the phone number in the Phone field (the phone number should only be visible to the master user; normal users should not see it), entering the price in the Price field (the application should automatically fill this field with the last entered price from the previous order; currently, the price is set to 3.5 lei), and in the Location field, the master user should be able to enter the location.
7.3 After completing all the fields as described in point 7.2, the master user should press the ADD button, and the order should be displayed in the top half of the screen. Each order should display only the city name and have two buttons: the first button named FINALIZE and the second button named ASSIGN.
7.4 When the FINALIZE button is pressed, the order should be removed from all lists.
7.5 When the ASSIGN button is pressed, a dropdown list with the names of normal users should appear. The action consists of assigning the order to the selected normal user, and once assigned, it should be marked on the order so that the master user cannot assign it to someone else.
8. When a normal user is authenticated, and on the start1 page, when pressing the ORDERS button, the orders2 page should open.
8.1 On the orders2 page, all existing orders should be displayed in the top half of the screen, showing only the city name and nothing else, with no buttons.
8.2 In the bottom half of the orders2 page, the orders assigned to the authenticated user by the master user should be displayed.
8.3 For assigned orders, the city name, price, and a Google Maps icon should be displayed when a location is entered, along with two buttons: FINALIZE and CALL.
8.4 The city name and price should not be editable by normal users, and when the order has a location, if the normal user clicks on the location icon, the default navigation app should open.
8.5 The buttons displayed on assigned orders, as mentioned in point 8.3, have the following functions: when pressing the FINALIZE button, the order should be removed from all lists, and when pressing the CALL button, a call should be initiated using Twilio.
9. Users should be able to finalize contracts by entering the data on their phones. When any user is authenticated, pressing the CONTRACT button on the start1 page should open the contracts1 page.
9.1 On this page, there should be a simple form where users can enter the following details:
• Name
• CNP
• CI Series
• CI Number
• Phone
• Street
• Number
• City
• County
• Capacity
• Price
And there should be two buttons: one named SIGNATURE and another named FINALIZE.
9.2 When pressing the SIGNATURE button, the screen should display a full-screen signature pad or canvas where the client can sign with their finger.
9.3 After the client signs with their finger, the user should be able to close the signature screen.
9.4 After the signature is included and saved, pressing the FINALIZE button should generate a PDF with the entered data using PDFBox or iText.
9.5 Before the PDF is generated, the application should retrieve the Plus Code from Google Maps and save it in the contract under the location field.
For any further details, feel free to reach out.