Inspiration
Our inspiration stemmed from two fundamental beliefs: that learning should be an ongoing, personalized journey, and that everyone should have unrestricted access to knowledge. While GitLab University efficiently provides an organized, conventional learning set-up, our innovation idea - GitLab NanoVersity, seeks to redefine this conventional structure, conceptually transforming it into a more flexible, adaptable, and user-specific learning environment.
The cornerstone of our idea was to replace the traditional approach of ‘one curriculum for everyone’ with 'one curriculum for every individual learners' needs.' This was primarily inspired from studying online education trends, observing the growing need for customized learning experiences, and our personal interactions with GitLab users. In these interactions and extensive research, we discovered that most of the GitLab users would benefit more from concise, focused educational content that directly addresses their specific needs, as opposed to generic courses that have a broad application. This helped us conceptualize GitLab NanoVersity, which tailors course content based on the user's specified context.
Furthermore, we were motivated by the desire to create a platform that prominently practices and propagates GitLab’s ethos – allowing everyone to contribute to their learning and growth. While GitLab University is an excellent manifestation of this philosophy in terms of providing structured courses, our objective with NanoVersity was to expand on this idea and create a platform where every learner could have personalized courses. In essence, GitLab NanoVersity is not just inspired by the need for customization in learning but is also driven by the passion for inclusivity and collaboration. We champion a learning environment that is diverse and adaptable to everyone, helping each user achieve their unique learning and professional goals.
What It Does
GitLab NanoVersity revolutionizes the learning experience on GitLab. Using artificial intelligence, it creates nano-courses tailored to each individual's needs. Unlike traditional or standardized courses, these nano-courses are not broad and extensive but rather focused on very specific topics identified by the user.
Imagine a user needing to understand a particular GitLab functionality for a specific project. GitLab University might have a course talking about various functionalities in general, but NanoVersity generates a course specifically on that particular functionality, thereby saving time and delivering targeted knowledge for the user.
The courses are labelled as 'nano' for two main reasons. First, 'nano' often denotes something miniaturized, which in our context means short, concentrated courses, providing knowledge within a compact timespan. This aligns with students’ needs today, as they often seek quick and concise educational content to suit their fast-paced lifestyles or project needs. Long hours of learning are replaced with short, intensive bursts, enhancing focus and productivity.
Secondly, nano also connotes precision, much like nanotechnology which is marked by its precision and accurateness. Similarly, the courses generated by NanoVersity are precise and accurate to each user's unique learning requirements. They are precisely focused on the specific topics or parts of GitLab that users want to learn about, rather than offering a generic overview of the platform.
These user-specific, precise and 'nano' courses provide a new dimension of learning in GitLab. It ensures the knowledge users acquire isn't just generic but directly applicable to their immediate needs, hence making GitLab NanoVersity a much more practical and efficient learning tool compared to traditional methods.
In configuring the GitLab NanoVersity AI, we heavily relied on GitLab's extensive official documentation. The AI has been trained with a vast amount of data derived directly from this pool of knowledge, enabling it to fully comprehend the platform and its functionalities. This was a meticulous process involving parsing through numerous articles, guides, and forums to generate a database that mirrors the wealth of knowledge GitLab possesses.
To ensure our AI remains current, we have designed it to receive periodic updates aligning it with new features or changes that GitLab introduces. This not only ensures our courses are up-to-date but also maintains the relevance and applicability of the course materials.
This periodic training means that users learning from GitLab NanoVersity will always have the most recent and accurate information, irrespective of when GitLab rolls out their updates. This elevates the learning process on NanoVersity from a static, one-time knowledge acquisition to a dynamic, continuous learning experience.
How We Built It
Our GitLab NanoVersity platform uses a unique mix of technologies. We used PHP for the backend due to its popularity and wide support libraries. We favored PHP because it offers easy code maintenance, a large community, extensive libraries, and guides. It makes it easy to extend and scale our application without substantial changes.
For the frontend, we worked with HTML, CSS, and JavaScript. HTML forms the backbone of our website structure while CSS provides the style. JavaScript powers the interactive elements of the site such as the course generation. This combination is Coding’s Holy Grail – a perfect balance that offers a responsive, user-friendly interface.
But the true game-changer in this project is the integration of artificial intelligence. We implemented machine learning algorithms cleverly designed to understand the needs presented by the user's context. The algorithms scour through precompiled content based on the input from the user and expert-designed courses to derive the most suitable curriculum. This personalized approach vastly surpasses GitLab University's set curriculum by tailoring each course to the user's exact needs.
Our application is built on top of the GitLab's platform using GitLab's API for OAuth. This means users can log with their GitLab account, making it easier to consolidate learning materials directly related to their ongoing projects and tasks. It provides a seamless user experience, integrating the learning process into their natural workflow.
For the assessment protocol, we implemented an adaptive testing system where the difficulty level of the test matches the user's proficiency identified during the learning phase. Getting this right was a challenge, but thanks to a reactive algorithm we built, the system smartly adjusts to test the knowledge areas a user is weak in, based on their learning patterns.
Overall, the integration of these technologies has brought GitLab NanoVersity to life, making it a personalized and dynamic learning platform that effectively caters to individual learning needs.
Challenges We Ran Into
Indeed, building GitLab NanoVersity was not without its challenges. Here are the details of the major hurdles we faced:
User-Specific Machine Learning Algorithms: Arguably the biggest challenge we faced was designing and implementing algorithms that could effectively understand and adapt to each user's unique learning needs. This required extensive research into data modeling, natural language processing, and personalization strategies. The algorithm had to be sophisticated enough to gather data from user inputs, analyze it, and then generate a specialized course intelligently. This task is easily more complex than laying out a standard course curriculum as done in GitLab University.
Course Brevity and Comprehensiveness: The core concept behind NanoVersity is to provide concise and focused courses. However, the challenge was to trim down the content without losing its essence and comprehensiveness. This meant deliberating over every piece of information to decide what was essential and what could be left out. Striking this balance was a challenging task that required iterative design, testing, and refinement processes.
Dynamic Content Creation: Unlike GitLab University where the courses are predetermined and rigid, NanoVersity required a more flexible design to create dynamic content. This meant that the courses needed to be created in real-time based on the information provided by the users. Building a system that could generate content on-the-fly was not only technically challenging but also required us to rethink the entire course design approach. We had to consider factors such as user needs fluctuation, updates in the GitLab tools and features, and time sensitivity of user-queried topics. This level of adaptability greatly challenged the conventional ways of teaching and required us to innovate and implement a more modern, flexible approach.
Accomplishments That We're Proud Of
Our accomplishments with GitLab NanoVersity stretch far beyond just the creation of a system itself; they lie in the successful execution of our vision. This vision was to craft a personal learning experience that maintained its comprehensiveness while being easily consumable.
Firstly, one of our proudest achievements was striking the balance between quality and quantity. In our research, we found that overwhelming the user with excessive information often leads to uncertainties, causing detriment to comprehension and retention. However, providing very little information sacrifices depth and understanding. In NanoVersity, despite using smaller courses, they are rich in content, and we were able to provide comprehensive insights tailored to the individual needs of the users. We managed to wrap core concepts, essential learning markers, and intricate details in a neat, compact package. This allowed users to consume quality education in a flexible, self-paced way without being overwhelmed.
Furthermore, we introduced a unique concept - Nano Certificates. The idea behind this was to not just gamify the learning process but also add a tangible sense of achievement, progression, and incentive to our learners. In our research, such models have shown significant improvement in user engagement and completion rates. On completion of each course and achieving a specified understanding level (80% and above in the assessments), users earn these Nano Certificates. They not only build a sense of accomplishment but also stand as a testament to the user's understanding of the course. They can further be shared across professional networks as proof of competency, adding an extra incentive layer.
In summary, we're proud of combining AI, education, and behavioural science to create a learner-first digital knowledge platform. We're proud of developing a learning solution that is customized to individual needs, and we're excited that it goes beyond traditional offerings like GitLab University, enhancing the value and experience for GitLab users across the globe.
What We Learned
Our journey with GitLab NanoVersity was rich in learnings and offered us numerous insights:
Artificial Intelligence in Education: We learned how advanced technologies like AI can transform the learning landscape. The process of creating an AI-powered course generator taught us how machine learning algorithms could be harnessed to create a personalized educational experience based on users’ needs and learning patterns.
Strategic Course Creation: GitLab NanoVersity's custom course generation option threw light on the importance of tailor-made learning. It’s not about packing as many modules or topics as possible but about assessing the needs of the individual learner and presenting relevant, succinct content. This approach was a departure from the generic course structure of GitLab University and taught us to build strategic, focused educational content.
Content Management: Managing the massive amount of content was a challenge. We understood the importance of organizing items in such a way that the AI could pull the required data effectively and reliably. Content categorization became as essential as the content itself.
Understanding Learning Patterns: Analyzing users' interactions with the course content taught us about diverse learning patterns. Some learners prefer visual aids, while others favor text-based material. Additionally, grasping various factors like engagement time, the pace of learning, and knowledge retention levels of different individuals helped to tailor the offerings better.
User Requirements: The project was a great lesson in user-centered design, showing us clearly that a product or service could be significantly enriched by understanding and responding to user requirements. GitLab NanoVersity, by recognizing users' needs for personalized, project-specific learning material, arguably presents a more suitable resource compared to GitLab University’s pre-set courses.
Overall, the project taught us that innovative technologies coupled with a keen understanding of user needs could usher in transformative solutions. The insights we've gained through this process are not only beneficial for this project but hold valuable implications for future projects as well.
What's Next for GitLab NanoVersity
At the core of the ambitious expansion plans for GitLab NanoVersity are three main paths - expanding course generation to more languages, frameworks, tools, introducing advanced personalization features, and fostering a community-driven knowledge hub.
Expansion of Course Generation: One of the defining strengths of GitLab NanoVersity is its artificial intelligence engine which uses user-provided context to design concise, yet impactful courses. While we already have a robust set of learning materials, we aim to broaden these libraries across new domains. This means adding new languages, frameworks, and tools for learning, covering not only a more extensive range of GitLab's functionalities but also extending the knowledge beyond GitLab. For instance, users can learn about how GitLab interacts with other popular programming languages and developer tools. We desire to make GitLab NanoVersity a go-to resource for personalised learning within the GitLab ecosystem and also in the broader development landscape.
Advanced Personalization: Our next major focus will be to introduce more personalisation features within the learning environment of GitLab NanoVersity. This goes beyond creating courses based on the user's requirement, towards personalising the presentation and teaching style of these courses. For example, we plan to add options that would allow users to learn in a more visual way using rich graphics or prefer text-based, detailed explanations. Additional features might include personalised notifications for upcoming courses and tailor-made assessments which adapt to the learner's progress.
Integration of Community-driven Updates: Recognising the power of community and the value they bring with their diverse experiences, we wish to create a pool of learning resources that can be populated, enriched and validated continuously by the GitLab users themselves. A 'Community' section will be introduced where users can share their real-world experiences, use-cases, and challenges that they faced and overcame using GitLab. This would add an extra layer of practical knowledge and real-time, up-to-date learning resources for users worldwide, far exceeding the generic nature of information that is traditionally offered by GitLab University.
In conclusion, GitLab NanoVersity's future is focused on incorporating more flexibility, inclusivity, and community-driven practical knowledge into its learning environment. By doing so, we strive to create a platform where users can not only learn but also actively contribute to the learning of others.
Built With
- ai
- git
- gitlab
- html5
- javascript
- oauth
- php
- rest

Log in or sign up for Devpost to join the conversation.