leaf-bg

Learning Outcome #2

Transferable Production

You document and comment your code using version control in a personal and team context and communicate technical recommendations.

Evidences

star
Version Control
star
ReadMe
star
Portfolio
star
Tic-Tac-Toe
star
Game Development
(Client Project)
star
JavaScript Counter
star
Website Development
(Passion Project)
star
Future Implementations
(Passion Project)

Version Control

Personal GitLab: https://git.fhict.nl/I522385/portfolio-semester-3

Group GitLab: https://git.fhict.nl/I522385/upcycling-with-besties

Passion GitLab: https://git.fhict.nl/I522385/filipino-driver-europe

Introduction

I used GitLab as a version control tool for my portfolio and our group project. It helped me efficiently track changes, refine code, and manage versions. By using GitLab, I found it reliable for monitoring progress and ensuring every update was well-documented, making collaboration and individual work smoother.

Approach

I make it a habit to push or commit to GitLab whenever I make changes to my code, both in personal and group projects. This ensures that updates are properly shared and applied when ready. For group projects, version control helps keep everyone aligned, making it easy to track who made what changes and when. I also focus on writing clear commit messages because this practice makes it easier for me to understand, maintain, and debug different versions of the project.

Personal Project:

img img

Group Project:

img img

Passion Project:

img img img

Reflection

Using version control taught me how important it is to keep track of changes, both for personal work and in a team environment. It made it easier for me to organize my code and collaborate with my group. I also learned that making regular and clear Git pushes is key to staying on track and making sure everything is up-to-date.
I’ll continue using version control in my future projects because it helps me keep things organized and makes my development process smoother.

ReadMe

Introduction

For each project, I created a ReadMe file to document the code and provide clear instructions for anyone who might use or work on it. A ReadMe file helps me explain the project clearly, making it easier to understand, update, and maintain.

Approach

Before creating my own ReadMe files, I took the time to research and explore examples of structure, such as Git: Basics & Advanced and the ReadMe documentation website, to learn what information should be included. These resources helped me understand that a good ReadMe should guide the user in setting up the project on their system by including important details like installation instructions, requirements, and an overview of how the project works.

What I Included in My ReadMe Files:

  • A brief description of the project’s purpose
  • Steps for running the project
  • Project’s feature
  • A list of programming languages, frameworks, or tools applied in the project
  • Sample screenshot of the result

Link: Portfolio ReadMe

img img

Link: Tic-Tac-Toe ReadMe

img img

Link: JavaScript Counter ReadMe

img img

Link: Filipino Driver Europe ReadMe

img img

Reflection

Creating ReadMe files taught me the importance of documenting my projects clearly and effectively. I learned a lot about the importance of a good ReadMe and what it should contain. It helps me organize my work and make it easier for others (and my future self) to understand and navigate the project. By doing this, I got better at explaining my work in a structured and professional way.

Portfolio

GitLab: https://git.fhict.nl/I522385/portfolio-semester-3

Link: https://i522385.hera.fontysict.net/portfolio-semester-3/

Introduction

I created a portfolio website to showcase my skills, projects, and progress. It highlights my ability to organize and present my work effectively, applying web development skills and best practices to its structure and clear code commenting.

Process

After finalizing the design and structure of my portfolio, I began coding the website using HTML semantics, CSS, and JavaScript. I also checked the code using the W3C Markup Validation Service to ensure it met coding standards.
img
To improve the readability and maintainability of my code, I made sure to comment on my HTML and CSS code. This helps me and others easily understand the structure and style of the website, making future updates and edits quicker and more efficient.
img img
For the JavaScript code, I used JSDoc to comment on my code, this method allows me to organize and clarify the logic and functions. Since JavaScript can be complex and difficult to recall after some time, adding comments and using JSDoc helps me improve my understanding and ensures I can easily follow the code in the future.
img

ReadMe File

I also created a ReadMe for my portfolio project. The file serves as a helpful reference, providing essential information on how to set up and run the project, ensuring that anyone reviewing the code can easily understand how to get the project working on their own system.
img img

Commit Messages

img img

Reflection

I learned a lot in the process of commenting on my code, especially in JavaScript. This was my first time using JSDoc, and it helped me organize my code and deepen my understanding by clearly documenting functions. It was also my first time creating a ReadMe file, and I now see how important it is. It makes the project’s purpose and structure clear to anyone interacting with it.
I will continue to use these practices to ensure better documentation, improve clarity, and make collaboration easier in future projects.

Tic-Tac-Toe

GitLab: https://git.fhict.nl/I522385/tic-tac-toe

Link: https://i522385.hera.fontysict.net/tic-tac-toe/

