A launcher needs to be developed for tablets on Android, which should completely restrict access to everything on the tablet except the keyboard, and it can only be turned off through a pin code.
This launcher should communicate with an admin panel on Flask and work with a Firebase database.
Why Flask? Because it will be convenient for us to work with the application if needed.
Why Firebase? Because it allows updating data in real-time mode.
Look at the attached file, it is divided into two parts.
//////////////////////////////////
The first part is the launcher layout. It should have 3 pages:
The first page - is the waiting mode that will constantly display the tablet number. So when someone selects it, the admin can see its number and enable the necessary content on it. Here Firebase will come in handy, as as soon as the admin adds a link to this tablet, it should immediately move to the next page to start the content work process, or even better, immediately switch to content work mode. If you press and hold the number for 10 seconds, the launcher should close after entering the pin code for servicing.
The second page - is simple. It has two elements, the first is again the tablet number, but if you hold it for 5 seconds, the session in the admin panel should be reset, and the tablet should go back to the first page. The second is a button that will take you to the third page and start a timer in the admin panel.
The third page - here again are two elements. The first is a narrow strip at the top of the screen, if you press and hold it for 5 seconds, the session in the admin panel should be reset, and the tablet should go back to the first page. This is in case everything hangs or the tablet no longer needs to work with content. The second is like an iframe covering the entire screen that will display some content. Let's say a very long test. After the test, the admin will reset the tablet by holding a finger on the top bar.
//////////////////////////////////
Now about the second part - Admin panel on Flask
1. Some basic login system. Nothing extraordinary, just login/logout.
2. Session manager. Where you can start or close a session. To start, you need to insert a link that will open on the tablet. Only when the field is not empty, the button should be active. And I tried to show more or less what is needed in the PDF.
3. Here is the most interesting part. There will be several dozen tablets, they will get lost, break, new ones will be added, so they also need to be managed. It would be convenient for us to install an APK on a new tablet and accept the condition that it is now a new launcher. After that, the tablets should not start working immediately, but only after in the admin panel we add its MAC, for example, or serial number, and assign it some arbitrary number, for example, 14. Only then it can start receiving content.
I am waiting for your proposals with the cost and time of execution.
Database schema
tablets:
id
unit_number: int - the number that will be displayed on the screen
session_active: boolean (True/False)
link: str - link
started_at: time for the timer