[{"content":" Welcome to my portfolio site.\n","date":"27 April 2026","externalUrl":null,"permalink":"/portfolio/","section":"Forside","summary":"","title":"Forside","type":"page"},{"content":" Project Overview # This project focuses on setting up a fullstack application with a Java Spring Boot backend and a Vite frontend.\nThe goal was to get both parts running locally and connected, but the process turned into a deep dive into debugging and understanding how development environments actually work.\nInstead of only building features, I worked through several real-world issues that are common in software development.\nRunning the Application Locally # A key part of this project is running both backend and frontend at the same time.\nThe system is split into two parts:\nBackend: http://localhost:8080\nFrontend: http://localhost:5173\nThe frontend communicates with the backend using API requests, which is a standard structure in modern web applications.\nWhat the System Does # The application works as a simple fullstack setup:\nthe frontend sends a request the backend receives it the backend processes the logic a response is returned to the frontend This setup helped me understand how data flows between frontend and backend systems.\nDebugging and Issues Encountered # During development, I encountered several issues.\nInstead of just fixing them, I focused on understanding what caused them and how to solve them properly.\nCommon Errors and Fixes # 1. Maven Not Recognized # At first, I could not run the backend:\nmvn : not recognized\nThis happened because Maven was not installed or added to PATH.\nFix:\nInstalled Maven Added it to system PATH 2. Java Version Conflict # I then got this error:\nclass file has wrong version 61.0, should be 55.0\nThis means:\nJava 17 = version 61 Java 11 = version 55 Spring Boot requires Java 17, but my system was using Java 11.\nFix:\nRan the backend in IntelliJ using Java 17 3. BOM (Byte Order Mark) Error # Another issue I encountered was:\nillegal character: \u0026lsquo;\\ufeff\u0026rsquo;\nThis was caused by something called a BOM (Byte Order Mark).\nA BOM is an invisible character at the start of a file that can break:\nJava JSON Node/Vite Example: ﻿{ \u0026ldquo;name\u0026rdquo;: \u0026ldquo;project\u0026rdquo; }\nThat hidden character breaks parsing.\nWhy it happened: Some tools saved files as:\nUTF-8 with BOM\nFix:\nChanged encoding to: UTF-8 (without BOM) Used \u0026ldquo;Save with Encoding → UTF-8\u0026rdquo; 4. Vite Not Recognized # When starting the frontend:\n\u0026lsquo;vite\u0026rsquo; is not recognized\nThis happened because dependencies were not installed.\nFix: npm install\n5. Running npm in the Wrong Folder # I also got:\nCould not read package.json\nThis happened because I ran the command in the wrong directory.\nFix: cd frontend\nnpm run dev\n6. Port 8080 Already in Use # When starting the backend:\nPort 8080 was already in use\nThis means another process was already running.\nFix: netstat -ano | findstr :8080\ntaskkill /PID /F\nTechnologies Used # Java (Spring Boot) – backend server Vite / React – frontend Node.js \u0026amp; npm – frontend dependencies IntelliJ – backend development VS Code – frontend development Maven – build tool Why This Was Important # This project showed me that development is not only about writing code, but also about:\nsetting up the environment understanding tools and dependencies solving unexpected errors Issues like BOM and Java versions are not obvious, but they can completely break an application.\nWhat I Learned # Through this project, I learned:\nhow to run frontend and backend together how to debug environment issues how encoding (like BOM) can affect code how to read and understand error messages how real-world debugging works Reflection # This project felt like a real development experience rather than just building a feature.\nI encountered:\nsetup problems system-level errors hidden bugs By solving these, I gained a much better understanding of how fullstack systems work in practice.\nIt showed me that being able to debug and understand errors is just as important as writing code.\nGitHub Repository # View the project on GitHub\n","date":"27 April 2026","externalUrl":null,"permalink":"/portfolio/posts/llm-api/","section":"Posts","summary":"","title":"Fullstack Setup \u0026 Debugging (Spring Boot + Vite)","type":"posts"},{"content":"","date":"27 April 2026","externalUrl":null,"permalink":"/portfolio/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":" Project Overview # In this project, I worked with code agents using codex.\nThe main focus was to understand how precise a prompt needs to be, and how to communicate clearly with an AI agent without confusing it.\nI explored how AI can go from just answering questions to actually helping build and improve a project.\nTo make it practical, I worked on a case where I had to build a meditation quiz website.\nThe goal was to create a simple and calm experience where users can answer questions, continue even if they get something wrong, and come back later to continue.\nAssistants vs Agents # One of the things I learned is the difference between assistants and agents.\nAn assistant is mostly something you ask for help:\nit explains things helps with code gives suggestions An agent (like Codex in this case) is more action-oriented:\nit can generate structured code follow instructions help solve tasks step by step So basically:\nassistant = helps you agent = helps solve the task Comparison # Here is a comparison between assistants and agents:\nTypes of Agents # I also learned that there are different types of agents.\nHorizontal Agents # These are general-purpose agents that can do a bit of everything.\nLike ChatGPT, which can help with coding, writing, debugging, etc.\nVertical Agents # These are more specialized.\nThey are built to be really good at one specific thing.\nThat made me think about what is best:\nsomething that can do everything okay or something that is really good at one thing The Case: Meditation Quiz App # To connect the theory to something practical, I worked on a meditation quiz app.\nThe idea was:\nmultiple choice questions you can continue even if your answer is wrong you can take the quiz again your progress should be saved you can choose to continue later or start over So it\u0026rsquo;s not just a quiz it\u0026rsquo;s more about the user experience and flow.\nHow I Worked With It # I used Codex as a code agent to help develop parts of the solution.\nThe main challenge was learning how to write good prompts.\nI worked on:\nmaking prompts more specific structuring instructions clearly avoiding vague descriptions testing different prompt styles I learned that:\nif the prompt is too vague â†’ the result becomes unclear if the prompt is too complex â†’ the agent can get confused the best prompts are clear, structured, and focused I also learned that you have to be careful with what access you give the agent.\nIt can sometimes see more files than expected (like .gitignore and other project files).\nDebugging # One big thing I learned was how important debugging is when working with an AI agent.\nIf something doesn´t work:\nopen DevTools (F12) check the console copy the error give the error to Codex This made it much easier to fix problems quickly.\nWhat I Learned # how to use codex as a code agent how important prompt precision is how unclear prompts can confuse an AI difference between assistants and agents horizontal vs vertical agents how AI can support development how to debug using AI and browser tools Technologies and Concepts Used # Prompt engineering Quiz logic Local storage (saving progress) GitHub Pages Reflection # This project changed how I see AI.\nBefore, I mostly used it as a chatbot.\nNow I see it more like a tool that depends a lot on how well I communicate with it.\nThe biggest takeaway was that the quality of the prompt controls the quality of the result.\nThe meditation quiz case also showed me that it\u0026rsquo;s not just about code”\nit\u0026rsquo;s about making something that works well for the user and feels intuitive.\nLive Demo # View the project here\nGitHub Repository # View the project on GitHub\nScreenshots # ","date":"20 April 2026","externalUrl":null,"permalink":"/portfolio/posts/code-agents/","section":"Posts","summary":"","title":"Code Agents","type":"posts"},{"content":" Project Overview # This project is a RAG chatbot integrated directly into my portfolio website.\nThe goal was not only to build a chatbot, but to make it understand and answer questions about my own portfolio content.\nThe chatbot uses Retrieval Augmented Generation (RAG), meaning it answers based on my own data instead of only relying on general AI knowledge.\nLive Integration on My Website # A key part of this project is that the chatbot is fully integrated into my portfolio website.\nUsers can:\nask questions directly on the site get answers based on my projects and content interact with the chatbot in real time This makes the portfolio more interactive and demonstrates a real-world AI application.\nWhat the Chatbot Does # Instead of answering freely, the chatbot:\nreceives a question from the user sends the request to a backend API retrieves relevant information from my portfolio data generates a contextual answer This ensures that answers are:\nrelevant based on my own work more reliable than a standard chatbot System Architecture # This project is built as a complete pipeline consisting of frontend, backend, and AI system.\n1. Data Collection # My portfolio website is crawled using a Java application A sitemap is used to find all pages Content is extracted using Jina Reader The text is cleaned and converted into markdown 2. Knowledge Base (RAG) # The extracted content is stored in Dify Knowledge The text is split into chunks The chunks are converted into embeddings This enables semantic search across my portfolio 3. Backend (API Layer) # A Java backend server handles requests The backend exposes a /chat endpoint It securely connects to the Dify API API keys are stored using GitHub Secrets 4. Frontend Integration # A custom chat interface is added to my Hugo portfolio The frontend sends user questions using JavaScript (Fetch API) The chatbot response is displayed directly on the website Technologies Used # Hugo – portfolio website GitHub Pages – hosting JavaScript (Fetch API) – frontend communication Java (VS Code) – backend API and crawler Spark Java – lightweight API server Dify – RAG system and chatbot Jina Reader – content extraction GitHub Actions (Secrets \u0026amp; Variables) – secure API key handling Why RAG is Useful # RAG makes it possible for the chatbot to:\nanswer based on real data instead of guessing reduce hallucinations provide domain-specific knowledge connect AI to custom content At the same time, I learned that:\ngood data quality is very important chunking and retrieval strategy matter a lot wrong context can still lead to weak answers What I Learned # Through this project, I learned:\nhow a full RAG pipeline works in practice how to connect a frontend, backend, and AI system how APIs are used to integrate AI into real applications how to handle requests, encoding, and data flow how to test and deploy a working AI system This project showed me that building AI applications involves much more than just using a model — it requires a complete system.\nReflection # This project felt like a real-world AI application, not just a demo.\nBy integrating the chatbot into my own website, I created something that:\nis interactive demonstrates my technical skills can be used by other people visiting my portfolio It also gave me a much better understanding of how modern AI assistants are built and connected to real data.\nGitHub Repository # View the project on GitHub\nScreenshots # ","date":"16 April 2026","externalUrl":null,"permalink":"/portfolio/posts/chatbot/","section":"Posts","summary":"","title":"RAG Chatbot","type":"posts"},{"content":" Nikita Nielsen Computer Science Student | AI-Driven Application Development 🔗 LinkedIn 💻 GitHub I am currently studying Computer Science at the Academy Profession degree (AP Degree in Computer Science), where I am in my 4th semester. As part of my education, I have chosen the elective course AI-Driven Application Development, where I focus on building modern applications powered by artificial intelligence.\nThrough my studies, I have gained experience in software development, problem-solving, and working with different technologies. In my AI elective, I explore how to integrate machine learning and AI tools into real-world applications, including automation, data processing, and intelligent user experiences.\nI am especially interested in how AI can be used to create smarter and more efficient systems. This portfolio showcases the projects and work I have developed during this course, as well as my learning journey within AI and software development.\nI am continuously looking to improve my skills and expand my knowledge within both software development and artificial intelligence.\n","date":"4 February 2026","externalUrl":null,"permalink":"/portfolio/about/","section":"Forside","summary":"","title":"About Me","type":"page"},{"content":" Full Description # This is a detailed description of the project. Explain what the project is about, its purpose, and any background information.\nWhat I Built # Describe the main features and components of the project. What functionality did you implement?\nFeature 1: Description Feature 2: Description Feature 3: Description What I Learned # Reflect on the skills and knowledge gained during this project.\nLearned about [technology/concept] Improved skills in [area] Discovered [new technique] Technologies Used # Frontend: HTML, CSS, JavaScript Backend: Node.js Database: MongoDB Other: Git, GitHub Links # GitHub Repository Live Demo (if applicable) Screenshots # ","date":"1 October 2023","externalUrl":null,"permalink":"/portfolio/posts/example-project/","section":"Posts","summary":"","title":"Example Project","type":"posts"},{"content":"","externalUrl":null,"permalink":"/portfolio/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/portfolio/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","externalUrl":null,"permalink":"/portfolio/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/portfolio/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]