Introduction

I created a Tic-Tac-Toe game as part of an activity in our class to refresh our knowledge of JavaScript. The game is designed for two players who take turns placing their symbols (X or O) on a 3x3 grid. The goal is to form a straight line of three symbols to win. If no one wins, the game ends in a tie.

Process

I followed an article from Medium on how to create Tic-Tac-Toe using HTML, CSS, and JavaScript. I rewrote the code line by line to better understand the logic behind it. To make sure I understood the code, I added detailed comments to the JavaScript code, which not only made it easier for me to follow the steps but also deepened my understanding of the game mechanics and how the code functions.
img img
Next, I added design elements to improve the look of the game. I turned the X and O symbols into images to make them more visually appealing and give the game a more polished look.
I also want to make some improvements to the functionality that wasn’t covered in the article. I disabled the squares once a player wins to prevent further moves. I also highlighted the winning squares in green to clearly show which part of the grid resulted in a win.
img

ReadMe File

I uploaded the game to GitLab, making commits throughout the development process. I also created a ReadMe file to document the project’s purpose, functionality, and instructions for running the game.
img img

Reflection

I understood in class how winning combinations work in Tic-Tac-Toe. I also learned how to display images like the X and O symbols in each square using JavaScript. One important function I used was cloneNode(), which helped me display the images without losing any of them in the squares. This was especially useful because it allowed me to clone elements for repeated use in the game. This task helped refresh my knowledge of JavaScript, particularly working with events, functions, and DOM manipulation.

Game Development

Group GitLab: https://git.fhict.nl/I522385/upcycling-with-besties

My Branch: https://git.fhict.nl/I522385/upcycling-with-besties/-/tree/briahna

Introduction

I developed a station for our game Upcycling with Besties, which teaches young people how to upcycle clothes through activities like patching, dying, and cutting. My task was to work on the dyeing station, one of the key features in the game.

Process

I led the creation of the GitLab repository for our group, and each member created their own branch. Afterward, we had an online meeting to discuss the tasks. During the meeting, I was assigned to develop the dye bucket feature for Station 2.
img
At first, I wasn’t sure how to begin because I had no prior experience working on such a complex project. But after understanding the requirements, I started working on my branch. To get started, I looked for references online and explored similar drag-and-drop functionalities to better understand how to implement them.
I used my groupmate’s code as a foundation for the UI and updated the comments for clarity. I then updated the HTML and CSS files by adding the necessary classes and styles to implement the feature correctly. By referring to MDN Web Docs and experimenting with the drag-and-drop functionality, I was able to improve my code and make the feature work smoothly.
img
I wrote clear code comments using JSDoc to help my teammates understand and connect the stations. I committed regularly to my branch and merged updates into the main branch to keep everything up to date. Merging my branch to the main went smoothly, and I was able to avoid conflicts with the help and collaboration of my groupmate.

JavaScript Link: Station 2

img img

Branches

img

Commit Messages

img img

Reflection

The development process was fun and allowed me to apply my skills to a real-world project. I learned how to work with branches, including the importance of working within my own branch, as it helped keep my tasks organized and minimized conflicts with the main branch. I also learned the importance of pushing updates regularly, writing clear comments, and using commit messages.

JavaScript Counter

GitLab: https://git.fhict.nl/I522385/javascript-counter

Link: https://i522385.hera.fontysict.net/javascript-counter/

Introduction

During my free time, I decided to create a fun and simple challenge from Canvas using HTML, CSS, and JavaScript. The goal was to design a webpage with a dynamic counter that starts at zero and updates every second. With each update, the background color changes to random hues while keeping the text readable. The counter is centered both horizontally and vertically on the screen, combining functionality with an engaging design.

Process

I created this project to apply what I learned about HTML, CSS, and JavaScript. To create the JavaScript counter, I added ID attributes to the HTML elements (for the number, background, and text) to make them accessible in JavaScript. I then created variables for these elements and another variable to hold the count, which was initially set to 0. The counter updates every second using setTimeout(), incrementing the count by 1 and changing the background color to a random RGB value.
A challenge I faced was finding the right CSS style, which I resolved by using the mix-blend-mode property for the design.
img
I made sure to include clear and detailed comments explaining the purpose of each section and its logic. This practice not only helped me understand my own code better but also ensured that it would be easier to maintain or modify in the future.
img img

Commit Messages and ReadMe File

I developed the project on GitLab, making clear commit messages to track progress. I also created a ReadMe file to document the project’s purpose, functionality, and instructions, ensuring it is clear and easy to understand for anyone reviewing it.
img img img

Website Development

