After the huge success of our best-ever-pokedex application, in 2019 we have grown from a small startup into a full-blown company! We'd like to handle the working hours, and also people's sitting places in an agile way. It means that no-one has his or her own desk, everyone can choose where he / she wants to sit for a day. Home office is also available for everyone, no restriction there.
For this, we'd need the help of a custom application!
Feature 1: The application should support 2 types of users: admin and employee. ( No need for any authentication or authorization, 2 login button would suffice without any validation. )
Feature 2: set the number of work desks with the number of available chairs at each one of them
Feature 3: lock / unlock some places temporarily ( no employee can choose that place until it is open again )
Feature 4: can disable home office for special days ( On that day no employee can choose home office as an option. The app can represent the home office as a separate table . )
Feature 5: set special events for days where we will have a huge meeting. The logged in employee should see a notification with a custom message on that day. ( This doesn't mean any other restrictions. )
Feature 6: choose a sitting place ( if it is open and not locked ) or home office
Feature 7: see the current state of the office, the current date, and the notification of the day if there is one.
Feature 8: can see the history of he last 3 days of the company ( to test this easily, the app should provide the option to set the current date before logging in with a user )
Feature 9: store everything in a permanent way ( You can use any data persistence technology. )
Feature 10: work with multiple clients simultaneously. We'd like to see as 2 employees are logged in, and both can use the app in a deterministic way. We don't want to see the changes in real time, but the backend should prevent conflicting cases.
Feature 11: show the current locked and chosen places in a nice, aesthetic way. A list with a submit form could be enough, but in User Experience point fo view, we would like to see a nice visual representation.
No restriction there. You can use any framework, any language, any library, and can be run on any platform, as long as your app can provide these features.
( To be able to run on multiple platforms is not a requirement. )