2425 Code Generation Project Guide
2425 Code Generation Project Guide
1. Introduction
This document will guide you through the context of the project (par. 2), requirements and user stories
(par. 3), deliverables (par. 4), and the grading of the project (par. 5).
2. Context
During this term, you will participate in a project with 4 students in the structured development of a
banking application in the form of a REST API, developed with the Spring Framework written in the Java
programming language. The API shall be made accessible to users through SwaggerUI. Additionally, you
will develop a fully functioning frontend interface written in JavaScript using a framework of your choice
such as Vue.js or React.
The development process will start with describing an API specification, developed with OpenAPI
(formerly: Swagger).1 The API specification consists of a definition of all API endpoints, parameters
(input) and responses for every endpoint (output), and underlying model definitions etc.
The API specification can be used as a mock server. The API specification will function as a starting point
for implementing the required functionality in Java. The application will be (deployed and) hosted on a
publicly available server.
The application is backed by unit tests and functional tests. Unit tests will be written in Java. Functional
tests will be written in Cucumber suite.
3. Requirements
For a complete list of project requirements and user stories, please view the user stories spreadsheet on
Moodle.
4. Deliverables
The deliverables are as follows:
5. Grading
A deadline for submission of the project to the examiners will be made available on Moodle. Every
group will deliver:
- One or more Git repository links, a zip containing the API source code, specification, unit
tests (Java) and functional tests (Cucumber suite), and Frontend code.
- A link where the application binary is hosted. (e.g. Render, Azure)
- A link where the Swagger UI of the application is hosted. (e.g. yoururl/swagger-ui.html)
1
https://swagger.io/
- A link where the application frontend is hosted. (e.g. Github Pages)
Subject to complete and timely delivery of the above-mentioned materials, the project will be graded
with the following tests:
During a 10 minute assessment, individual project members will present their contribution to the
code of the project. The individual contribution will be graded on design choices, explanation of the
workings of the code, code quality, and adherence to framework standards. The examiners will ask
questions regarding these subjects as they see fit. This will lead to an individual grade. During the
code assessment for an individual student, the focus should be primarily on the Java code, with the
JavaScript code as an optional extra to demonstrate the quality of the work (max 20%).
The unit tests and functional tests are graded on validity, acceptable code coverage (90%+),
adequacy of functional tests, and level of complexity.
Test criteria:
- Active contribution to all project management meetings completeness of the following documents
(on Moodle):
- Cooperation agreement;
- Retro evaluation form.