GitLab: https://git.fhict.nl/I522385/filipino-driver-europe

Link: https://i522385.hera.fontysict.net/

Introduction

For my passion project, I developed a website for Filipino Driver Europe, a small business owned by Patrick Manalad, a Filipino based in Rome who offers van services and tours across Europe. The site showcases the company’s services, with Patrick as the stakeholder and Filipino tourists as the target audience. The goal was to create a user-friendly platform that allows customers to easily explore the services, book tours, and help the business reach more Filipino travelers looking for convenient and reliable transportation across Europe.

Key Features

The website will provide Filipino tourists with easy access to van services and tours across Europe. It will feature:
  • A detailed overview of the business and the services offered.
  • A comprehensive list of tours, including city descriptions and images.
  • A feedback section for clients to share their experiences.
  • An online booking system where users can schedule their tours.
These functionalities are designed to enhance user experience and make trip planning smooth and efficient.

Frameworks

I used ReactJS and Bootstrap to build the website for Filipino Driver Europe. I chose ReactJS because I wanted to explore different frameworks and found its reusable components helpful for making the website easier to manage and update. I also organized the content in a JSON-like structure so clients can easily update text, images, and other elements without changing the code. To learn ReactJS, I watched the React Full Course for free and used the official Quick Start – React guide.
Then, I used Bootstrap to style the website and make it responsive. I wanted to explore Bootstrap because it’s a quick and easy way to design layouts and make the site mobile-friendly. I watched the Install Bootstrap in React JS Beginner Tutorial to learn how to integrate it with ReactJS, which helped me set up the layout faster and create a simple, user-friendly design.

Process

After getting approval for the prototype, I started coding the website. I used Vite to create a ReactJS project, which I set up by installing Node.js on my device to use npm and following the Vite guide for ReactJS. The project was tracked on GitLab, where I made regular commits to monitor progress.
I made sure the website was responsive, keeping in mind that most users would likely access the site from their phones. To ensure a smooth mobile experience, I used Bootstrap’s grid system and responsive utilities, which made it easy to adjust the layout for different screen sizes.

File Structure

I created several pages for this project including Home, Tour, Reviews, and Booking. I made sure the file structure was organized and easy to understand, which is important for maintaining and growing a ReactJS project.
A clear file structure helps me quickly locate the necessary files and components, ensuring efficient development and easier collaboration. By keeping components, assets, and pages properly separated, I was able maintain a smooth workflow and ensure the project remains manageable as it grows.
img img

Comments

I commented on my code to explain its functionality and logic clearly. This was important as it not only helped me understand my own code but also made it easier for others, including stakeholders, to follow the thought process behind each section. Following my teacher’s feedback, I made the comments detailed to improve readability and maintainability. I also used JSDoc comments for structured documentation to enhance the clarity of the code.
img img

ReadMe File

I created a ReadMe file to provide complete and clear instructions on setting up and running the Filipino Driver Europe website. This includes step-by-step guidance for installing prerequisites, cloning the repository, installing dependencies, and running the development server on a local machine.
img img
I also created a separate ReadMe file specifically for editing the website’s content, explaining how to update text, images, and other elements by modifying the constants file or JSON-like objects. These ReadMe files ensure that both developers and non-technical users can easily work with and update the project.

Link: Content Editing ReadMe

img img

Commit Messages

I made sure to commit and push changes regularly to my GitLab repository while maintaining clear and concise commit messages.
img img img

Reflection

This project went really well, and I genuinely enjoyed working on it. I’m happy that I got to explore and try out different frameworks like ReactJS and Bootstrap, which gave me a deeper understanding of web development. It was exciting to learn how these tools work together, and it has motivated me to explore other frameworks in the future.
Throughout the semester, I practiced version control, wrote documentation, and added meaningful comments to my code. These practices made the project more manageable and organized. Using JSDoc was particularly helpful in ensuring that my code remained clear and easy to understand. The feedback I received on my ReadMe files and comments was helpful in improving these skills.

Future Implementations

Due to time constraints, I have compiled a list of implementations I would like to incorporate into the website in the future. While these features cannot be implemented at this time, I believe they would greatly enhance the project and add valuable functionalities. If I had more time, I would have included these improvements to further expand and refine the user experience.
  • Each service will have their different page so that the user can see the details for each service.
  • There will be a separate payment page or feature that the users can access after they book the service.
  • If there are more pictures provided, there can be a gallery page for its compilation.
  • If the stakeholder wants to include more about the history of their business as well as their team, we can provide a separate ‘About Us’ page.
  • A live WhatsApp chatbox will be integrated into the website, allowing users to directly message the business for inquiries, booking assistance, or customer support.