Choose Must Have Features
Student Login System
User Experience
Backend
Entity-Relationship-Model
Creating an appropriate entity relationship model posed a challenge. The logical relationships between entities were not immediately evident, requiring us to refine the data structure through an iteration process. To avoid interference during development, we used the library “Liquibase” for tracking, managing, and applying database schema changes.
Meaningful API
The task to provide a useful API presented technological and communicative challenges. Simply returning and handing around database entities would have posed a big threat to our data integrity and application security. Therefore we decided to work with Data Transfer Objects (DTO) to transmit data inside our backend application, and between the frontend and backend. This enabled easy customization of our endpoints, and thus allowed for easier collaboration with the frontend team.
Security
Since the application is publicly accessible, it was important to apply the right measures to keep the website and the backend API secure. To authenticate and authorize the user we used a JWT token as a bearer token. Spring security was used to secure all endpoints and grant access to requested data for users with the correct authorities. This way, no student, lecturer, or outsider is able to tamper with the owners’ feedback data.