Professional Documents
Culture Documents
Guidelines For Project Work in The Module
Guidelines For Project Work in The Module
**General Information**
This module involves project-based learning of programming concepts using the Python programming
language. The concepts are introduced through the application scenario of a hotel reservation system.
The project work in this module is a group task, which is carried out in several iterations (see semester
plan). In each iteration, programming concepts are introduced, starting with basic concepts up to more
advanced concepts needed to meet the requirements of the application scenario in an agile manner.
The requirements for the project work are provided in the form of a series of predefined user stories
(see below). The lessons are divided into 2 hours of interactive programming, followed by 2 hours of
applying the concepts to the project work or practicing the concepts (with coaching by the instructor).
The module grade for each student at the end of the semester is calculated from two parts:
- Submission of the project work (as a team, 70% of the total grade) - (the grading sheet is viewable
below)
- Individual Lessons Learned (as an interview, 30% of the total grade): Includes a discussion on the
application of programming concepts, individual contributions, and reflection on the project work
**Deliverables**
The deadline for the project submission is indicated on Moodle. Each team submits a link to their
GitHub repository with relevant documentation. The interviews are conducted during the official exam
period; the date/time will be communicated.
Simple user stories from a hotel reservation system serve as the basis for the lessons. In the project
work, students will further develop the hotel reservation system by implementing the given user
stories. Depending on the interest of the group members, a group may, after consultation with an
instructor, adapt or expand the user stories.
The final submission of the group includes the functional code and the corresponding documentation.
The submission of the project work is marked as "Deliverable" in the semester plan.
**Software Used**
The following tools are used in the classroom (see the "Tools" section on Moodle):
- Modeling: Visual Paradigm v.17.1: This is used to create the class diagram. An academic license is
available.
- PyCharm: As an IDE (Integrated Development Environment). An academic license is available.
- Collaboration, version control, results, and documentation: GitHub
1.2. As a guest user, I want to see details about different room types (single, double, family rooms)
available in a hotel, including the maximum number of guests for that room, description, price, and
amenities, to make an informed decision.
- I want to see the following information per room: Room type, maximum number of guests,
description, amenities, price per night, and total price.
- I want to see only the available rooms.
1.3. As a guest user, I want to book a room in a specific hotel to plan my vacation.
1.4. As a guest user, I want to disclose as little information about myself as possible to keep my data
private.
1.5. As a guest user, I want to receive the details of my reservation in a readable form (e.g., save the
reservation in a permanent file) so I can review my booking later.
1.6. As a guest user, I want to register with my email address and a personal identifier (password) to
access additional functionalities (e.g., booking history, booking changes, etc. [see 2.1]).
2. As a registered user (I want to do everything a guest user can do, and additionally...):
- I want to log into my account to access my booking history ("read"), so I can manage
my upcoming reservations.
2.1. The use cases for my bookings are "new/create," "modify/update," "cancel/delete."
3. As an admin user:
- I want to be able to maintain hotel information to have current information in the system.
- I want to add new hotels to the system.
- I want to remove hotels from the system.
- I want to update specific hotel information, such as the name, stars, etc.
- I want to be able to see all bookings of all hotels to get an overview.
- I want to be able to edit all bookings to add missing information (e.g., phone number) [Optional].
- I want to be able to manage room availability and update prices in real-time in the backend system
of the application [Optional].