In the winter semester of the 2023/2024 academic year, I had the pleasure and honor of leading another edition of Projekt Innowacje at the Lodz University of Technology. This time we embarked on a fascinating journey through the world of Nuxt 3 – a Vue meta-framework that opens doors to advanced web application architectures. Watching students move from basic Vue.js to a full-fledged framework with file-based routing and advanced capabilities was an extraordinary experience for me.
Technologies and Tools
The tech stack I chose for this edition included:
- Nuxt 3 – SPA mode, file-based routing, auto-imports
- Firebase – Authentication, Firestore Database, Storage, hosting
- Pinia – state management
- Vuetify – Material Design and UI components
- i18n – application multilingualism
- Git Flow – professional team workflow
Program and Key Areas
Nuxt in SPA Mode
The first meetings were dedicated to understanding the differences between SSR (Server-Side Rendering) and CSR (Client-Side Rendering). In this project, I decided to use Nuxt in SPA (Single Page Application) mode, which allowed us to focus on building a rich user interface without the overhead of managing a rendering server. Thanks to this, as a mentor, I could adapt the learning pace to students’ skills and provide individual help with encountered problems. Students had to learn to think about the Nuxt directory structure – from /pages for automatic routing, through /composables for reusable logic, to /server for API routes. Watching them discover these concepts and overcome architectural challenges was a great satisfaction for me.
Git Flow and Teamwork
I devoted much attention to a professional workflow in version control. I am deeply convinced that the ability to collaborate in a team through proper source code management is fundamental in today’s IT industry. Students learned branching strategies with feature branches, release branches, and hotfix branches, as well as conducting code reviews and resolving code conflicts. These skills are crucial in real teamwork, and watching how students communicate with each other while resolving conflicts showed me how valuable the exchange of knowledge and experience is in our community.
Firebase as Backend
Firebase was the first contact with backend-as-a-service for many students. We worked on authentication (email/password, Google Sign-In, password reset, user roles) and Firestore Database in a NoSQL environment – collections, documents, real-time listeners, and Security Rules. This last part – declaratively defining security rules – proved to be one of the biggest challenges for participants. Seeing students move from thinking about the backend as their own server to understanding a cloud-first approach was fascinating and reminded me how important it is to open new perspectives in education.
State Management and Multilingualism
Pinia served us for global state management. Students learned to organize stores into logical modules and decide when state should be global and when local. This part of the project required architectural thinking and understanding how to structure the application so that it is scalable and easy to maintain.
Application multilingualism with @nuxtjs/i18n included lazy loading of translations, locale routing, and a language switcher. Thanks to this, students could create applications accessible to a wider range of users, which is invaluable in today’s global technology world.
Final Project
Students created complete web applications containing a user module with registration, login (email and Google), password reset and a roles system, full CRUD for two types of entities with pagination, searching and real-time updates, an administration panel, multilingualism (minimum two languages), and responsive design with Vuetify.
Challenges
The main challenges we had to face included architectural complexity – moving from simple Vue to a structured Nuxt framework required a change in thinking about application structure. Asynchrony, i.e., working with real-time data and state synchronization, was another area that required time and patience. Firebase Security Rules, i.e., declaratively defining security rules, turned out to be one of the most difficult elements because it required a change in thinking about application security. Git Flow in practice showed that real conflicts require communication and compromises in the team, which is an invaluable lesson for future engineers.
Personal Reflections
Watching the learning process of my students and seeing them overcome consecutive programming challenges was a great satisfaction for me. The progression from Vue to Nuxt proved to be a natural step for students, although the learning curve was steep and required more time for practical examples. Firebase showed them how to build cloud-first applications without their own backend, and Git Flow taught practical cooperation in a team.
I am deeply convinced that participating in such projects brings huge benefits not only in the context of learning specific technologies but above all in developing thinking like engineers – translating business requirements into technical architecture and consciously making decisions about trade-offs. In the field of programming, cooperation and knowledge sharing should form the foundation of our industry, and Projekt Innowacje is a perfect example of how this can be achieved.
Summary
The winter edition of Projekt Innowacje 2023/2024 showed that students learned not only specific technologies but above all thinking like engineers – translating business requirements into technical architecture and consciously making decisions about trade-offs. The limitations of the Firebase free tier sometimes frustrated them, and some projects were too ambitious – the lesson of prioritization was difficult but necessary and taught students how important realistic planning is in technological projects.
I would like to thank all the students who participated in this edition for their commitment, curiosity, and determination in overcoming challenges. I also thank the organizers of Projekt Innowacje at the Lodz University of Technology for the opportunity to share knowledge and experience with young programmers. I invite everyone interested in web technologies to explore Nuxt and Firebase – they are fascinating tools that open doors to advanced web applications.



