Modern Markup Languages and Their Application

Team Project

Basic information

There will only be one team project in the second half of the semester. Each project will get developed by a team of three or four students (teams of four students are preferred). These students do not have to attend the same seminar

The purpose of the team project is to learn to work and cooperate in a development team. You will be developing a complex project from start to end. It will require you to divide work between team members similar to real work scenarios.

The only deadline for the project is the date of your presentations. Presentation dates will be published towards the end of the semester / during the exam period.

After successful project development, you will present your project to teachers. During the presentation, all members of the team have to be present. The presentation will be roughly 15 minutes long. You should aim for a 10-minute mark on your side, as there needs to be room for questions from teachers. The presentation consists of a project demo to showcase how the project fulfills the assignment requirements. Before the presentation, please give access to your repository hosted on Gitlab to the teachers. After the demo, the teachers will look at your source code and ask you additional questions.

More information

Project registration, topics

There is a list of project topics and their short specifications in the IS. You can find it in the section “Student” > “PB138” > “Lists”. 

The enrolment starts on 29/03/2022, at 8 pm. Only one student can enrol on each topic, so please, choose a single person from your team who will try to register on your chosen topic.

After a few days, we will make the topics available to 4 people, each. That’s the right time for all team members to enrol on the topic your team leader has enrolled on before. If you haven’t found a team yet, you can use our discord, “looking-for-team” channel.

There are enough topics for all students of the course but if you have your own idea (it can be inspired by some existing website or app), let your tutor know - best is to prepare a short description of the topic and required functionality as well - so that your tutor can check your topic and (hopefully) approve it. Your requested topic will be yours - you will be automatically enrolled on it by your tutor.

Topics' descriptions are brief - but there’s a purpose of it. We want you to create your project following your own instinct and make your own team decisions. You can always discuss anything with your tutor or with your classmates on discord.

Regarding technologies used in the project, we strongly recommend following the same technologies as used during the semester (firstly, you have something to start with, and it should be easier for you). However, if you have experience with something else or want to experiment with something new, discuss it with your tutor first. We won't discourage you from other technologies, but we can give you some advice and prevent you from further complications.

Presentation

There will be time slots available in the IS for your presentations. Your team leader will enrol for a time slot of your team's preference. The presentations will be held online via Zoom (the link will be enclosed in the description of the time slot).

The presentation should be roughly 13-15 minutes long, but not longer. After your 15 minutes, there will be another 5 minutes for questions, discussion and final evaluation.

Each member of the team has to attend your presentation.

Recommended structure of your presentation is as follows:

Introductory slides: briefly introduce your topic, selected technologies as well as your team and responsibilities. A few slides (let's say 3-5 slides) are optimal. Do not make your slides too long, this is not the primary part of your presentation.

Demo of your application: show us your result, how it works, and the required functionality. Basically, show us how we can use your result and what your result is capable of.

Workflow/codebase: one after another, present your role in the project. Mention what part of the codebase you were working on. Feel free to show us your code; choose the most interesting part of your codebase => either the most challenging one or the one you are most proud of. You can also mention some problems that you encountered and how you dealt with them.

Final notes: no need to be nervous about the presentation. Consider it a discussion about your project and (if there's enough time) things you learned during the semester. Remember, you don't need to show us everything - if there are parts of your code that need some additional work, you can just skip them or tell us how you would improve them in the future. This is not something we would penalize in the evaluation.

Recommendations

Work agile and iteratively. Choose your scrum master - the person with the best social skills in your team. This person will act as a mediator during discussions, manage tasks necessary to accomplish the project, and keep the group going.

The next role in your team should be an infrastructure specialist. This person will prepare a docker development environment, setup a CI pipeline, and create a testing and deployment infrastructure.

In developer roles, you will need to cover backend and frontend. Choose according to your preferences.

One person doesn't need to stick to one role. Discuss your roles in your teams and stay flexible. We do not require you to have fixed development roles. However, it is usually the best way of working in practice.

Never forget to test your stuff when you commit it. Do pair reviews - use merge requests for reviewing your colleagues' work. Someone who has not worked on the feature should do the final testing rather than the one who developed it.

Leave yourself enough room to work on the project - it can take well over a month in some cases. Project management, honest expectations, and fair, periodical work is the correct way to approach this project.