Application for managing multiple large groups (with full code)

We use Nuki in our church for the kitchen. The problem was that around 30 people need access to the kitchen, but only on specific days.
With the resources currently made available by nuki, it was very costly and you had to distribute the rights by hand every day or laboriously work with time windows.

So I create a website (and app) who can handle a large amount of poeple and who works with groups.

Here are some impressions (sry its in german)

The main page is a calendar who you can add access to groups or users with a single click. And thanks to the colours, you can see at a glance who has access and when. You can also select multiple days to add access faster.

There is also a list for larger events who need some extra infos. (also showed in the callendar)

There is also a complex system to borrow items, but that has nothing to do with nuki.

In the settings you can add users to groups, show keypad keys, choose if a user should be show in the calendar, you can edit the list of borrowing items, change the interall of telegram remeber messages for borrowing items …

There is also a telegram bot who give all relevant informations instantly to the manager of the kitchen. This include the log but also the option to open/close the door with telegram.

So you can realy do a lot with a nuki doorlock and the api.
But the api is still quite poorly documented. And some things are realy strange. Nuki web user who is a “normal” user but isn’t a normal user. Or the struggle with the action, trigger and state in the log who isn’t consistent.

4 Likes

Wow, this looks very neat!

Feel free to contact me directly for any feedback on the API documentation. I am working on the next version at the moment and am looking forward to your suggestions for improvements (which I agree are needed :wink: ).

EDIT: And I also am very interested in details on your Telegram Bot. :slight_smile:

Very cool! Well done.

I am happy to make my code completely available to the community. But I have neither the time nor the patience to adapt the whole code in such a way that it becomes suitable for Github or suchlike. The code is partly ugly and nothing is commented. Some functions also have German names. Because the project was not based on a requirement specification and was simply extended according to emerging needs, many things are solved a bit uncleanly.

Nevertheless, it could be interesting for some people, and if you need a similar tool, you can reach your goal with a few adjustments. Or you just steal the functions you need.

If you want to get along without much adjustments you need an Apache server with PHP 5 and a MariaDB / SQL DB. And HTTPS.
Theoretically it should work after adjustments in the file config.php.
I also paid little attention to security, as I had a door inside. Very dangerous is the login Coockie for the backend (remove it or change it). The rest should be safe enough for most scenarios.

All Scripts in a Zip on Dropbox:

The database structure (import sql in phpmyadmin or similar tool).

3 Likes