B5 Bachelor Nexum Free, anonymous interaction for talks and classes

Team

  • Vu Duc Le
  • Andrey Krasavin
  • Daria Myronova
  • Júlia Vieira de Souza
  • Mariia Manzon
  • Charlotte John

Supervision

Prof. Dr. Gefei Zhang

Initial Planning & Feature Scope

We started the project with a collaborative brainstorming session to decide what types of audience interaction we wanted to support — including live Q&A, multiple types of polls, wordClouds, and anonymous participation. From there, we drafted basic user stories to shape the initial functionality and guide our development process. This gave us a shared understanding of our goals and helped prioritize what to build first.

Workflow (Sort of Scrum, But Not Really)

Although we took some inspiration from Scrum, we didn’t follow it strictly. There were no daily standups or formal sprints. Instead, we worked in loose weekly cycles.

Each week began with a meeting involving our supervisor, Prof. Zhang, where we discussed progress, open questions, and selected what to focus on next. We maintained a GitLab issue board that served as our shared backlog. Team members picked up tasks flexibly based on their roles, availability, or interest.

While this wasn’t formal Scrum, the rhythm of regular check-ins and backlog-based work helped maintain momentum and focus.

Defining Roles

Initially, we had no clearly defined roles, which caused some overlap and inefficiencies. After two weeks, we restructured and assigned roles more clearly:

  • Charlotte – Team coordination, backend development, server setup and some frontend tasks
  • Vu – Backend development and some frontend tasks
  • Andrey – Lead frontend developer
  • Julia & Mariia – UI/UX design and frontend feedback
  • Daria – UI/UX design and user testing

This division improved coordination, allowed people to specialize, and reduced duplicated efforts.

Git Workflow & Integration

We used GitLab, working in separate feature and bugfix branches. The main branch remained stable and was used for integration and deployment. Merge conflicts were resolved during our weekly team meetings, where we would also review each other’s work and adjust the direction if needed.

Code reviews weren’t formalized but happened organically as part of pair debugging or through Assignees for merge requests during integration.

Communication & Collaboration

Outside the weekly team meeting, most of our communication was asynchronous via a group chat. For tricky design or coding problems, we held short video calls. This worked well for our flexible schedules and mostly remote collaboration.

Testing & Feedback

Once a first version of the app was deployed, we tested all features ourselves, simulating real use cases. We noted bugs, rough edges, and areas of confusion, then turned these into GitLab issues for follow-up.

We refined the interface in several iterations, based on both internal testing and external feedback from Prof. Zhang, who commented on usability and technical stability.

Learning New Technologies

One major part of the project was learning the tools we had chosen. Most of us were new to:

  • Vue.js – Frontend framework
  • PocketBase – Lightweight backend-as-a-service
  • TailwindCSS – Utility-first CSS framework
  • Figma – UI/UX design and prototyping tool

Getting comfortable with these tools involved research, tutorials, and trial-and-error. This slowed us down in the beginning, but also became a valuable learning aspect of the project.