Reference

Booking system for co-working spaces for smart.country.regions

Booking system
Client
Fraunhofer Institute IESE
Industry
Education & Research
Launch
2022
Preview image with screenshots of the documentation and a unit test

Initial situation & goal

Booking system for co-working spaces for smart.country.regions

The "Smarte.Land.Regionen" model project supports rural districts in creating a digital strategy and developing and implementing digital solutions for problems in rural areas. Best practice solutions are collected in a marketplace so that all German rural districts can benefit from the digital ideas for improving services of general interest. The first seven districts: the district of Bernkastel-Wittlich, the district of Coesfeld, the district of Lörrach, the district of Neustadt an der Waldnaab, the district of Potsdam-Mittelmark and the district of Vorpommern-Greifswald came on board in 2021. They will be supported with up to one million euros in the implementation of their digitalization strategy and other digital services until the end of 2024. The districts of Bernkastel-Wittlich and Coesfeld want to encourage the creation of co-working spaces in the areas of education and work, for example, in order to keep commuters in the region and to revitalize village community centers. The LandRäume mediation platform connects providers of spaces with those seeking them. This covers a wide range of spatial needs, from coworking spaces to rooms for club meetings or birthday parties. The Fraunhofer Institute for Experimental Software Engineering IESE is implementing the technical development, testing and research of central digital solutions with the model regions and is building a digital platform ("digital ecosystem") that bundles these services and ensures their future transferability. In the course of the model project, external service providers will also be involved in the development of further digital solutions. Our task on behalf of the Fraunhofer Institute IESE was to develop a booking system for co-working spaces.



Our solution

Booking system with REST API based on Laravel

The booking system allows users to register and verify their e-mail address. Registered users can manage personal data and register as coworking space operators. Operators create and manage coworking spaces with names, descriptions, images, opening hours and tickets for bookings. They can accept and reject booking requests, cancel bookings and receive email notifications. Users book tickets, receive notifications and download invoices. Administrators manage bookings, user roles, coworking spaces and receive notifications for new registrations. The system supports multilingualism and payment service providers. The API was developed according to the principle of Test Driven Development (TDD) and the documentation was created in English according to the Open API Standard with Swagger.


Screenshots of unit tests
A high level of test coverage has been achieved, which contributes to the stability and maintainability of the API

Registration and user administration 

Visitors can register as users and verify their e-mail address. Registered users manage their personal data such as first name, surname, e-mail address and postal address. Users can also register as coworking space operators.

Functions for coworking space operators 

Coworking space operators create and manage coworking spaces with a name, description, images and address. You can add descriptive properties and opening hours. Operators create and manage tickets for bookings at set prices. A (filterable) list of incoming bookings shows ticket information, booking period, order dates and orderer information. Operators can accept or decline booking requests, cancel bookings and receive email notifications.

User functions 

Users book tickets for coworking spaces and receive email notifications when bookings or cancellations are made. A (filterable) list shows booked tickets and details of coworking spaces, tickets and bookings. Users can download invoices and cancel bookings.

Administrator functions 

Administrators manage bookings, can cancel them, accept or reject booking requests and edit bookings. They have access to (filterable) lists of all tickets and coworking spaces, can edit descriptive properties and manage user roles. Administrators receive notifications of new operator registrations, manage credit notes and invoices and download invoices.

Additional functions 

The booking system supports multilingualism, with German being the default language. It integrates payment service providers for payment processing. E-mail notifications are sent to stored e-mail addresses. 

Test Driven Development (TDD) 

The REST API was developed according to the principle of Test Driven Development (TDD). This approach ensures the high reliability and maintainability of the code by first creating tests that define the functions to be implemented. These tests are then used to check the correct implementation of the functions. Through TDD, extensive test coverage could be achieved, which contributes to the stability and quality of the API. 

Documentation (Open API) 

The API documentation was created automatically in accordance with the Open API standard using Swagger. This comprehensive and clear documentation provides a detailed overview of all available endpoints, parameters and possible API responses. The documentation was written in English to appeal to a broad developer community and to facilitate integration. The interactive Swagger interface allows developers to easily understand and use the API, reducing development time and improving collaboration.


Experimental Software Engineering

Fraunhofer Institute IESE

The Fraunhofer Institute for Experimental Software Engineering IESE specializes in research into software engineering and development. It is part of the Fraunhofer-Gesellschaft and focuses on improving the quality, security, and efficiency of software products and processes. The institute works closely with industry and offers consulting, training and research projects to support software development in companies.