Skip to content

BookYourBarber/bub_documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

Portfolio

Table of contents

Intro

This portfolio showcases my individual and group project during the software semester 3. It provides a comprehensive overview of my work, learning outcomes, and project achievements. With explanations of each learning outcome and a table of projects demonstrating my progress, this portfolio demonstrates my growth and dedication to software development.

Learning outcomes

You can see a list of learning outcomes and their explanation here.

Self-assessment

1. Web application

Learning Outcome "You desgin and build user-friendly, full-stack web applications."
Proficiency Rating Proficient (4)
Explanation

In this semestar I managed to set up a full React-Nodejs-MySQL stack application.

Throughout my individual project, I successfully developed a user-friendly application using a full-stack approach. For the frontend, I utilized React, a widely adopted JavaScript framework, to create a responsive and intuitive user interface. I followed best practices for designing user interfaces, ensuring components were modular and had single responsibilities. Additionally, I conducted basic user experience testing to enhance the overall usability of the application.

I integrated Auth0 for the login functionality in the application. By leveraging Auth0, I ensured secure and streamlined user authentication and authorization processes. This allowed users to log in using email accounts.

On the backend, I leveraged Node.js with Express.js as the server framework. This allowed me to handle routing efficiently and implement relevant communication protocols. To interact with the database, I utilized Sequelize, an ORM (Object-Relational Mapping) library, which facilitated seamless integration with MySQL. I ensured the persistence of data by employing Docker Compose to create a MySQL database and utilized MySQL volumes for storage.

Proof See further explanation of the learning outcome here

2. Software quality

Learning Outcome "You use software tooling and methodology that continuously monitors and improve the software quality during software development."
Proficiency Rating Proficient (4)
Explanation

In order to continuously monitor and improve the software quality during software development, I employed various tools and methodologies.

For testing, I utilized Jest to conduct unit tests and integration tests on both the frontend and backend components. These tests were executed in isolation, utilizing mocked classes or services when necessary to access external components. This ensured that relevant pieces of code were thoroughly tested and validated.

To address code quality, I integrated Sonar for code analysis in both the frontend and backend repositories. Sonar performed scans to identify bugs, code smells, and vulnerabilities, providing valuable insights into improving the overall code quality. Additionally, Sonar was implemented within the CI (Continuous Integration) pipeline, specifically in Git actions. This allowed for automatic monitoring of code quality with each push or merge to the main branch, enabling timely identification and resolution of any issues.

Proof See further explanation of the learning outcome here

3. Agile method

Learning Outcome "You choose and implement the most suitable agile software development method for your software project."
Proficiency Rating Proficient (4)
Explanation

For my project, I implemented the Agile methodology using Jira as my project management tool. I organized my work into sprints, which are time-bound iterations for completing specific tasks and delivering incremental value. Initially,

I started with three-week sprints, but I realized that this timeframe was too long and caused me to lose focus and track of the sprint goals. Therefore, I made an informed decision to switch to two-week sprints, which allowed for better focus and improved alignment with the project objectives.

Proof See further explanation of the learning outcome here

4. CI/CD

Learning Outcome "You design and implement a (semi)automated software release process that matches the needs of the project context."
Proficiency Rating Proficient (4)
Explanation

Within every repository, a GitHub Actions workflow is set up to check if the application builds, and if the tests succeed.

For continuous integration and deployment, I utilized GitHub Actions as my chosen solution. Within each repository, I set up a GitHub Actions workflow to ensure that the application builds successfully and that all tests pass. This automated process helped maintain code quality and ensured that changes were properly validated before release.

To further enhance the quality gate, I integrated SonarCloud within the frontend project's pipeline. SonarCloud analyzed the codebase for bugs and enforced a minimum code coverage threshold of 80%. If any issues were identified or if the coverage fell below the defined limit, the pipeline would be blocked, preventing the release of flawed code.

Proof See further explanation of the learning outcome here

5. Cultural differences and ethics

Learning Outcome "You recognize and take into account cultural differences between project stakeholders and ethical aspects in software development."
Proficiency Rating Proficient (4)
Explanation

The development of TrackIO involved a deep recognition of cultural differences and ethical aspects of software engineering. It demonstrates our commitment to develop not only functional software but also software that is respectful of user rights, cultural norms, and societal expectations.

Proof See further explanation of the learning outcome here

6. Requirements and design

Learning Outcome "You analyze (non-functional) requirements, elaborate (architectural) designs and validate them using multiple types of test techniques."
Proficiency Rating Proficient (4)
Explanation

The learning outcome of analyzing requirements, elaborating designs, and validating them using multiple test techniques is demonstrated. The document showcases the adherence to strict technical requirements set by IO Digital, including considerations for accessibility, performance, and security. UI/UX prototypes were extensively reviewed, approved, and implemented based on feedback. A collaborative effort was made to create a Wi-Fi Tracking design, which involved the participation of IO's developers and a thorough review process. Overall, the proof exemplifies the application of various test techniques to ensure the quality and functionality of the requirements and designs.

Proof See further explanation of the learning outcome here

7. Business processes

Learning Outcome "You analyze and describe simple business processes that are related to your project."
Proficiency Rating Proficient (4)
Explanation

The provided document presents an analysis of a proposed office communication application and its impact on the business process of finding a colleague within the office. It highlights the challenges faced in the existing process and demonstrates how the app simplifies and accelerates the task, resulting in significant time savings and improved productivity. By addressing the pain points and providing real-time information, the app enhances the overall office work experience, leading to a smoother and more efficient workflow for employees.

Proof See further explanation of the learning outcome here

8. Professional

Learning Outcome "You act in a professional manner during software development and learning."
Proficiency Rating Proficient (4)
Explanation

The learning outcome "I act in a professional manner during software development and learning" highlights the importance of seeking feedback and incorporating it into my progress. In the past, I made the mistake of not asking for feedback during one entire sprint, which had a negative impact on my progress. Moving forward, I understand the significance of consistently seeking feedback, especially when working with agile methods.

I aim to improve by actively documenting my steps and utilizing tools like FeedPulse to provide and receive feedback. Having a record of what I've done and the discussions we've had during feedback sessions is incredibly helpful. By actively participating in feedback sessions and using the feedback to drive my growth, I demonstrate professionalism and enhance my effectiveness in software development and learning.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published