Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

**Guidelines for Project Work in the Module "Application Development with Python"**

**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.

**Content and Project Phases**

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

**User Stories "Hotel Reservation System"**

1. As a guest user (not logged in/registered):


- I want to browse available hotels so that I can choose one that meets my needs.
- I want to search for all hotels in a city so that I can select the hotel in my preferred location (city).
- I want to search all hotels in a city by the number of stars.
- I want to search all hotels in a city that have rooms matching my number of guests (only 1 room
per booking), with or without the number of stars.
- I want to search all hotels in a city that have rooms available during my stay (from "start_date" to
"end_date"), with or without the number of stars, so I only see relevant results.
- I want to see the following information per hotel: Name, address, number of stars.
- I want to select a hotel to see the details (e.g., available rooms [see 1.2]).

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].

**Grading Rubric for Group Work**

You might also like